Databricks ODBC Driver を使用して Unity Catalog ボリューム内のファイルを管理する
この記事では、Databricks ODBC Driver を使用して Unity Catalog ボリューム内のファイルのアップロード、ダウンロード、削除を行う方法を説明します。
要件
- Databricks ODBC Driver バージョン 2.8.2 以降。
- 既定では、ネイティブ クエリ モードが有効になっています。 それ以外の場合は、ODBC 接続文字列に
UseNativeQuery
プロパティを追加し、その値を1
または2
に設定します。
ファイルをアップロードする
ファイルをボリュームにアップロードするには、ODBC 接続文字列に StagingAllowedLocalPaths
プロパティを追加し、このプロパティの値をアップロードするファイルのパスに設定する必要があります。 別の場所から複数のファイルをアップロードするには、このプロパティをコンマで区切られたパスのリストに設定します (例: /tmp/,/usr/tmp/
)。
指定したアップロード場所にある既存のファイルの内容をオーバーライドするには、OVERWRITE
を追加します。
次の Python コード スニペットは、ファイルをボリュームにアップロードする方法を示しています。
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")
ファイルをダウンロードする
次の Python コード スニペットは、ボリュームからファイルをダウンロードする方法を示しています。
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" +
"'")
ファイルを削除する
次の Python コード スニペットは、ボリュームからファイルを削除する方法を示しています。
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")