Databricks ODBCドライバー (Simba) を使用してUnity Catalogボリューム内のファイルを管理する
このページでは 、Unity CatalogDatabricksODBCドライバー を使用して ボリューム 内のファイルをアップロード、ダウンロード、および削除する方法について説明します。
必要条件
- Databricks ODBC ドライバー バージョン 2.8.2 以上
- ネイティブ クエリ モードが有効 (デフォルト)。無効になっている場合は、接続文字列に
UseNativeQuery=1またはUseNativeQuery=2を追加します。
認証設定を含む完全な Python の例については、 「Python と pyodbc を Databricks に接続する」を参照してください。
ファイルのアップロード
ファイルをアップロードするには、アップロードするファイルのパスを含むStagingAllowedLocalPathsプロパティを接続文字列に追加します。ソースの場所が複数ある場合は、カンマ区切りのリストを使用します (例: /tmp/,/usr/tmp/ )。
重要
ユーザーが ODBC URL (BI ツールや開発者サービスなど) を制御するマルチテナント環境では、 StagingAllowedLocalPathsサンドボックスの場所または存在しないパスに設定します。これにより、ユーザーが任意のファイルを書き込んだり、サービスの内部展開を妨害したりすることが防止されます。
既存のファイルを上書きするには、ステートメントに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")
ファイルのダウンロード
ボリュームからローカル パスにファイルをダウンロードするには、 GETを使用します。
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" +
"'")
ファイルを削除する
ボリュームからファイルを削除するには、 REMOVEを使用します。
Python
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")