Databricks JDBC Driver を使用して Unity Catalog ボリューム内のファイルを管理する

この記事では、Databricks JDBC Driver を使用して Unity Catalog ボリューム内のファイルのアップロード、ダウンロード、削除を行う方法を説明します。

要件

  • Databricks JDBC Driver バージョン 2.6.38 以上。
  • 既定では、ネイティブ クエリ モードが有効になっています。 それ以外の場合は、UseNativeQuery プロパティを JDBC 接続文字列に追加し、その値を 1 または 2 に設定します。

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

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

ファイルをボリュームにアップロードするには、StagingAllowedLocalPaths プロパティを JDBC 接続文字列に追加し、このプロパティの値をアップロードするファイルのパスに設定する必要があります。 別の場所から複数のファイルをアップロードするには、このプロパティをコンマで区切られたパスのリストに設定します (例: /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" +
                  "'")
// ...