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 auf1
oder2
.
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" +
"'")