使用UCX公用程式將您的工作區升級至 Unity 目錄
本文介紹 UCX,這是 Databricks Labs 專案,其提供工具,可協助您將非Unity-Catalog 工作區升級至 Unity 目錄。
注意
UCX 就像 databrickslabs GitHub 帳戶中的所有項目一樣,只會提供您探索,且 Databricks 並未正式支援服務等級協定 (SLA)。 它會依目前提供。 我們不保證任何形式的保證。 請勿提交 Databricks 支援票證,該票證與使用此項目時發生的問題有關。 請改為 提出 GitHub 問題。 問題會檢閱為時間許可,但沒有正式的 SLA 支援。
UCX 專案提供下列移轉工具和工作流程:
- 評定工作流程 可協助您規劃移轉。
- 群組移轉工作流程 可協助您將群組成員資格從工作區升級至 Databricks 帳戶,並將許可權移轉至新的帳戶層級群組。
- 數據表移轉工作流程,協助您將工作區 Hive 中繼存放區中註冊的數據表升級至 Unity 目錄中繼存放區。 此工作流程也可協助您移轉儲存位置,以及存取它們所需的認證。
下圖顯示整體移轉流程,依名稱識別移轉工作流程和公用程式:
注意
圖表中所描述的程式代碼移轉工作流程仍在開發中,但尚無法使用。
開始之前
您必須先符合下列需求,才能安裝UCX並執行UCX工作流程。
在您執行 UCX的電腦上安裝的套件:
Databricks CLI v0.213 或更新版本。 請參閱 以安裝或更新 Databricks CLI。
您必須有 Databricks 組態檔,其中包含工作區和 Databricks 帳戶的組態配置檔。
Python 3.10 或更新版本。
如果您想要執行 UCX 工作流程,以識別您工作區中 Hive 數據表所使用的儲存位置(建議但不需要),您必須在執行 UCX 工作流程的電腦上安裝雲端記憶體提供者的 CLI(Azure CLI 或 AWS CLI)。
網路存取:
- 從執行UCX安裝的電腦到您要移轉的 Azure Databricks 工作區進行網路存取。
- 從執行UCX安裝的電腦存取因特網。 這是存取 pypi.org 和 github.com 的必要專案。
- 從 Azure Databricks 工作區存取網路,以 pypi.org 下載
databricks-sdk
和pyyaml
套件。
Databricks 角色和許可權:
- 執行UCX安裝之使用者的 Azure Databricks 帳戶管理員和工作區管理員角色。 您無法以服務主體的形式執行安裝。
其他 Databricks 必要條件:
在每個託管您要升級的工作區之區域中創建的 Unity Catalog 中繼存放區,並將每個 Azure Databricks 工作區附加到這些 Unity Catalog 中繼存放區。
若要瞭解如何判斷您是否已經有相關工作區區域中的 Unity 目錄中繼存放區、如何建立中繼存放區,以及如何將 Unity 目錄中繼存放區附加至工作區,請參閱 步驟 1:確認您的工作區已啟用 Unity 目錄設定文章中的 Unity 目錄。 或者,UCX 提供 公用程式,將 Unity 目錄中繼存放區指派給工作區, 您可以在安裝 UCX 之後使用。
將 Unity 目錄中繼存放區附加至工作區也會啟用 身分識別同盟,您可以在其中集中管理 Azure Databricks 帳戶層級的使用者管理,這也是使用 UCX 的必要條件。 請參閱 啟用身分識別同盟。
如果您的工作區使用外部 Hive 中繼存放區(例如 AWS Glue),而不是預設工作區本機 Hive 中繼存放區,您必須執行一些必要條件設定。 請參閱 databrickslabs/ucx 存放庫中的外部 Hive 中繼存放區整合 。
在您執行UCX工作流程的工作區上執行的 Pro或無伺服器 SQL 倉儲,需要轉譯評量工作流程所產生的報表。
安裝UCX
若要安裝 UCX,請使用 Databricks CLI:
databricks labs install ucx
您會被提示選擇下列選項:
您要升級之工作區的 Databricks 組態配置檔。 組態檔也必須包含工作區父 Databricks 帳戶的組態配置檔。
清查資料庫的名稱,將用來儲存移轉工作流程的輸出。 通常,選取預設值(
ucx
)是可以的。要執行安裝程式的 SQL 倉儲。
您想從工作區移轉至帳戶層級群組的本地組清單。 如果您將此保留為預設值 (
<ALL>
),則任何名稱符合工作區本地組的現有帳戶層級群組,都會被視為該工作區本地組的取代專案,並在安裝后執行 群組移轉工作流程 時繼承其所有工作區許可權。您有機會在執行安裝程式和執行群組移轉之前,修改 workspace-group-to-account-group 對應。 請參閱 UCX 存放庫中的組名衝突解決 。
如果您有外部 Hive 中繼存放區,例如 AWS Glue,您可以選擇與其連線。 請參閱 databrickslabs/ucx 存放庫中的外部 Hive 中繼存放區整合 。
是否要開啟產生的自述檔筆記本。
安裝完成後,它會在工作區中部署自述檔筆記本、儀錶板、資料庫、連結庫、作業和其他資產。
如需詳細資訊,請參閱 專案自述檔中的安裝指示。 您也可以 在 Databricks 帳戶中的所有工作區上安裝 UCX。
開啟自述檔筆記本
每個安裝都會建立自述檔筆記本,以提供所有工作流程和工作的詳細描述,並提供工作流程和儀錶板的快速連結。 請參閱 自述檔筆記本。
步驟 1. 執行評定工作流程
評定工作流程會評估目前工作區中群組身分識別、儲存位置、記憶體認證、訪問控制和數據表的 Unity 目錄相容性,並提供規劃移轉至 Unity 目錄所需的資訊。 根據指定的相依性,評定工作流程中的工作可以平行或循序執行。 評估工作流程完成後,評估儀錶板會填入結果和常見建議。
每個工作流程工作的輸出會儲存在您安裝期間所指定之 $inventory_database
架構中的 Delta 數據表中。 您可以使用這些數據表,使用 評估報告來執行進一步分析和決策。 您可以多次執行評定工作流程,以確保在開始移轉程式之前,先識別並考慮所有不相容的實體。
您可以從 UCX 產生的自述檔筆記本和 Azure Databricks UI 觸發評定工作流程(工作流程 > 作業 > [UCX] 評定),或執行下列 Databricks CLI 命令:
databricks labs ucx ensure-assessment-run
如需詳細指示,請參閱 評定工作流程。
步驟 2. 執行群組移轉工作流程
群組移轉工作流程會將工作區-本地組升級至帳戶層級群組,以支援 Unity 目錄。 它可確保工作區中提供適當的帳戶層級群組,並復寫所有許可權。 它也會從工作區中移除任何不必要的群組和許可權。 群組移轉工作流程中的工作取決於評定工作流程的輸出。
每個工作流程工作的輸出會儲存在您安裝期間所指定之 $inventory_database
架構中的 Delta 數據表中。 您可以使用這些資料表來執行進一步分析和決策。 您可以多次執行群組移轉工作流程,以確保所有群組都已成功升級,並已指派所有必要的許可權。
如需執行群組移轉工作流程的相關信息,請參閱 UCX 自述檔中的 UCX 產生的自述檔筆記本和 群組移轉工作流程 。
步驟 3. 執行數據表移轉工作流程
數據表移轉工作流程會將數據表從Hive中繼存放區升級至 Unity 目錄中繼存放區。 Hive 中繼存放區中的外部數據表會使用 SYNC升級為 Unity 目錄中的外部資料表。 Hive 中繼存放區中存放於工作區儲存區(亦稱為 DBFS 根目錄)的受控資料表會通過使用 DEEP CLONE升級為 Unity Catalog 中的受控資料表。
Hive 管理的數據表必須是 Delta 或 Parquet 格式,才能進行升級。 外部 Hive 資料表必須是 處理外部資料表所列的其中一種資料格式。
執行準備命令
數據表移轉包含您在執行數據表移轉工作流程之前所執行的一些準備工作。 您可以使用下列 Databricks CLI 命令來執行這些工作:
-
create-table-mapping
命令會建立 CSV 檔案,將目標 Unity 目錄、架構和數據表對應至將升級的每個 Hive 數據表。 您應該先檢閱並更新對應檔案,再繼續進行移轉工作流程。 -
create-uber-principal
命令,它會建立服務主體,並具有此工作區中數據表所用之所有記憶體的唯讀存取權。 工作流程作業計算資源會使用此主體來升級工作區中的數據表。 當您完成升級時,取消布建此服務主體。 - (選擇性)
principal-prefix-access
命令,識別工作區中 Hive 資料表所使用的記憶體帳戶和記憶體存取認證。 - (選擇性)
migrate-credentials
命令,它會從principal-prefix-access
所識別的記憶體存取認證建立 Unity 目錄記憶體認證。 - (選擇性)
migration locations
命令會透過使用migrate-credentials
所建立的儲存認證,從評估工作流程所識別的儲存位置中建立 Unity Catalog 的外部位置。 - (選擇性)
create-catalogs-schemas
命令,它會建立將保存升級數據表的 Unity 目錄和架構。
如需詳細資訊,包括其他數據表移轉工作流程命令和選項,請參閱 UCX 自述檔中
執行數據表移轉
執行準備工作之後,您可以從 UCX 產生的自述檔筆記本,或從工作區 UI 中的 工作流程 > 作業 執行數據表移轉工作流程。
每個工作流程工作的輸出會儲存在您安裝期間所指定之 $inventory_database
架構中的 Delta 數據表中。 您可以使用這些資料表來執行進一步分析和決策。 您可能需要多次執行數據表移轉工作流程,以確保所有數據表都已成功升級。
如需完整的數據表移轉指示,請參閱 UCX 產生的自述檔筆記本中的 README,以及 UCX 自述檔中的 數據表移轉工作流程。
其他工具
UCX 也包含:
啟用 Hive 中繼存放區聯邦的工具,這是 Azure Databricks 整合工具,讓 Unity Catalog 能夠管理在 Hive 中繼存放區中註冊的表格:
enable-hms-federation
create-federated-catalog
Hive 中繼存放區同盟可讓您在舊版 Hive 中繼存放區及其 Unity 目錄中的鏡像上執行工作負載,以協助移轉,以緩和轉換至 Unity 目錄。 如需在移轉案例中使用Hive中繼存放區同盟的詳細資訊,請參閱 如何在移轉至 Unity 目錄期間使用 Hive 中繼存放區同盟?。
偵錯工具和其他公用程式,以協助您成功進行移轉。
如需詳細資訊,請參閱由UCX產生的自述檔筆記本和 UCX專案自述檔。
升級您的UCX安裝
UCX 專案會定期更新。 若要將 UCX 安裝升級至最新版本:
確認已安裝UCX。
databricks labs installed Name Description Version ucx Unity Catalog Migration Toolkit (UCX) 0.20.0
執行升級:
databricks labs upgrade ucx
獲得幫助
如需UCX CLI的說明,請執行:
databricks labs ucx --help
如需特定 UCX 命令的說明,請執行:
databricks labs ucx <command> --help
若要針對問題進行疑難解答:
若要提出問題或功能要求,請提出 GitHub 問題。