다음을 통해 공유

使用 Databricks JDBC 驱动程序(Simba)配置 Databricks 连接

注释

本文适用于低于版本 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>]

可以在 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_HOSTNAMEDATABRICKS_HTTP_PATH 环境值分别设置为目标 Azure Databricks 计算资源的“服务器主机名”和“HTTP 路径”值。 若要获取这些值,请参阅 Databricks JDBC 驱动程序(Simba)的计算设置。 若要设置环境变量,请参阅操作系统的文档。
  • 根据需要替换<setting><value>,以便选择您的身份验证类型的属性。
  • 还可以添加特殊或高级驱动程序功能设置,通常是以附加<setting><value>对的形式。
  • 对于此示例,请将 <query> 替换为 SQL SELECT 查询字符串。

无论是使用连接 URL 还是连接属性集合,都取决于目标应用、工具、客户端、SDK 或 API 的要求。