Databricks 连接

Databricks 连接类型支持 Databricks 和 Databricks SQL 集成。

Databricks 认证

有几种使用 Airflow 连接到 Databricks 的方式。

  1. 使用个人访问令牌 (PAT),即向 Airflow 连接添加一个令牌。这是推荐的方法。

  2. 使用 Databricks 登录凭据,即向 Airflow 连接添加用于登录 Databricks 账户的用户名和密码。请注意,不推荐使用用户名/密码认证,且 DatabricksSqlOperator 不支持此方式。

  3. 使用由 Azure 服务主体(Service Principal)的 ID 和密钥生成的 Azure Active Directory (AAD) 令牌(仅限 Azure Databricks)。服务主体可以定义为工作区内的用户,也可以定义为在工作区外具有所有者或贡献者权限的主体

  4. 当 Airflow 运行在分配了托管标识(系统分配或用户分配)的虚拟机上时,使用为 Azure 托管标识(Managed Identity)获得的 Azure Active Directory (AAD) 令牌。

默认连接 ID

与 Databricks 相关的 Hook 和 Operator 默认使用 databricks_default

配置连接

主机 (必需)

指定 Databricks 工作区 URL

登录 (可选)
  • 如果使用 Databricks 登录凭据进行认证,则指定用于登录 Databricks 的 username

  • 如果使用 Azure 服务主体进行认证,则指定 Azure 服务主体的 ID

  • 如果使用 PAT 进行认证,则可以将此字段留空或使用 ‘token’ 作为登录名(两者都有效,唯一的区别是如果登录名为空,令牌将作为 Bearer 令牌在请求头中发送;如果登录名为 ‘token’,则将使用 Basic Auth 发送,Databricks API 允许这样做,如果您计划将此连接与 HttpOperator 等 Operator 重用,这可能会很有用)。

  • 如果使用 Databricks 服务主体 OAuth 进行认证,则指定服务主体 ID(AWS 上的 Databricks)

密码 (可选)
  • 如果使用 Databricks 登录凭据进行认证,则指定用于登录 Databricks 的 password

  • 如果使用 Azure 服务主体进行认证,则指定 Azure 服务主体的密钥

  • 如果使用 PAT 进行认证,则指定 PAT(推荐)

  • 如果使用 Databricks 服务主体 OAuth 进行认证,则指定服务主体的密钥(AWS 上的 Databricks)

Extra (可选)

指定可在 Databricks 连接中使用的额外参数(以 JSON 字典形式)。

如果使用 PAT 认证方法,可以使用以下参数

  • token: 指定要使用的 PAT。建议改用在“密码”字段中指定 PAT 的方式,因为这样更安全。

如果使用适用于 AWS Databricks 服务主体的 OAuth 令牌进行认证,则需要以下参数

  • service_principal_oauth: 必需的布尔标志。如果指定为 true,则将客户端 ID 和客户端密钥用作用户名和密码。请参阅使用 OAuth 进行服务主体认证

如果使用 AAD 令牌进行认证,则需要以下参数

  • azure_tenant_id: Azure Active Directory 租户 ID

  • azure_resource_id: 可选的 Azure Databricks 工作区资源 ID(如果服务主体不是工作区内的用户,则必需)

  • azure_ad_endpoint: 如果您使用的是特殊Azure 云(GovCloud、中国、德国),则可选的 Azure AD 终端节点主机名。该值必须包含协议。例如:https://login.microsoftonline.de

如果使用 Azure 托管标识的 AAD 令牌进行认证,则需要以下参数

  • use_azure_managed_identity: 必需的布尔标志,用于指定是否应使用托管标识而不是服务主体

  • use_default_azure_credential: 必需的布尔标志,用于指定是否应使用 DefaultAzureCredential 类来检索 AAD 令牌。例如,在 Azure Kubernetes Service 集群内使用工作负载标识进行认证时可以使用此选项。请注意,此选项不能与 use_azure_managed_identity 参数同时设置。

  • azure_resource_id: 可选的 Azure Databricks 工作区资源 ID(如果托管标识不是工作区内的用户,则必需)

使用 DatabricksSqlOperator 时可以设置以下参数

  • http_path: 可选的 Databricks SQL 终端节点或 Databricks 集群的 HTTP 路径。请参阅文档

  • session_configuration: 可选的映射,包含 Spark 会话配置参数。

  • 来自 databricks-sql-connector 包的 Connection 对象的命名内部参数。

使用环境变量指定连接时,应使用 URI 语法进行指定。

请注意,URI 的所有组成部分都应进行 URL 编码。

例如

export AIRFLOW_CONN_DATABRICKS_DEFAULT='databricks://@host-url?token=yourtoken'

此条目有帮助吗?