Greenplum快速瞭解筆記

語言: CN / TW / HK

1.greenplum是一款基於postgreSQL的PB級開源分散式MPP資料庫。
目前的OLAP資料庫中,Teradata和greenplum是佔有率較高的兩款,Teradata是商業的,而greenplum是開源的。
2.基本架構
1)架構
master節點儲存元資料資訊,負責協調,資料儲存在各segment節點上。
2)GP支援多模儲存/多型儲存
行儲存:適合OLTP業務,適合頻繁更新或者訪問大部分欄位的場景。
列儲存:查詢列子集時速度快;適合壓縮,不同的列可以使用不同的壓縮方式:gzip、quickly、delta、RLE、zstd等。
外部表:歷史資料和不常訪問的資料儲存在HDFS或者其他外部系統中;包括CSV、Txt、binary、orc等。
3)查詢計劃
GP使用Apache ORCA進行查詢優化。
4)GPKafka Connector 可以不經過主節點,直接將資料傳輸到segment節點上,效率更高。可以支援某證券專案
(18節點)每秒300w資料的輸入.
某執行商案例,單表最大1000億資料,日均5億資料。
segment節點可以橫向擴充套件,理論節點可以達到千臺,目前一般在200個節點左右。
每個rack(16節點),每小時可以載入16TB的資料。
開源視覺化工具superset、redash、達芬奇。
開源ETL工具-kettle。
資料庫測試工具-HammerDB 應用測試工具-jmeter
3.GP的高可用性
1)管理節點HA
GP部署2臺管理節點,為1主1備(standby)方式;主節點和standby節點自動同步資料;主管理節點失敗時
切換到Standby管理節點。
2)資料節點HA
採用映象技術,將資料節點的primary例項的資料自動映象到其他資料節點的mirror例項中。
primary例項故障時,自動偵測並啟用映象例項。
3)網路HA
系統一般部署兩臺網路交換機;正常情況下,2臺交換機同時工作,負載均衡;如果1臺發生故障,另外一臺
將提供冗餘保護。
4)伺服器
硬體元件冗餘保護、磁碟raid5保護及data自動重建。
5)系統表gp_segment_configuration記錄所有節點的相關資訊,提供HA資訊支援。
系統檢視gp_stat_replication包含walsender程序的複製狀態統計資訊。
4.影響效能的因素
1)節點的木桶效應
某一臺伺服器配置較差,或資料傾斜,將拖慢整個叢集的速度。
2)映象分佈策略
GROUP SPREAD
3)CPU開啟超執行緒、提高磁碟IO效能、使用萬兆網路。
4)資料膨脹
GP使用的是多版本併發控制MVCC的儲存機制,刪除和更新的行僅僅是邏輯刪除,其實際資料仍然儲存在
表中,只是不可見。
回收膨脹的空間
5)處理資料傾斜
6)避免鎖阻塞
檢視pg_stat_activity和pg_locks表,查詢歷史作業中存在鎖的作業,進行優化。
7)SQL優化-避免重分佈、如union、排序等。
5.增加segment節點
擴容前應先做一次全面檢查,對嚴重傾斜的表進行糾正,擴容後,對錶進行重分佈。