開源大數據引擎 - Greenplum
Who am i ?
Alex Chen
• 開源軟件愛好使⽤用者

• ⼗十多年年程式開發、DBA及系統管理理經驗

• 在歐立威科技從事開源軟件企業版本銷
售、技術⽀支持服務 (PostgreSQL、
Greenplum、MongoDB、Redis、
Elasticsearch、Hadoop、Pentaho、
Docker…等)

Contacts: alexc168@gmail.com

alex.chen@omniwaresoft.com.tw
SQL v.s. NoSQL v.s. Hadoop
• ⼤大數據 = Hadoop
⼤大多情況下, GPDB 更更適合⼤大數據存儲、計算、分析和挖掘的引擎
X
Greenplum
最先進的開源分布式資料庫
• 2013/04 Pivotal 在美國成立 (EMC、VMware、GE) 

• 2015/03 宣布開源計劃,2015/10/27 正式開源

• Apache License

• http://greeplum.org
為⼤大數據存儲、計算、挖掘⽽而設計
• 標準 SQL 資料庫:ANSI SQL 2008 標準、OLAP、JDBC/
ODBC

• ⽀支持ACID、分佈式事務

• 分佈式資料庫(MPP):線性擴展,⽀支持上百節點

• 企業級資料庫:全球⼤大客⼾戶超過 1000+ 安裝集群

• 百萬⾏行行開源程式碼,超過10年年的全球研發投入

• 開源資料庫(greenplum.org),良性⽣生態系統
Greenplum 架構
• 主節點和從主節點,主節點負
責協調整個集群

• ⼀一個資料節點可以配置多個節
點實例例(Segment Instances)節
點實例例並⾏行行處理理查詢(SQL)

• 資料節點有⾃自⼰己的CPU、磁盤
和內存(Share nothing)

