注释
本文适用于低于版本 3 的 Databricks JDBC 驱动程序。 有关最新的 Databricks JDBC 驱动程序版本 3 及更高版本,请参阅 Databricks JDBC 驱动程序。
本文介绍如何使用 Databricks JDBC 驱动程序配置与 Azure Databricks 的连接。
若要为 Databricks JDBC 驱动程序配置 Azure Databricks 连接,必须将 计算资源设置、任何 驱动程序功能设置和 身份验证设置合并到 JDBC 连接 URL 或 JDBC 连接属性的编程集合中,或者同时将这两者合并在一起。
JDBC 连接 URL 使用以下格式:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- 若要获取
<server-hostname>和<http-path>的值,请参阅 Databricks JDBC 驱动程序(Simba)的计算设置。 - 根据需要替换每个连接属性的
<setting>=<value>。 - 还可以添加特殊或高级驱动程序功能设置。
可以在 Java 中设置 JDBC 连接属性,例如以下示例:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("com.databricks.client.jdbc.Driver");
String url = "jdbc:databricks://" + System.getenv("DATABRICKS_SERVER_HOSTNAME") + ":443";
Properties p = new java.util.Properties();
p.put("httpPath", System.getenv("DATABRICKS_HTTP_PATH"));
p.put("<setting1>", "<value1");
p.put("<setting2>", "<value2");
p.put("<settingN>", "<valueN");
try (Connection conn = DriverManager.getConnection(url, p)) {
Statement stmt = conn.createStatement();
try (ResultSet rs = stmt.executeQuery("<query>")) {
ResultSetMetaData md = rs.getMetaData();
String[] columns = new String[md.getColumnCount()];
for (int i = 0; i < columns.length; i++) {
columns[i] = md.getColumnName(i + 1);
}
while (rs.next()) {
System.out.print("Row " + rs.getRow() + "=[");
for (int i = 0; i < columns.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(columns[i] + "='" + rs.getObject(i + 1) + "'");
}
System.out.println(")]");
}
}
}
System.exit(0);
}
}
- 将
DATABRICKS_SERVER_HOSTNAME和DATABRICKS_HTTP_PATH环境值分别设置为目标 Azure Databricks 计算资源的“服务器主机名”和“HTTP 路径”值。 若要获取这些值,请参阅 Databricks JDBC 驱动程序(Simba)的计算设置。 若要设置环境变量,请参阅操作系统的文档。 - 根据需要替换
<setting>和<value>,以便选择您的身份验证类型的属性。 - 还可以添加特殊或高级驱动程序功能设置,通常是以附加
<setting>和<value>对的形式。 - 对于此示例,请将
<query>替换为 SQLSELECT查询字符串。
无论是使用连接 URL 还是连接属性集合,都取决于目标应用、工具、客户端、SDK 或 API 的要求。