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'