ドライバーを使用してUnity Catalog ボリューム内のファイルを管理するDatabricksJDBC

この記事では 、Unity Catalog DatabricksJDBCドライバー を使用して ボリューム 内のファイルをアップロード、ダウンロード、および削除する方法について説明します。

要件

  • Databricks JDBC ドライバー バージョン 2.6.38 以上。

  • デフォルトでは、ネイティブ クエリ モードが有効になっています。 それ以外の場合は、JDBC 接続文字列にUseNativeQueryプロパティを追加し、その値を1または2に設定します。

Databricks 認証を設定し、Databricks JDBC ドライバーを使用して SQL ステートメントを実行するコンテキストでこの記事のコード スニペットを実行する方法を示す完全な Java コード例については、 「Databricks JDBC ドライバーの認証設定」を参照してください。

ファイルをアップロードする

ファイルをボリュームにアップロードするには、JDBC 接続文字列にStagingAllowedLocalPathsプロパティを追加し、このプロパティの値をアップロードするファイルのパスに設定する必要があります。 別々の場所から複数のファイルをアップロードするには、このプロパティをパスのカンマ区切りリストに設定します (例: /tmp/,/usr/tmp/)。

指定したアップロード場所にある既存のファイルの内容を上書きするには、 OVERWRITEを追加します。

次の Java コード スニペットは、ボリュームにファイルをアップロードする方法を示しています。

// ...
p.put("StagingAllowedLocalPaths", "/tmp/");

Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("PUT '" +
                  "/tmp/my-data.csv" +
                  "' INTO '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' OVERWRITE")
// ...

ファイルをダウンロードする

次の Java コード スニペットは、ボリュームからファイルをダウンロードする方法を示しています。

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("GET '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' TO '" +
                  "/tmp/my-downloaded-data.csv" +
                  "'")
// ...

ファイルを削除する

次の Java コード スニペットは、ボリュームからファイルを削除する方法を示しています。

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("REMOVE '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "'")
// ...