Delen via


Bestanden in Unity Catalog-volumes beheren met het Databricks ODBC-stuurprogramma

In dit artikel wordt beschreven hoe u bestanden in Unity Catalog-volumes uploadt, downloadt en verwijdert met behulp van het ODBC-stuurprogramma van Databricks.

Vereisten

  • Databricks ODBC-stuurprogrammaversies 2.8.2 of hoger.
  • Standaard is de systeemeigen querymodus ingeschakeld. Anders voegt u de eigenschap toe UseNativeQuery aan de ODBC-verbindingsreeks, stelt u de waarde in op 1 of 2.

Een bestand uploaden

Als u een bestand wilt uploaden naar een volume, moet u de StagingAllowedLocalPaths eigenschap toevoegen aan de ODBC-verbindingsreeks en de waarde van deze eigenschap instellen op het pad van het bestand dat u wilt uploaden. Als u meerdere bestanden van afzonderlijke locaties wilt uploaden, stelt u deze eigenschap in op een door komma's gescheiden lijst met paden, bijvoorbeeld /tmp/,/usr/tmp/.

Als u de inhoud van een bestaand bestand in de opgegeven uploadlocatie wilt overschrijven, voegt u dit toe OVERWRITE.

In het volgende Python-codefragment ziet u hoe u een bestand uploadt naar een volume.

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")

Een bestand downloaden

In het volgende Python-codefragment ziet u hoe u een bestand downloadt van een volume.

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

Een bestand verwijderen

In het volgende Python-codefragment ziet u hoe u een bestand van een volume verwijdert.

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