重要
這些指示適用於舊版資料存取模式。 Databricks 建議使用 Unity 目錄外部位置進行數據存取。 請參閱使用 Unity 目錄連線到雲端物件儲存體。
本文說明如何管理工作區中 SQL 倉儲的資料存取屬性。
重要
變更這些設定會重新啟動所有執行中的 SQL 倉儲。
設定服務主體
若要使用服務主體設定 SQL 倉儲對 Azure Data Lake Storage 儲存器帳戶的存取,請遵循下列步驟:
註冊Microsoft Entra ID(先前稱為 Azure Active Directory)應用程式,並記錄下列屬性:
- 應用程式 (用戶端) 識別碼:可唯一識別Microsoft Entra ID 應用程式的標識碼。
- 目錄(租使用者)標識碼:可唯一識別 Azure Databricks 中Microsoft Entra ID 實例(稱為目錄(租使用者)標識碼的標識碼。
- 用戶端密碼:針對此應用程式註冊建立的客戶端密碼值。 應用程式會使用此秘密字串來證明其身分識別。
在您的記憶體帳戶上,為在上一個步驟註冊的應用程式新增角色指派,以授與記憶體帳戶的存取權。
建立使用 Azure Key Vault 支援或限定於 Databricks 的機密範圍,請參閱管理機密範圍,並記錄範圍名稱屬性值:
- 範圍名稱:所建立秘密範圍的名稱。
如果使用 Azure 金鑰保存庫,請使用 [值] 字段中的 [客戶端密碼] 在 Azure 金鑰保存庫 中建立秘密。 如需範例,請參閱步驟 4:將客戶端密碼新增至 Azure 金鑰保存庫。 保留您選擇的秘密名稱記錄。
- 秘密名稱:所建立 Azure 金鑰保存庫 秘密的名稱。
如果使用 Databricks 支援的範圍, 請使用 Databricks CLI 建立新的秘密 ,並用它來儲存您在步驟 1 中取得的客戶端密碼。 記下您在此步驟中輸入的秘密金鑰記錄。
- 密鑰:使用 Databricks 支援建立的密鑰。
注意
您可以選擇性地建立額外的秘密,以儲存在步驟 1 取得的用戶端識別碼。
點擊工作區頂端列中的使用者名稱,然後從下拉式清單中選取 [設定]。
點擊 計算 標籤。
點擊管理旁的SQL 倉儲。
在 [數據存取組態] 字段中,按兩下 [ 新增服務主體 ] 按鈕。
設定 Azure Data Lake Storage 記憶體帳戶的屬性。
按一下新增。
您會看到新的項目已新增至 [資料存取組態] 文字框中。
按一下 儲存。
您也可以直接編輯 [資料存取設定] 的文字方塊條目。
設定 SQL 倉儲的數據存取屬性
若要設定具有數據存取屬性的所有倉儲:
點擊工作區頂端列中的使用者名稱,然後從下拉式清單中選取 [設定]。
點擊 計算 標籤。
點擊管理旁的SQL 倉儲。
在 [ 資料存取組態 ] 文本框中,指定包含 中繼存放區屬性的機碼/值組。
重要
若要將 Spark 組態屬性設定為秘密的值,而不將秘密值公開至 Spark,請將值設定為
{{secrets/<secret-scope>/<secret-name>}}。 將<secret-scope>替換為秘密範圍,並將<secret-name>替換為秘密名稱。 值必須以{{secrets/開頭,並以}}結尾。 如需此語法的詳細資訊,請參閱 管理秘密。按一下 儲存。
您也可以使用 Databricks Terraform 提供者 和 databricks_sql_global_config來設定數據存取屬性。
支援的屬性
對於結尾
*為 的項目,支援該前置詞內的所有屬性。例如,
spark.sql.hive.metastore.*表示spark.sql.hive.metastore.jars和spark.sql.hive.metastore.version都受到支援,以及任何以spark.sql.hive.metastore開頭的其他屬性。對於值包含敏感性資訊的屬性,您可以將敏感性資訊儲存在 秘密 中,並使用下列語法將屬性的值設定為秘密名稱:
secrets/<secret-scope>/<secret-name>。
SQL 倉儲支援下列屬性:
spark.sql.hive.metastore.*spark.sql.warehouse.dirspark.hadoop.datanucleus.*spark.hadoop.fs.*spark.hadoop.hive.*spark.hadoop.javax.jdo.option.*spark.hive.*
如需如何設定這些屬性的詳細資訊,請參閱 外部 Hive 中繼存放區。