gp的分布、分区策略(概述)
對于大規(guī)模并行處理數(shù)據(jù)庫來說,一般由單master與多segment組成。
那么數(shù)據(jù)表的單行會(huì)被分配到一個(gè)或多個(gè)segment上,此時(shí)需要想一想分布策略
分布
在gp6中,共有三個(gè)策略:
哈希分布
隨機(jī)分布
復(fù)制分布
哈希分布
就是對分布鍵進(jìn)行hash,這樣相同值的key始終散列到同一個(gè)segment上。如果選擇唯一的分布鍵,將確保較均勻的數(shù)據(jù)分布。
要使用這一策略,需要在創(chuàng)建表使用 “DISTRIBUTED BY(column,[…])” 子句。
隨機(jī)分布
將數(shù)據(jù)行按順序依次發(fā)送到各個(gè)segment,此時(shí)具有相同值的數(shù)據(jù)行不一定位于同一個(gè)segment上。隨機(jī)分布保證了數(shù)據(jù)的平均分布,但是性能顯然不如hash
復(fù)制分布
gp會(huì)將每行數(shù)據(jù)分配到每個(gè)segment上,此策略下,表數(shù)據(jù)將均勻分布,每個(gè)segment存儲(chǔ)同樣的數(shù)據(jù)行。
當(dāng)在segment上執(zhí)行用戶自定義函數(shù)且需要訪問表中所有行時(shí),此時(shí)需要用到此策略。
接下講解分區(qū)概念
分布時(shí)對存儲(chǔ)的數(shù)據(jù)進(jìn)行物理劃分,分區(qū)是邏輯劃分。
分區(qū)將大表從邏輯上劃分為多個(gè)子表,分區(qū)不會(huì)更改表數(shù)據(jù)在segment之間的物理分布。
分區(qū)
gp支持以下分區(qū)類型:
1、范圍分區(qū):根據(jù)數(shù)字范圍,如日期或價(jià)格
2、列表分區(qū):基于值列表的數(shù)據(jù)劃分,如銷售地區(qū)或者產(chǎn)品線
3、兩種類型的組合
對大表分區(qū)可以簡化數(shù)據(jù)庫維護(hù)以及提高查詢性能,例如通過對時(shí)間分區(qū),可以將舊數(shù)據(jù)滾動(dòng)移除出數(shù)據(jù)庫。
但是創(chuàng)建過多的分區(qū)可能會(huì)拖慢管理和維護(hù)的速度,如清理,恢復(fù)segment,擴(kuò)展集群等情況。
除非優(yōu)化器可以通過查詢謂詞修剪分區(qū),否則分區(qū)將不會(huì)提高查詢性能。
依次掃描各個(gè)分區(qū)表的查詢會(huì)比只需掃描無分區(qū)的根表要慢。所以當(dāng)查詢中很少使用分區(qū)裁剪的話,盡量避免對表分區(qū)。
參考
Greenplum數(shù)據(jù)分布和分區(qū)策略
總結(jié)
以上是生活随笔為你收集整理的gp的分布、分区策略(概述)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颐和园没有身份证可以买票吗
- 下一篇: 重构——解决过长参数列表(long pa