1. 程式人生 > >1 Greenplum整體架構資訊

1 Greenplum整體架構資訊

1.1 架構圖示

 

在以上的架構中可以看出Greenplum主要是由Master和Segment組成的,Master承擔生成查詢計劃並派發彙總執行結果,Segment是執行查詢計劃及資料儲存管理。叢集可以直接載入外部的資料。

 

官網請檢視:https://greenplum.org/

Greenplum官方文件:https://gp-docs-cn.github.io/docs/common/gpdb-features.html

1.2 Master主機與Segment主機任務

Master主機負責

Segment主機負責

1. 建立與客戶端的會話連線和管理

1. 業務資料的儲存和存取

2.sql的解析並形成分散式的執行計劃

2.執行由master分發的sql語句

3.將生成好的執行計劃分
發到每個Segment上執行

3.對於master來說,每個
Segment都是對等的,負責對應資料的儲存和計算

4.收集Segment的執行結果

4.每一臺機器上可以配置
一到多個Segment

5.master不儲存業務資料,


只儲存資料字典

5.由於每個Segment都是對
等的,建議採用相同的機器配置

6.master主機可以一主一備,
分佈在兩臺機器上

6.Segment分primary 和mirror兩種,
一般交錯第存放在子節點上

7.為了提高效能,master最好
單獨佔用一臺機器

 

 

1.3 資料庫分佈鍵分佈資料策略

由於greenplum資料庫是個分散式資料庫,資料分佈在每一個segment節點上,其中資料的分佈策略有兩種分別是hash分佈於隨機分佈。

1.3.1 HASH策略

Hash分佈是利用Distributed by (filed1,filed2....) 做為資料分佈的條件,計算hash值,並通過hash值路由到制定的segment上,如果不指定分佈鍵,預設的是獲取第一個欄位作為分佈鍵。在欄位作為分佈鍵時,該欄位的值儘量是唯一的,這樣才能分佈的均勻,效率會更高,否則會降低資料庫的想能。

1.3.2 隨機分佈

隨機分佈也叫平均分佈。資料會隨機的落在每一個segment節點上,不管資料內容是什麼格式都會落到segment上,在SQL查詢資料,資料會重新分佈,效能會比較差,隨機分佈的用法為Distributed randomly;

1.4 master主節點獲取segment節點上的資料順序

Master在執行sql語句時由於資料切分放在每個segment上,master獲取結果的順序是segment提交的順序,segment提交到master的順序是隨機的,就會導致一樣的資料每次的查詢結果順序不一致,這也是與其他的資料不一樣的地方。