盤點(diǎn) Greenplum 數(shù)據(jù)庫(kù)的十大特點(diǎn)
導(dǎo)讀:本文簡(jiǎn)單介紹Greenplum具備的特性。

01 開放源代碼
Greenplum數(shù)據(jù)庫(kù)于2015年由Pivotal公司開源,遵循Apache Licence 2.0協(xié)議,官方網(wǎng)站為:
http://greenplum.org
代碼托管在GitHub上,鏈接為:
https://github.com/greenplum-db/gpdb
開放源碼一方面可以為數(shù)據(jù)庫(kù)用戶和開發(fā)人員提供Greenplum數(shù)據(jù)庫(kù)源碼級(jí)的實(shí)現(xiàn)參考,另一方面可以吸引更多的數(shù)據(jù)庫(kù)開發(fā)者參與到Greenplum社區(qū)維護(hù)中。
02 高擴(kuò)展性
Greenplum數(shù)據(jù)庫(kù)采用大規(guī)模無共享架構(gòu),將多臺(tái)服務(wù)器組裝成強(qiáng)大的計(jì)算平臺(tái),實(shí)現(xiàn)高效的海量并行運(yùn)算。Greenplum數(shù)據(jù)庫(kù)可以支持1000個(gè)以上的集群,管理的數(shù)據(jù)規(guī)模從TB級(jí)到PB級(jí),可以滿足多數(shù)企業(yè)的數(shù)據(jù)處理需求。
03 高查詢性能
Greenplum的高性能不僅來自高效的并行處理框架,還有查詢引擎的優(yōu)化。Greenplum數(shù)據(jù)庫(kù)除了支持基于PostgreSQL的查詢優(yōu)化之外,還專門開發(fā)了一個(gè)新的查詢優(yōu)化器ORCA。
ORCA是一款自頂向下的基于Cascades框架的查詢優(yōu)化器,目前已經(jīng)成為企業(yè)版Greenplum數(shù)據(jù)庫(kù)的默認(rèn)優(yōu)化器。相比基于PostgreSQL的查詢優(yōu)化器,ORCA查詢優(yōu)化器能使部分查詢的性能提升10~1000倍。
04 高可用
Greenplum提供多級(jí)容錯(cuò)機(jī)制,確保整個(gè)系統(tǒng)的高可用性。Master節(jié)點(diǎn)通過Standby Master節(jié)點(diǎn)進(jìn)行備份,每個(gè)數(shù)據(jù)節(jié)點(diǎn)的Primary Segment實(shí)例分別配置一個(gè)Mirror Segment實(shí)例作為備份,同時(shí)確保同一組Primary Segment實(shí)例和Mirror Segment實(shí)例不在同一物理機(jī)上,從而降低因?yàn)殄礄C(jī)而導(dǎo)致數(shù)據(jù)丟失的風(fēng)險(xiǎn)。
05 高效資源管理
Greenplum提供了高效的資源管理機(jī)制,根據(jù)用戶的業(yè)務(wù)邏輯將資源合理地分配給查詢?nèi)蝿?wù),避免查詢?nèi)蝿?wù)因查詢資源不足而得不到響應(yīng)。
Greenplum資源管理主要包括對(duì)并發(fā)查詢數(shù)量的限制,查詢執(zhí)行時(shí)內(nèi)存、CPU資源使用的限制等。Greenplum數(shù)據(jù)庫(kù)提供了資源隊(duì)列(Resource Queue)和資源組(Resource Group)兩種資源管理方式,一般使用場(chǎng)景下采用默認(rèn)配置即可。

06 多態(tài)存儲(chǔ)
用戶可以根據(jù)數(shù)據(jù)熱度或者訪問模式的不同使用不同的存儲(chǔ)方式,以獲得更好的查詢性能。用戶可以為一張表按照一定的規(guī)則(比如日期、月份)創(chuàng)建分區(qū)表,一張表的各個(gè)子分區(qū)表可以使用不同的物理存儲(chǔ)方式。
支持的存儲(chǔ)方式包括:
行存儲(chǔ),數(shù)據(jù)以行的形式存儲(chǔ)在數(shù)據(jù)頁里,適合頻繁更新的查詢;
列存儲(chǔ),數(shù)據(jù)以列的形式存儲(chǔ)在數(shù)據(jù)頁里,適合OLAP分析型查詢;
外部表,數(shù)據(jù)保存在其他文件系中,如HDFS、S3,數(shù)據(jù)庫(kù)只保留元數(shù)據(jù)信息。
07 生態(tài)完整
Greenplum數(shù)據(jù)庫(kù)擁有完善的SQL標(biāo)準(zhǔn)支持,包括SQL92、SQL99、SQL2003以及OLAP擴(kuò)展,是對(duì)SQL標(biāo)準(zhǔn)支持最好的開源商用數(shù)據(jù)庫(kù)系統(tǒng)之一。同時(shí),由于Greenplum數(shù)據(jù)庫(kù)基于PostgreSQL,因此也繼承了PostgreSQL對(duì)于JDBC、ODBC、C、Python API等接口的支持。
08 高效數(shù)據(jù)加載
Greenplum還有一個(gè)非常神奇的功能——GPload并行加載數(shù)據(jù),即允許數(shù)據(jù)從多個(gè)文件系統(tǒng)通過多個(gè)主機(jī)上的多個(gè)網(wǎng)卡加載數(shù)據(jù),從而達(dá)到非常高的數(shù)據(jù)傳輸率。筆者曾經(jīng)在3個(gè)節(jié)點(diǎn)的集群上并行加載50GB、2億行記錄的數(shù)據(jù),僅用時(shí)90s。
此外,Greenplum數(shù)據(jù)庫(kù)可以讀取和寫入多種類型的外部數(shù)據(jù)源,包括文本文件、XML文件、S3平臺(tái)文件、Gemfire、Web服務(wù)器以及Hadoop生態(tài)系統(tǒng)中的HDFS、Hive、HBase、Kafka、Spark等,同時(shí)支持?jǐn)?shù)據(jù)壓縮以及字符集間的自動(dòng)轉(zhuǎn)換。
09 高級(jí)數(shù)據(jù)分析功能
Greenplum數(shù)據(jù)庫(kù)支持各種過程化編程語言,包括PL/PostgreSQL、PL/R、PL/Python、PL/Java、PL/Perl等語言擴(kuò)展。在高級(jí)數(shù)據(jù)分析方面,通過Greenplum數(shù)據(jù)庫(kù)的MADlib擴(kuò)展模塊,用戶可以很方便地利用MPP架構(gòu)完成大規(guī)模并行分析。
10 良好的監(jiān)控管理和運(yùn)維體驗(yàn)
Greenplum數(shù)據(jù)庫(kù)提供基于Web的可視化工具—Greenplum Command Center(簡(jiǎn)稱GPCC)。GPCC可以監(jiān)控Greenplum數(shù)據(jù)庫(kù)系統(tǒng)的性能、集群健康狀態(tài)、查詢執(zhí)行及系統(tǒng)資源使用情況,如圖2-4所示。

▲圖2-4 Greenplum數(shù)據(jù)庫(kù)資源監(jiān)控中心界面
刷刷視頻??
干貨直達(dá)??
