使用 Databricks JDBC 驱动程序管理 Unity Catalog 卷中的文件

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

要求

  • Databricks JDBC 驱动程序版本 2.6.38 或更高版本。
  • 默认情况下,本机查询模式处于启用状态。 否则,请将 UseNativeQuery 属性添加到 JDBC 连接字符串,并将其值设置为 12

有关演示如何在使用 Databricks JDBC 驱动程序设置 Azure Databricks 身份验证和运行 SQL 语句的上下文中运行本文中代码片段的完整 Java 代码示例,请参阅 Databricks JDBC 驱动程序的身份验证设置

上传文件

若要将文件上传到卷,必须将 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" +
                  "'")
// ...