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'

此條目有幫助嗎?