共用方式為


整合 Databricks Unity 目錄與 OneLake

此案例顯示如何使用捷徑來整合 Unity 目錄外部 Delta 資料表至 OneLake。 在完成本教學課程之後,您將能夠自動同步 Unity 目錄外部 Delta 資料表至 Microsoft Fabric lakehouse。

必要條件

連線之前,確認您擁有:

設定您的雲端儲存連線

首先,檢查 Unity 目錄資料表使用的 Azure Data Lake Storage Gen2 (ADLS Gen2) 儲存位置。 此雲端儲存連線由 OneLake 捷徑使用。 若要建立雲端連線至適當 Unity 目錄儲存位置:

  1. 建立 Unity 目錄資料表使用的雲端儲存連線。 請參閱如何設定 ADLS Gen2 連線

  2. 在建立連線之後,為取得連線 ID,請選取 設定>管理連線與閘道>連線>設定

此螢幕擷取畫面顯示 ADLS Gen2 連線 ID。

注意

授予使用者對 ADLS Gen2 外部儲存位置的直接儲存層級存取權並不會遵守 Unity 目錄所授予的任何權限或維護的稽核記錄。 直接存取將繞過 Unity 目錄的稽核、譜系與其他安全性/監控功能,包括存取控制與權限。 您有責任透過 ADLS Gen2 管理直接儲存存取權,確保使用者擁有透過 Fabric 授予的適當權限。 對於儲存 Databricks 受控資料表的貯體,應在所有情況避免授予直接儲存層級寫入存取權限。 透過最初由 Unity 目錄管理的儲存體直接修改、刪除或改進任何項目可能導致資料損毀。

執行該筆記本

在取得雲端連線 ID 之後,整合 Unity 目錄資料表至 Fabric lakehouse,如下所示:

此螢幕擷取畫面顯示 Unity 目錄至 Fabric 捷徑流程。

  1. 匯入同步筆記本至 Fabric 工作區。 此筆記本會從指定目錄與中繼存放區的結構描述匯出所有 Unity 目錄資料表的中繼資料。

  2. 在筆記本的第一個儲存格設定參數,整合 Unity 目錄資料表。 透過 PAT 權杖驗證的 Databricks API 可用於匯出 Unity 目錄資料表。 下列程式碼片段用於設定來源(Unity 目錄)與目的地 (OneLake) 參數。 確保將其替換為您自己的值。

    # Databricks workspace
    dbx_workspace = "<databricks_workspace_url>"
    dbx_token = "<pat_token>"
    # Unity Catalog
    dbx_uc_catalog = "catalog1"
    dbx_uc_schemas = '["schema1", "schema2"]'
    
    # Fabric
    fab_workspace_id = "<workspace_id>"
    fab_lakehouse_id = "<lakehouse_id>"
    fab_shortcut_connection_id = "<connection_id>"
    # If True, UC table renames and deletes will be considered
    fab_consider_dbx_uc_table_changes = True
    
  3. 執行筆記本的所有儲存格,以便開始使用捷徑同步 Unity 目錄 Delta 資料表至 OneLake。 在筆記本完成之後,可在 lakehouse、SQL 分析端點與語意模型找到 Unity 目錄 Delta 資料表捷徑。

排程筆記本

若要在不透過手動重新同步/重新執行的情況,定期執行筆記本以整合 Unity 目錄 Delta 資料表至 OneLake,您可排程筆記本,或在 Fabric Data Factory 內的資料管線使用筆記本活動

在後一案例,若您打算從資料管線傳遞參數,請指定筆記本的第一個儲存格為切換參數儲存格,並在管線提供適當參數。

此螢幕擷取畫面顯示筆記本活動參數。

其他考量

  • 對於生產案例,建議使用 Databricks OAuth 進行驗證,並使用 Azure Key Vault 來管理密碼。 例如,您可使用 MSSparkUtils 認證公用程 式來存取金鑰保管庫密碼。
  • 筆記本可與 Unity 目錄外部 Delta 資料表搭配使用。 若您的 Unity 目錄資料表使用多個雲儲存位置,即多個 ADLS Gen2,則建議透過每個 Cloud 連線分別執行筆記本。
  • 不支援 Unity 目錄受控 Delta 資料表、檢視、具體化檢視、串流資料表與非 Delta 資料表。
  • 若針對 Unity 目錄資料表結構描述進行變更(例如新增/刪除資料行),將自動反映於捷徑。 然而,部分更新(例如 Unity 目錄資料表重命名及刪除)需要重新同步/重新執行筆記本。 這是透過 fab_consider_dbx_uc_table_changes 參數來考慮。
  • 對於寫入案例,在不同運算引擎使用相同儲存層可能導致意外後果。 當使用不同 Apache Spark 運算引擎與執行階段版本時,請務必了解其影響。