使用 Databricks JDBC 驅動程式 (Simba) 管理 Unity 目錄磁碟區中的檔案

備註

本頁適用於Simba JDBC驅動程式(Legacy),版本低於版本3。 Databricks 強烈建議遷移至 Databricks JDBC 驅動程式 以進行 JDBC 連線。 它包含了如支援 Unity Catalog 指標檢視、跨多個 SQL 語句的交易、儲存程序、更快速的大結果檢索,以及內建用戶端遙測等改進。

本頁說明如何使用 Databricks JDBC 驅動程式在 Unity 目錄卷中上傳、下載及刪除檔案。

需求

  • Databricks JDBC 驅動程式版本 2.6.38 或更高
  • 啟用原生查詢模式(預設)。 如果是停用,請在你的連接字串中加入 UseNativeQuery=1 或 UseNativeQuery=2 。

欲了解完整的 Java 認證設定範例,請參閱 Databricks JDBC 驅動程式(Simba)的認證設定。

上傳檔案

要上傳檔案,請在你的連線字串中加上 StagingAllowedLocalPaths 檔案上傳路徑的屬性。 對於多個來源位置,請使用逗號分隔的清單(例如, /tmp/,/usr/tmp/)。

這很重要

在多租戶環境中,當使用者控制 JDBC URL(如 BI 工具或開發者服務)時,將 StagingAllowedLocalPaths 設定為沙盒位置或不存在的路徑。 這防止使用者撰寫任意檔案並干擾服務的內部部署。

若要覆寫現有檔案,請在語句中加入 OVERWRITE 。

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

下載檔案

使用 GET 來從磁碟區下載檔案到本地路徑:

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

刪除檔案

使用 REMOVE 來刪除磁碟區檔案:

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

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