注释
本文适用于 Databricks JDBC Simba 驱动程序。 有关 Databricks 开发的 JDBC 驱动程序,请参阅 Databricks JDBC 驱动程序(OSS)。
本文介绍如何使用 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 驱动程序的计算设置。 - 根据需要替换每个连接属性的
<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 驱动程序的计算设置。 若要设置环境变量,请参阅操作系统的文档。 - 根据需要替换
<setting>
和<value>
,以便选择您的身份验证类型的属性。 - 还可以添加特殊或高级驱动程序功能设置,通常是以附加
<setting>
和<value>
对的形式。 - 对于此示例,请将
<query>
替换为 SQLSELECT
查询字符串。
无论是使用连接 URL 还是连接属性集合,都取决于目标应用、工具、客户端、SDK 或 API 的要求。