如何以编程方式获取集群的 JDBC/ODBC 参数?

问题描述

Databricks documentation 展示了如何从 UI 的 JDBC/ODBC 选项卡中获取集群的主机名、端口、HTTP 路径和 JDBC URL 参数。看图:

Databricks's JDBC/ODBC Tab

有没有办法以编程方式获取相同的信息?我的意思是使用 Databricks API 或 Databricks CLI。我对包含 Workspace IdHTTP path 特别感兴趣。

解决方法

您可以使用 SQL Analytics REST API 的 Get operation(可能与 List 一起使用) - 它返回 JDBC 连接字符串作为响应的一部分(jdbc_url 字段):

{
  "id": "123456790abcdef","name": "My SQL endpoint","cluster_size": "Medium","min_num_clusters": 1,"max_num_clusters": 10,"auto_stop_mins": 30,"num_clusters": 5,"num_active_sessions": 30,"state": "RUNNING","creator_name": "user@example.com","jdbc_url":"jdbc:spark://<databricks-instance>:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/protocolv1/o/0123456790abcdef;","odbc_params": {
    "host": "<databricks-instance>","path": "/sql/protocolv1/o/0/123456790abcdef","protocol": "https","port": 443
  }
}

HTTP 路径也在那里,作为 path 对象的 odbc_params 部分。