• ⾼高速Interconnect處理理持續資料
流(Pipelining)
…
SQL
Interconnect
Segment Host
Segment Instance
Segment Instance
Segment Instance
Segment Instance
Segment Host
Segment Instance
Segment Instance
Segment Instance
Segment Instance
Segment Host
Segment Instance
Segment Instance
Segment Instance
Segment Instance
Segment Host
Segment Instance
Segment Instance
Segment Instance
Segment Instance
Segment Host
Segment Instance
Segment Instance
Segment Instance
Segment Instance
N
MPP 無共享架構
Share Disk
eg
Oracle RAC
DB
SAN
Share disk
DB DBDB
Intranet
SAN/FC
Share
everything
eg
Unix server
DB
Disk
Share nothing
eg
Greenplum
DBDB DBDB
Disk Disk Disk Disk
Master
Intranet
MPP
資料分布為並⾏行行化的基礎
43 Oct 20 2005 12
64 Oct 20 2005 111
45 Oct 20 2005 42
46 Oct 20 2005 64
77 Oct 20 2005 32
48 Oct 20 2005 12
Order
Order#
Order
Date
Customer
ID
50 Oct 20 2005 34
56 Oct 20 2005 213
63 Oct 20 2005 15
44 Oct 20 2005 102
53 Oct 20 2005 82
55 Oct 20 2005 55
最重要的策略略和⽬目標是均勻分布資料到各個資料節點
資料節點並⾏行行資料訪問和處理理
Master
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
SELECT COUNT(*)
FROM orders
WHERE order_date >= ‘Oct 20 2007’
AND order_date < ‘Oct 27 2007’
Develop Query PlanSend Plan to SegmentsReturn ResultsSegments Return Results
4,423,323
Each Segment Scans Data Simultaneously in Parallel
分布和分區
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
SELECT COUNT(*)
FROM orders
WHERE order_date >= ‘Oct 20 2007’
AND order_date < ‘Oct 27 2007’
&
Segment 1A Segment 1B Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
orders 表資料均勻分布於各個節點 僅僅掃描 orders 表相關的分區
分級分區
• , ,
• ,
D
H
Segment 1A Segment 1C Segment 1D
Segment 2A Segment 2B Segment 2C Segment 2D
Segment 3A Segment 3B Segment 3C Segment 3D
Jan 2007
Feb 2007
Mar 2007
Apr 2007
May 2007
Jun 2007
Jul 2007
Aug 2007
Sep 2007
Oct 2007
Nov 2007
Dec 2007
Segment 1B
Node 1
Node 2
Node 3
多型態存儲
Ÿ Tb q
Ÿ Ta p d
Ÿ T Ow oe
9 : AD: C -
Ÿ p d
Ÿ ki lqn
Ÿ H L u R PV
‘SALES’
Jun
( D B: CF B: C
Oct Year -
1
Year -
2
C B
Ÿ m c x
mb ,) 1 gS
yz
Ÿ v r m
Ÿ C (1 : BH
EB BAD C te
Nov DecJul Aug Sep
⽤用⼾戶⾃自定義資料儲存格式
⼤大規模並⾏行行資料加載
•⾼高速資料導入和導出

• 主節點不是瓶頸

• 10+ TB/⼩小時/Rack

• 線性擴展

•低延遲

• 加載後立刻可⽤用

• 不需要中間存儲

• 不需要額外資料處理理

•導入/導出:

• ⽂文件系統

• 任意 ETL 產品

• Hadoop 發⾏行行版
External
Sources
Loading, streaming, etc.
Interconnect
... ...
......
Master
Servers
Query planning & dispatch
Segment
Servers
Query processing & data
storage
SQL
ETL
File
Systems
⾼高性能⾃自並⾏行行查詢優化器
• 基於代價的優化器尋找最⾼高效的查詢執⾏行行計劃

• 查詢計劃包括 scans, joins, sorts, aggregations 等多個切片

• 每個切片在各個Segment節點上並⾏行行執⾏行行

• Segment間通訊由Motion操作處理理
Motion ( 3)
Motion ( 1)
Motion ( 2)
多級冗餘
Client
Redundant
Interconnect
Redundant
Segment
Servers
Primary
Master
Sync &
Failover
Processes
Standby
Master
Primary
A1
B1
C1
A2
B2
C2
A1
B1
C1
A2
B2C2
Mirror
Data SegmentMirroring
1
RAID 5
Protection5
432
動態線上擴展
• 資料將依據系統管理理⼈人員所
排定時間,⾃自動在所有節點
上重新分佈
• 容量量和性能在擴展後線性增
長
Step1 : 新節點初始化加入 MPP
集群
Step2 : 資料在所有節點上重新
分佈
seg1 seg2 seg3
interconnect
Master
seg5 seg6seg4 seg5 seg6seg4seg1 seg2 seg3
interconnect
Scalable,	In-Database	
Machine	Learning
• Open	source	 https://github.com/apache/incubator-madlib
• Downloads	and	docs	 http://madlib.incubator.apache.org/
• Wiki https://cwiki.apache.org/confluence/display/MADLIB/
Functions
Data Types and Transformations
Array and Matrix Operations
Matrix Factorization
• Low Rank
• Singular Value Decomposition (SVD)
Norms and Distance Functions
Sparse Vectors
Principal Component Analysis (PCA)
CategoricalVariables
g
Graph
All Pairs Shortest Path (APSP)
Breadth-FirstSearch
Hyperlink-Induced Topic Search (HITS)
Average Path Length
Closeness Centrality
Graph Diameter
In-Out Degree
Model Selection
Cross Validation
Prediction Metrics
Train-Test Split
s
ve Statistics
inality Estimators
lation and Covariance
ary
l Statistics
• Hypothesis Tests
Probability Functions
Supervised Learning
NeuralNetworks
Support Vector Machines (SVM)
Regression Models
• Clustered Variance
• Cox-ProportionalHazardsRegression
• Elastic Net Regularization
• Generalized Linear Models
• Linear Regression
• Logistic Regression
• Marginal Effects
• Multinomial Regression
• Naïve Bayes
• OrdinalRegression
• Robust Variance
Tree Methods
• Decision Tree
• Random Forest
Conditional Random Field (CRF)
Time Series Analysis
• ARIMA
Unsupervised Learning
Association Rules (Apriori)
Clustering (k-Means)
Topic Modelling (Latent Dirichlet Allocation)
PageRank and Personalized PageRank Encoding
Single Source Shortest Path (SSSP) Pivot
Weakly Connected Components Stemmin
Utility Functions Statistic
Conjugate Gradient Descripti
Linear Solvers • Card
• DenseLinear Systems • Corre
• SparseLinear Systems • Summ
Path Inferentia
PMML Export
Sampling
•Balanced
•Random
•Stratified
Sessionize
Term Frequency for Text Analysis
Nearest Neighbors
• k-Nearest Neighbors
中⽂文社區
• 歡迎⼤大學、研究機構、公司和客⼾戶參參與到社區中,共同體
驗世界⼀一流的⼤大數據資料庫!

• 歡迎和Pivotal中國研發中⼼心合作

• 微信公眾號:即將上線敬請關注

• 微信群:
相關鏈結
• 主站點:http://greenplum.org/

• 源代碼:https://github.com/greenplum-db/gpdb

• 郵件列列表:http://greenplum.org/#mailing-lists

• 如何貢獻:http://greenplum.org/#contribute

COSCUP 2019 - 開源大數據引擎 Greenplum

  • 1.
  • 2.
    Who am i? Alex Chen • 開源軟件愛好使⽤用者 • ⼗十多年年程式開發、DBA及系統管理理經驗 • 在歐立威科技從事開源軟件企業版本銷 售、技術⽀支持服務 (PostgreSQL、 Greenplum、MongoDB、Redis、 Elasticsearch、Hadoop、Pentaho、 Docker…等) Contacts: alexc168@gmail.com alex.chen@omniwaresoft.com.tw
  • 3.
    SQL v.s. NoSQLv.s. Hadoop • ⼤大數據 = Hadoop ⼤大多情況下, GPDB 更更適合⼤大數據存儲、計算、分析和挖掘的引擎 X
  • 4.
    Greenplum 最先進的開源分布式資料庫 • 2013/04 Pivotal在美國成立 (EMC、VMware、GE) • 2015/03 宣布開源計劃,2015/10/27 正式開源 • Apache License • http://greeplum.org
  • 5.
    為⼤大數據存儲、計算、挖掘⽽而設計 • 標準 SQL資料庫:ANSI SQL 2008 標準、OLAP、JDBC/ ODBC • ⽀支持ACID、分佈式事務 • 分佈式資料庫(MPP):線性擴展,⽀支持上百節點 • 企業級資料庫:全球⼤大客⼾戶超過 1000+ 安裝集群 • 百萬⾏行行開源程式碼,超過10年年的全球研發投入 • 開源資料庫(greenplum.org),良性⽣生態系統
  • 6.
    Greenplum 架構 • 主節點和從主節點,主節點負 責協調整個集群 •⼀一個資料節點可以配置多個節 點實例例(Segment Instances)節 點實例例並⾏行行處理理查詢(SQL) • 資料節點有⾃自⼰己的CPU、磁盤 和內存(Share nothing) • ⾼高速Interconnect處理理持續資料 流(Pipelining) … SQL Interconnect Segment Host Segment Instance Segment Instance Segment Instance Segment Instance Segment Host Segment Instance Segment Instance Segment Instance Segment Instance Segment Host Segment Instance Segment Instance Segment Instance Segment Instance Segment Host Segment Instance Segment Instance Segment Instance Segment Instance Segment Host Segment Instance Segment Instance Segment Instance Segment Instance N
  • 7.
    MPP 無共享架構 Share Disk eg OracleRAC DB SAN Share disk DB DBDB Intranet SAN/FC Share everything eg Unix server DB Disk Share nothing eg Greenplum DBDB DBDB Disk Disk Disk Disk Master Intranet MPP
  • 8.
    資料分布為並⾏行行化的基礎 43 Oct 202005 12 64 Oct 20 2005 111 45 Oct 20 2005 42 46 Oct 20 2005 64 77 Oct 20 2005 32 48 Oct 20 2005 12 Order Order# Order Date Customer ID 50 Oct 20 2005 34 56 Oct 20 2005 213 63 Oct 20 2005 15 44 Oct 20 2005 102 53 Oct 20 2005 82 55 Oct 20 2005 55 最重要的策略略和⽬目標是均勻分布資料到各個資料節點
  • 9.
    資料節點並⾏行行資料訪問和處理理 Master Segment 1A Segment1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D Segment 1A Segment 1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D SELECT COUNT(*) FROM orders WHERE order_date >= ‘Oct 20 2007’ AND order_date < ‘Oct 27 2007’ Develop Query PlanSend Plan to SegmentsReturn ResultsSegments Return Results 4,423,323 Each Segment Scans Data Simultaneously in Parallel
  • 10.
    分布和分區 Segment 1A Segment1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D Segment 1A Segment 1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D Segment 1A Segment 1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D SELECT COUNT(*) FROM orders WHERE order_date >= ‘Oct 20 2007’ AND order_date < ‘Oct 27 2007’ & Segment 1A Segment 1B Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D orders 表資料均勻分布於各個節點 僅僅掃描 orders 表相關的分區
  • 11.
    分級分區 • , , •, D H Segment 1A Segment 1C Segment 1D Segment 2A Segment 2B Segment 2C Segment 2D Segment 3A Segment 3B Segment 3C Segment 3D Jan 2007 Feb 2007 Mar 2007 Apr 2007 May 2007 Jun 2007 Jul 2007 Aug 2007 Sep 2007 Oct 2007 Nov 2007 Dec 2007 Segment 1B Node 1 Node 2 Node 3
  • 12.
    多型態存儲 Ÿ Tb q ŸTa p d Ÿ T Ow oe 9 : AD: C - Ÿ p d Ÿ ki lqn Ÿ H L u R PV ‘SALES’ Jun ( D B: CF B: C Oct Year - 1 Year - 2 C B Ÿ m c x mb ,) 1 gS yz Ÿ v r m Ÿ C (1 : BH EB BAD C te Nov DecJul Aug Sep ⽤用⼾戶⾃自定義資料儲存格式
  • 13.
    ⼤大規模並⾏行行資料加載 •⾼高速資料導入和導出 • 主節點不是瓶頸 • 10+TB/⼩小時/Rack • 線性擴展 •低延遲 • 加載後立刻可⽤用 • 不需要中間存儲 • 不需要額外資料處理理 •導入/導出: • ⽂文件系統 • 任意 ETL 產品 • Hadoop 發⾏行行版 External Sources Loading, streaming, etc. Interconnect ... ... ...... Master Servers Query planning & dispatch Segment Servers Query processing & data storage SQL ETL File Systems
  • 14.
    ⾼高性能⾃自並⾏行行查詢優化器 • 基於代價的優化器尋找最⾼高效的查詢執⾏行行計劃 • 查詢計劃包括scans, joins, sorts, aggregations 等多個切片 • 每個切片在各個Segment節點上並⾏行行執⾏行行 • Segment間通訊由Motion操作處理理 Motion ( 3) Motion ( 1) Motion ( 2)
  • 15.
  • 16.
    動態線上擴展 • 資料將依據系統管理理⼈人員所 排定時間,⾃自動在所有節點 上重新分佈 • 容量量和性能在擴展後線性增 長 Step1: 新節點初始化加入 MPP 集群 Step2 : 資料在所有節點上重新 分佈 seg1 seg2 seg3 interconnect Master seg5 seg6seg4 seg5 seg6seg4seg1 seg2 seg3 interconnect
  • 17.
    Scalable, In-Database Machine Learning • Open source https://github.com/apache/incubator-madlib •Downloads and docs http://madlib.incubator.apache.org/ • Wiki https://cwiki.apache.org/confluence/display/MADLIB/
  • 18.
    Functions Data Types andTransformations Array and Matrix Operations Matrix Factorization • Low Rank • Singular Value Decomposition (SVD) Norms and Distance Functions Sparse Vectors Principal Component Analysis (PCA) CategoricalVariables g Graph All Pairs Shortest Path (APSP) Breadth-FirstSearch Hyperlink-Induced Topic Search (HITS) Average Path Length Closeness Centrality Graph Diameter In-Out Degree Model Selection Cross Validation Prediction Metrics Train-Test Split s ve Statistics inality Estimators lation and Covariance ary l Statistics • Hypothesis Tests Probability Functions Supervised Learning NeuralNetworks Support Vector Machines (SVM) Regression Models • Clustered Variance • Cox-ProportionalHazardsRegression • Elastic Net Regularization • Generalized Linear Models • Linear Regression • Logistic Regression • Marginal Effects • Multinomial Regression • Naïve Bayes • OrdinalRegression • Robust Variance Tree Methods • Decision Tree • Random Forest Conditional Random Field (CRF) Time Series Analysis • ARIMA Unsupervised Learning Association Rules (Apriori) Clustering (k-Means) Topic Modelling (Latent Dirichlet Allocation) PageRank and Personalized PageRank Encoding Single Source Shortest Path (SSSP) Pivot Weakly Connected Components Stemmin Utility Functions Statistic Conjugate Gradient Descripti Linear Solvers • Card • DenseLinear Systems • Corre • SparseLinear Systems • Summ Path Inferentia PMML Export Sampling •Balanced •Random •Stratified Sessionize Term Frequency for Text Analysis Nearest Neighbors • k-Nearest Neighbors
  • 19.
  • 20.
    相關鏈結 • 主站點:http://greenplum.org/ • 源代碼:https://github.com/greenplum-db/gpdb •郵件列列表:http://greenplum.org/#mailing-lists • 如何貢獻:http://greenplum.org/#contribute