Databricks 连接¶
Databricks 连接类型支持 Databricks 和 Databricks SQL 集成。
Databricks 认证¶
有几种使用 Airflow 连接到 Databricks 的方式。
使用个人访问令牌 (PAT),即向 Airflow 连接添加一个令牌。这是推荐的方法。
使用 Databricks 登录凭据,即向 Airflow 连接添加用于登录 Databricks 账户的用户名和密码。请注意,不推荐使用用户名/密码认证,且
DatabricksSqlOperator
不支持此方式。使用由 Azure 服务主体(Service Principal)的 ID 和密钥生成的 Azure Active Directory (AAD) 令牌(仅限 Azure Databricks)。服务主体可以定义为工作区内的用户,也可以定义为在工作区外具有所有者或贡献者权限的主体。
当 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 租户 IDazure_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'