這很重要
這項功能位於 測試版 (Beta) 中。 Workspace 管理員可以透過在預覽頁面啟用 OneLake 閱讀聯盟功能來控制此功能的存取權限。 請參閱 管理 Azure Databricks 預覽。
啟用此功能後,您必須重新啟動運算叢集或 SQL 倉庫。
本文說明如何利用目錄聯盟在 OneLake 中讀取資料。 這使得 Unity 目錄查詢能直接對 OneLake 儲存執行。
OneLake 聯邦讓你能在不複製的情況下分析儲存在 Lakehouse 或 Warehouse 的資料,將 Azure Databricks 強大的分析及 AI/BI 功能直接整合到 OneLake 資料中。 資料存取為唯讀。
開始之前
您必須符合以下條件,才能在 OneLake 上使用目錄聯盟執行聯邦查詢:
工作區需求:
- 已為 Unity Catalog 啟用了工作區。
計算需求:
- 您的計算資源與目標資料庫系統之間的網路連接能力。 請參閱 Lakehouse Federation 的網路建議。
- Azure Databricks 的運算必須使用 Databricks Runtime 18.0 或以上版本及標準存取模式。 不支援專用存取模式。
- SQL 倉庫必須是專業版,且必須使用 2025.35 或更高版本。 伺服器無 SQL 倉庫不被支援。
需要的權限:
- 要建立連線,你必須是 metastore 管理員,或是擁有「Unity Catalog metastore」附加到工作區上的
CREATE CONNECTIONCREATE STORAGE CREDENTIAL權限的使用者。 - 若要建立外來目錄,您必須具有中繼存放區的
CREATE CATALOG許可權,並且必須是連線的擁有者或具有該連線的CREATE FOREIGN CATALOG特權。
在後續每個以任務為基礎的章節中,會指定額外的權限要求。
- 你必須擁有在 Azure 建立資源、在 Fabric 中設定存取權限,以及在 Azure Databricks 管理 Unity 目錄的權限。
- 支援的認證方法:
- Azure 託管身分經由 Azure Databricks 的存取連接器
- Azure 服務主體
- 啟用此 Beta 功能後,您必須重新啟動運算叢集或 SQL 倉庫。
以下支援的 Fabric 資料項目:
- Fabric湖倉
- 布料倉庫
設定目錄同盟
以下步驟將引導您建立 OneLake 聯盟的連結與海外目錄。
步驟 1:設定 Azure 認證
OneLake 聯盟支援兩種認證方式。
- Azure 管理身份(建議):使用 Databricks 存取連接器搭配管理身份。
- Azure Service Principal:使用 Microsoft Entra ID 應用程式並使用客戶端憑證。
選項 A:建立存取連接器(管理身份)
Databricks Access Connector 建立一個管理身份,Azure Databricks 用來與 OneLake 進行認證。
在 Azure Portal 中,搜尋並建立一個新的 Access Connector for Azure Databricks 資源。
依照提示製作連接器。 此資源建立系統指派的管理身份(Managed Identity)。
記錄新建立連接器的 資源 ID 。 建立 Unity Catalog 儲存憑證時,你需要這個 ID。
資源識別碼的格式如下:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
欲了解更多關於建立存取連接器及使用受管理身份的資訊,請參閱「 在 Unity 目錄中使用 Azure 管理身份以存取儲存裝置」。
選項B:註冊服務主體
如果你偏好使用服務主體而非受管理身份:
- 在 Azure 入口網站,導覽到 Microsoft Entra ID>應用程式註冊, 註冊一個新應用程式(或使用現有的)。
- 記錄 應用程式(用戶端)ID 與 目錄(租戶)ID。
- 在 「憑證與秘密」中,建立一個新的客戶端秘密並記錄秘密 值。
步驟 2:在 Fabric 中授予權限
授予受管理身份或服務主體讀取 Fabric 資料的權限。
- 在 Fabric 入口網站中,導覽到包含 Lakehouse 或 Warehouse 資料項目的工作區。
- 在工作區中,點選 工作區設定 的齒輪圖示,然後點 選管理存取。
- 點選 新增人員或群組。
- 搜尋並選擇受管理的身分識別或服務主體名稱。 對於管理身份,名稱應該會和你之前建立的存取連接器相符。 對於服務主體,請搜尋你註冊的應用程式名稱。
- 至少將身份分配為 成員 角色。 你也可以指派貢獻者或管理員角色。
- 按下 新增。
- 確認該身份是否以適當角色出現在存取清單中。 Lakehouse 和 Warehouse 個別項目的權限是從工作區層級角色繼承而來。
步驟 3:建立儲存憑證
在 Unity Catalog 建立一個儲存憑證,參考你在步驟 1 中設定的身份。
- 在您的 Azure Databricks 工作區中,按一下
目錄。
- 在 目錄 窗格頂端,點選
「新增或加號」圖示,從選單中選擇 「建立憑證」。
如果你使用的是受管身份:
- 在 「建立新憑證 」模式中,對於 憑證類型,選擇 Azure 管理身份。
- 對於 憑證名稱,請輸入儲存憑證的 名稱 (例如,
onelake_storage_cred。 - 對於 存取連接器 ID,請輸入你先前建立的存取連接器的資源 ID。
- (選擇性) 新增註解。
- 點擊 建立。
如果您正在使用服務負責人:
你無法使用 Catalog Explorer 建立服務主體儲存憑證。 你必須是 Azure Databricks 帳號管理員,並且使用 Storage Credentials API。 例如:
curl -X POST -n \
https://<databricks-instance>/api/2.1/unity-catalog/storage-credentials \
-d '{
"name": "<storage-credential-name>",
"read_only": true,
"azure_service_principal": {
"directory_id": "<directory-id>",
"application_id": "<application-id>",
"client_secret": "<client-secret>"
},
"skip_validation": "false"
}'
您也可以使用 Databricks Terraform 提供者 和 databricks_storage_credential來建立記憶體認證。
步驟 4:建立 Unity 目錄連結
建立一個 Unity 目錄連線,使用儲存憑證來存取 OneLake。
- 在您的 Azure Databricks 工作區中,按一下
目錄。
- 在 目錄 面板頂端,點選
加號圖示,從選單中選擇 建立連線 。 - 在 連線基礎 頁面輸入 連線名稱 (例如,
onelake_connection)。 - 選擇 OneLake 的連線類型。
- (選擇性) 新增註解。
- 按 [下一步]。
- 在連線詳情頁面的憑證選項中,選擇你在前一步建立的儲存憑證(例如)。
onelake_storage_cred - 對於 工作區,請輸入您 OneLake 工作區的工作區 ID。
- 點選 「建立連線」。
連線建立後,你可以離開這個模態。
步驟五:建立外國目錄
外部目錄將特定的 Fabric 資料項目連結到 Unity 目錄中的目錄。
取得 Fabric 資料項 ID
在 Fabric 門戶中,導航至目標的 Lakehouse 或倉庫。
複製 資料項目 ID,這是一個 GUID(例如,
f089354e-8366-4e18-aea3-4cb4a3a50b48)。你可以在 Fabric UI 中找到這個 GUID,或在你瀏覽到 Lakehouse 或 Warehouse 時,從瀏覽器的 URL 複製它:
https://app.powerbi.com/groups/<workspace-id>/lakehouses/<data-item-id>?experience=power-bi
建立目錄
- 在你的 Databricks 工作區,點選
目錄。
- 在 目錄 面板頂端,點選
加號圖示,從選單中選擇 建立目錄 。 - 在 「建立新目錄 」對話框中,輸入目錄名稱(例如,
fabric_sales)。 - 選擇一種外國產品。
- 選擇你在步驟 4 建立的 連線 (例如,
onelake_connection)。 - 對於 資料項目,輸入您從 Fabric 門戶複製的資料項目 ID。
- (可選)點擊 測試連線 以驗證你的設定。
- 點擊 建立。
目錄會自動同步,讓 Fabric 表格立即可用。
授予聯邦資料表權限
設定目錄聯盟後,使用者必須擁有適當的 Unity 目錄權限才能存取聯邦資料表:
- 所有使用者需要目錄的
USE CATALOG權限和結構的USE SCHEMA權限。 - 使用者若要從聯邦表格讀取,需取得
SELECT權限。
欲了解更多關於 Unity 目錄權限及授予方式,請參閱 管理 Unity 目錄中的權限。
查詢 OneLake 資料
設定完成後,你可以在 Unity 目錄中查找並查詢 OneLake 資料。
瀏覽目錄
- 在你的 Databricks 工作區中,進入 目錄總管。
- 找到你所建立的目錄(例如,
fabric_sales)。 - 展開目錄以查看來自 Fabric Lakehouse 或 Warehouse 的同步結構與資料表。
執行查詢
在 Databricks SQL 或筆記本中,使用三部分命名慣例(catalog.schema.table):
SELECT COUNT(*)
FROM fabric_sales.silver.customer_details;
SELECT
customer_id,
customer_name,
total_purchases
FROM fabric_sales.silver.customer_details
WHERE total_purchases > 1000
ORDER BY total_purchases DESC
LIMIT 10;
局限性
OneLake 聯盟有以下限制:
- 唯讀存取:僅支援 SELECT 查詢。 無法進行寫入操作。
- 認證:Azure 管理身份(Managed Identity)和 Azure 服務主體是支援的認證方法。
- 支援的資料項目:僅支援 Fabric Lakehouse 與 Warehouse 項目。
- 計算需求:您必須使用 Databricks Runtime 18.0 或以上版本。 不支援專用存取模式和無伺服器運算。