Databricks 连接

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

身份验证到 Databricks

有几种方法可以使用 Airflow 连接到 Databricks。

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

  2. 使用 Databricks 登录凭据,即将用于登录 Databricks 帐户的用户名和密码添加到 Airflow 连接。请注意,不鼓励使用用户名/密码身份验证,并且DatabricksSqlOperator不支持这种身份验证方式。

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

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

默认连接 ID

与 Databricks 相关的钩子和操作符默认使用databricks_default

配置连接

主机(必填)

指定 Databricks 工作区 URL。

登录名(可选)
  • 如果使用*Databricks 登录凭据*进行身份验证,则指定用于登录 Databricks 的用户名

  • 如果使用*Azure 服务主体*进行身份验证,则指定 Azure 服务主体的 ID。

  • 如果使用*PAT*进行身份验证,则将此字段留空或使用“token”作为登录名(两者都可以,唯一的区别是,如果登录名为空,则令牌将在请求标头中作为 Bearer 令牌发送;如果登录名为“token”,则将使用 Databricks API 允许的基本身份验证发送令牌,如果您计划将此连接与例如 HttpOperator 重用,这将非常有用)。

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

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

  • 如果使用*Azure 服务主体*进行身份验证,则指定 Azure 服务主体的密钥。

  • 如果使用*PAT*进行身份验证,则指定 PAT(推荐)。

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

额外参数(可选)

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

如果使用*PAT*身份验证方法,则可以使用以下参数:

  • token:指定要使用的 PAT。请考虑切换到在“密码”字段中指定 PAT,因为它更安全。

如果使用 AWS Databricks 服务主体的 OAuth 令牌进行身份验证,则以下参数是必需的:

如果使用 AAD 令牌进行身份验证,则以下参数是必需的:

  • azure_tenant_id:Azure Active Directory 租户的 ID。

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

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

如果使用 Azure 托管标识的 AAD 令牌进行身份验证,则以下参数是必需的:

  • 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'

此条目是否有帮助?