使用 Databricks JDBC 驱动程序管理 Unity 目录卷中的文件(Simba)

注释

此页面适用于低于版本 3 的 Databricks JDBC 驱动程序版本。 有关版本 3 及更高版本,请参阅 Databricks JDBC 驱动程序

本页介绍如何使用 Databricks JDBC 驱动程序上传、下载和删除 Unity 目录中的文件。

要求

  • Databricks JDBC 驱动程序版本 2.6.38 或更高版本
  • 已启用本机查询模式(默认值)。 如果已禁用,请在连接字符串中添加 UseNativeQuery=1UseNativeQuery=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" +
                  "'")
// ...