Freigeben über


Verwalten von Dateien in Unity-Katalogvolumes mit dem Databricks JDBC-Treiber (Simba)

Hinweis

Diese Seite bezieht sich auf Databricks JDBC-Treiberversionen unter Version 3. Informationen zu Version 3 und höher finden Sie unter Databricks JDBC-Treiber.

Diese Seite beschreibt, wie Sie Dateien in Unity-Katalogvolumes mithilfe des Databricks JDBC-Treibers hochladen, herunterladen und löschen.

Anforderungen

  • Databricks JDBC-Treiber Version 2.6.38 oder höher
  • Nativer Abfragemodus aktiviert (Standard). Wenn sie deaktiviert ist, fügen Sie UseNativeQuery=1 oder UseNativeQuery=2 Ihrer Verbindungszeichenfolge hinzu.

Ein vollständiges Java-Beispiel mit eingerichteter Authentifizierung finden Sie unter Authentifizierungseinstellungen für den Databricks JDBC-Treiber (Simba).

Hochladen einer Datei

Um eine Datei hochzuladen, fügen Sie die StagingAllowedLocalPaths Eigenschaft zu Ihrer Verbindungszeichenfolge mit dem Pfad der Datei hinzu, die hochgeladen werden soll. Verwenden Sie für mehrere Quellspeicherorte eine durch Trennzeichen getrennte Liste (z. B /tmp/,/usr/tmp/. ).

Von Bedeutung

In mehrinstanzenfähigen Umgebungen, in denen Benutzer die JDBC-URL (z. B. bei BI-Tools oder Entwicklertools) steuern, legen Sie StagingAllowedLocalPaths auf einen Sandkastenspeicherort oder einen nicht vorhandenen Pfad fest. Dadurch wird verhindert, dass Benutzer beliebige Dateien schreiben und die interne Bereitstellung des Diensts beeinträchtigen.

Um eine vorhandene Datei zu überschreiben, fügen Sie OVERWRITE zur Anweisung hinzu.

// ...
p.put("StagingAllowedLocalPaths", "/tmp/");

Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("PUT '" +
                  "/tmp/my-data.csv" +
                  "' INTO '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' OVERWRITE")
// ...

Herunterladen einer Datei

Wird GET verwendet, um eine Datei von einem Volume in einen lokalen Pfad herunterzuladen:

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("GET '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' TO '" +
                  "/tmp/my-downloaded-data.csv" +
                  "'")
// ...

Löschen einer Datei

Verwenden Sie REMOVE, um eine Datei aus einem Volume zu löschen.

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("REMOVE '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "'")
// ...