如何無縫升級你的蜂巢Metastore對象統一目錄Metastore使用同步
2022年11月3日 在Beplay体育安卓版本平台的博客
在這個博客中,我們探索如何無縫升級你的蜂巢metastore *模式和外部表統一目錄metastore使用新的同步命令。同步命令也可以用來推動更新從源模式和外部表在蜂巢metastore統一目錄metastore模式和表,以前一直在升級。同步命令目前在AWS公共預覽和Azure。
*注:蜂巢metastore可能是你違約或外部metastore甚至AWS膠水metastore。為簡單起見,我們使用術語“蜂群metastore”在整個文檔
常見用例進行升級和同步你的蜂巢Metastore統一目錄
統一目錄,現在一般用於AWS和Azure,提供了眾多的即用集中式控製特性,比如統一訪問控製和審計數據Lakehouse數據資產,自動數據血統對於所有工作負載,內置的數據搜索和發現,特權的繼承為簡化訪問管理,開放的跨平台數據共享Beplay体育安卓版本和許多更多。
想到的一個常見的問題是如何輕鬆地升級或遷移現有的注冊表和模式蜂巢metastore統一目錄metastore並保持統一目錄與蜂巢metastore同步。當你想要利用所有豐富的功能統一目錄,可以有各種場景需要蜂巢metastore對象共存即使對象遷移到統一目錄metastore。例如,您可能有一個ETL管道寫入數據表存儲在蜂巢metastore之前,您需要執行一個詳細的影響分析統一目錄metastore逐步遷移表。之前,你需要保持你的蜂巢metastore和統一編目metastore同步。
以下是我們收到客戶的常見問題:beplay体育app下载地址
- 如何我們的數據遷移工作負載從二級名稱空間(模式和表/視圖)聯合目錄的三級名稱空間(目錄、模式、表/視圖)?
- 你需要數據從現有位置複製到一個新位置的表統一編目metastore或隻需要創建一個新的模式和表統一目錄metastore和指向現有的位置?
- 我們怎樣才能保持進入蜂巢metastore表而開始利用統一目錄,並保持更改模式同步?
- 我們可以有一個評估需要哪些步驟HMS對象移動到統一目錄metastore嗎?
引入同步命令統一目錄
方便的無縫遷移模式和外部表從你現有的蜂巢metastore metastore統一目錄,我們引入了一個實用程序稱為同步。同步命令幫助您遷移現有蜂巢metastore統一目錄metastore也有助於保持你的metastores同步在一個正在進行的基礎上,直到你完全依賴應用程序遷移所有從蜂巢metastore metastore統一目錄。而不是分配資源構建一個定製的解決方案,同步為您提供了一個簡單的開箱即用的解決方案保持你現有的蜂巢metastore和統一目錄metastore同步。
同步的主要特性
- 升級的能力從蜂巢metastore外部表統一目錄metastore和保持兩個表的元數據同步。
- 能力升級所有符合條件的表在蜂巢metastore模式統一目錄metastore並保持元數據同步。它使用多線程並行而升級幾個表
- 幹燥的運行模式顯示同步命令的結果而不創建或更新目標表。
- 能力相同的模式或表上運行多次同步源和目標metastore保持同步。
它是如何工作的
同步命令提取所有遷移模式和外部表的複雜性從蜂巢metastore統一目錄metastore和保持同步。一旦執行,它分析了源和目標表或模式和執行以下操作:
- 如果目標表不存在,同步操作使用相同的名稱創建一個目標表的源表所提供的目標模式。目標表的所有者將默認運行同步的用戶命令
- 如果目標表存在,如果表確定是由前一個同步命令或通過Web界麵,升級操作將同步更新表,這樣的模式匹配的源表。
命令輸出一行每桌升級,包括status_code和描述列。status_code列顯示升級的狀態表,每個表的描述提供了一個描述性的消息。
開始使用同步命令
先決條件
用戶運行同步命令:
- 源表的所有者的情況下使用“同步表”
- 的主人源模式的使用“同步模式”
注意:當前版本隻支持同步升級的外部表。請參考文檔升級你的蜂巢metastore管理表統一目錄metastore和視圖。您還可以使用表克隆命令創建一份現有的蜂巢metastore管理表統一目錄metastore在一個特定的版本。讀到這博客進一步了解表克隆磚。
使用
使用同步升級有兩個選項:
- 同步表:它從蜂巢metastore升級表統一目錄metastore
- 同步模式:它在模式升級所有符合條件的表從蜂巢metastore metastore統一目錄
同步命令升級表或模式從蜂巢metastore metastore統一目錄。它可以用來統一目錄中創建新的表metastore蜂巢metastore從現有表中。它可以用來推動更新源表的蜂巢metastore統一目錄metastore表,以前一直使用命令或通過WebUI同步升級。
一個可選的排練條款可以用來評估表的可升級性統一目錄。在幹燥的運行模式,命令檢查給定的源表可以升級到統一目錄metastore並提供status_code如果不能升級和描述性的錯誤消息。如果表可以從蜂巢metastore升級到統一編目metastore那麼狀態代碼將顯示“DRY_RUN_SUCCESS”表時幹燥的運行模式和成功成功同步。
語法
{同步模式target_schema|表target_tbl}從{source_schema|source_table}(演習)
請訪問我們的文檔來查找細節同步命令的參數。
注意:運行同步命令的用戶將新創建的表的所有者
同步的例子
注意:我們使用示例數據對於這個示例。磚還提供了各種各樣的數據集,已經安裝在你的磚DBFS工作區。你可以找到更多的細節在這裏。
外部表升級到統一目錄
創建蜂巢metastore模式
使用目錄hive_metastore;下降如果數據庫存在hmsdb_sync級聯;創建數據庫hmsdb_sync;
創建一個統一的目錄模式
使用目錄主要;下降如果數據庫存在主要。ucdb_sync級聯;創建數據庫main.ucdb_sync;
在蜂巢metastore創建外部表
——創建一個外部表在蜂巢metastore三角洲下降表如果存在hive_metastore.hmsdb_sync.people_delta;創建表hive_metastore.hmsdb_sync.people_delta位置“< <對象存儲位置> >”作為選擇*從delta. dbfs:/磚- - - - - -數據集/學習- - - - - -火花- - - - - -v2/人/人-10年m.delta的限製100000年;
選擇表來驗證
選擇*從hive_metastore.hmsdb_sync.people_delta;
執行排練
同步表main.ucdb_sync.people_delta從hive_metastore.hmsdb_sync.people_deltaDRY RUN;
觀察演習的結果
升級表,觀察結果
同步表main.ucdb_sync.people_delta從hive_metastore.hmsdb_sync.people_delta;
描述和比較源和目標表
描述擴展hive_metastore.hmsdb_sync.people_delta;desc擴展main.ucdb_sync.people_delta;
描述了蜂巢Metastore表和加州大學表
選擇目標表來驗證數據
選擇*從main.ucdb_sync.people_delta;
升級模式,所有符合條件的表
同步模式main.ucdb_schema_sync從hive_metastore。hmsdb_schema_sync排練;
同步模式main.ucdb_schema_sync從hive_metastore.hmsdb_schema_sync;
結論
在這個博客中,我們展示了如何使用同步命令抽象複雜的升級你的蜂巢統一目錄metastore metastore對象。想要了解更多關於同步命令以及如何開始,請訪問指南(AWS,Azure)。請參考筆記本嚐試不同的選項和同步保持蜂巢metastore模式和外部表和你統一目錄metastore同步。
同步可以多次運行,確保蜂巢metastore對象和統一編目metastore對象同步。同步使它無縫和方便客戶采取統一目錄和受益於統一的治理功能。beplay体育app下载地址如果你不再需要蜂巢metastore模式和表,您可以將它們。減少外部表不修改雲租戶的數據文件。