Greenplum數據庫的分佈鍵

Greenplum是分佈式系統,創建表時需要指定分佈鍵(創建表需要CREATEDBA權限),目的在於將數據平均分佈到各個segment。選擇分佈鍵非常重要,選擇錯了會導致數據不唯一,更嚴重的是會造成SQL性能急劇下降。

Greenplum有兩種分佈策略:
1、hash分佈。
Greenplum默認使用hash分佈策略。該策略可選一個或者多個列作爲分佈鍵(distribution key,簡稱DK)。分佈鍵做hash算法來確認數據存放到對應的segment上。相同分佈鍵值會hash到相同的segment上。表上最好有唯一鍵或者主鍵,這樣能保證數據均衡分不到各個segment上。語法,distributed by。
如果沒有主鍵或者唯一鍵,默認選擇第一列作爲分佈鍵。增加主鍵

2、隨機(randomly)分佈。
數據會被隨機分不到segment上,相同記錄可能會存放在不同的segment上。隨機分佈可以保證數據平均,但是Greenplum沒有跨節點的唯一鍵約束數據,所以無法保證數據唯一。基於唯一性和性能考慮,推薦使用hash分佈,性能部分會另開一篇文檔詳細介紹。語法,distributed randomly。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章