使用液體集群為三角洲表
重要的
三角洲湖液體聚類可以在公共預覽磚運行時13.2及以上。
三角洲湖液體聚類表分區和替換ZORDER
為了簡化數據布局決策和優化查詢性能。液體聚類提供了靈活性重新定義集群鍵沒有重寫現有的數據,允許數據布局演變與分析需求。
磚支持提高並發三角洲表啟用了液體聚類。看到提高並發性在磚。
警告
磚13.2運行時,需要編寫或以上優化
δ表啟用了液體聚類。
液體聚類用於什麼?
磚建議液體聚類為所有新三角洲表。下麵是場景的例子從集群中受益:
表通常由高基數過濾列。
表數據分布的顯著傾斜。
表快速增長,需要維護和調優工作。
與並發寫需求表。
表的訪問模式隨時間變化的。
表,一個典型的分區鍵可以把表過多或過少的分區。
使液體聚類
你必須使三角洲湖液體聚類時,首先創建一個表。集群與分區或不兼容ZORDER
,需要磚的客戶管理表中數據的布局和優化操作。
使液體聚類,添加集群通過
短語表創建語句,在下麵的例子中:
——創建一個空表創建表table1 (col0 int, col1字符串)使用三角洲集群(col0);——使用cta語句創建外部表表集群(col0)位置的table_location SELECT *從表1;——使用一個像CREATE TABLE語句複製配置table3像表1;
警告
表創建啟用了液體聚集有大量的表特性使得在創建和使用δversion 7的作家和讀者版本3。表協議版本不能降級,和表啟用了集群不是由三角洲湖讀客戶不支持所有啟用三角洲讀者協議表功能。看到磚三角洲湖管理功能的兼容性如何?。
選擇集群鍵
磚建議選擇集群鍵基於常用查詢過濾器。集群鍵可以被定義在任何順序。如果兩列是相關的,你隻需要添加一個集群的關鍵。
如果你將一個現有表,可以考慮以下建議:
當前數據優化技術 |
建議為集群鍵 |
---|---|
Hive-style分區 |
使用分區列作為集群鍵。 |
z值的索引 |
使用 |
Hive-style分區和z順序 |
同時使用分區列和 |
生成的列來減少基數(例如,日期時間戳) |
使用原始的列作為一個集群鍵,不要創建一個生成的列。 |
提高並發性在磚
磚為集群提供增強型並發的表比其他三角洲表。除非有行級衝突,並發寫操作不衝突,包括優化
,插入
,合並
,更新
,刪除
操作。
為了減少行級衝突的可能性,您可以過濾並發查詢,如以下示例:
插入成table_name取代在哪裏column_name=“some_value”選擇*從staging_table;
寫數據到一個集群表
您必須使用一個作家客戶機支持所有δ寫協議表功能使用的液體聚類。在磚上,您必須使用磚運行時13.2及以上。
最不自動集群數據寫操作。操作集群編寫包括以下:
插入成
操作商品交易顧問基金
語句複製成
從拚花格式spark.write.format(“δ”).mode(“追加”)
請注意
集群上寫是一個盡力服務的應用程序。如果寫操作超過512 gb的數據,液體聚類不應用於寫作。因為並不是所有的操作應用液體聚類,磚建議經常運行優化
確保所有的數據都是有效地聚集。
如何觸發集群
引發聚類時,您必須使用磚運行時的13.2或以上。使用優化
命令你的桌子上,就像下麵的例子:
優化table_name;
液體聚類是增量,這意味著數據隻是重寫為必要適應數據需要集群。數據文件與集群鍵不匹配數據集群不重寫。
為獲得最佳性能,磚建議定期優化
集群的數據工作。表經曆許多更新或插入,磚建議安排一個優化
每一個或兩個小時的工作。因為液體聚類是增量,最多優化
工作群集表運行很快。
從集群表讀取數據
您可以使用任何集群表中讀取數據三角洲湖客戶機支持閱讀刪除向量。最佳查詢結果,包括集群鍵查詢過濾器,像下麵的例子:
選擇*從table_name在哪裏cluster_key_column_name=“some_value”;