Freigeben über


Verwalten von Dateien in Unity Catalogvolumes mit dem Databricks ODBC-Treiber

Dieser Artikel beschreibt das Hochladen, Herunterladen und Löschen von Dateien in Unity Catalog Volumes mit dem Databricks ODBC-Treiber.

Anforderungen

  • Databricks ODBC Treiber-Versionen 2.8.2 oder höher.
  • Standardmäßig ist der systemeigene Abfragemodus aktiviert. Fügen Sie andernfalls der ODBC-Verbindungszeichenfolge die UseNativeQuery Eigenschaft hinzu, und legen Sie dessen Wert auf 1 oder 2.

Hochladen einer Datei

Um eine Datei auf ein Volume hochzuladen, müssen Sie die StagingAllowedLocalPaths-Eigenschaft zu Ihrer ODBC-Verbindungseigenschaften-Sammlung hinzufügen und den Wert dieser Eigenschaft auf den Pfad der hochzuladenden Datei setzen. Wenn Sie mehrere Dateien von separaten Speicherorten hochladen möchten, legen Sie diese Eigenschaft auf eine durch Trennzeichen getrennte Liste von Pfaden fest, z. B. /tmp/,/usr/tmp/.

Um den Inhalt einer vorhandenen Datei im angegebenen Uploadspeicherort außer Kraft zu setzen, fügen Sie OVERWRITE hinzu.

Der folgende Python-Codeausschnitt zeigt, wie eine Datei in ein Volume hochgeladen wird.

conn_string = "".join([
    "DRIVER=", os.getenv("ODBC_DRIVER", "/Library/simba/spark/lib/libsparkodbc_sbu.dylib"),
    ";Host=", os.getenv("ODBC_HOST_NAME", "<<HOST_NAME>>"),
    ";PORT=443",
    ";HTTPPath=", os.getenv("ODBC_HTTP_PATH", "/sql/1.0/endpoints/1234567890"),
    ";AuthMech=11",
    ";SSL=1",
    ";ThriftTransport=2",
    ";SparkServerType=3",
    ";Auth_Flow=0",
    ";Auth_AccessToken=", os.getenv("API_TOKEN", "<<NO_ACCESS_TOKEN_IS_SET>>"),
    ";StagingAllowedLocalPaths=", "/tmp"),
    os.getenv("ODBC_OPTIONS", ""),
])

conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("PUT '" +
    "/tmp/my-data.csv" +
    "' INTO '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "' OVERWRITE")

Herunterladen einer Datei

Der folgende Python-Codeausschnitt zeigt, wie eine Datei von einem Volume heruntergeladen wird.

conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("GET '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "' TO '" +
    "/tmp/my-downloaded-data.csv" +
    "'")

Löschen einer Datei

Der folgende Python-Codeausschnitt zeigt, wie eine Datei von einem Volume gelöscht wird.

conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "'")