Greenplum資料庫系統架構
Greenplum
是一個純軟體的MPP
資料庫伺服器,其系統架構專門用於管理大規模分析型資料倉儲或商業智慧工作負載。從技術上講,MPP
無共享架構是指具有多個節點的系統,每個節點都有自己的記憶體、作業系統和磁碟,它們協作執行一項操作。Greenplum
使用這種高效能系統架構分配PB
級別的資料,並行使用系統的所有資源來處理請求。
Greenplum 與 PostgreSQL
Greenplum 6 版本基於PostgreSQL 9.4 開源資料庫,本質上是若干面向磁碟的PostgreSQL 資料庫例項,共同作為一個內聚的資料庫管理系統(DBMS )。大多數情況下,Greenplum 在SQL 支援、配置選項和終端使用者功能方面與PostgreSQL 非常相似。使用者操作Greenplum 資料庫就像與常規PostgreSQL 互動一樣。
Greenplum 與PostgreSQL 的主要區別為:
l 除了支援Postgres 最佳化器外,還有自己的GPORCA 最佳化器。
l Greenplum 資料庫可以使用Append-Optimized 儲存格式。
l Greenplum 支援列儲存,即邏輯上組織為表的資料,物理上以面向列的格式儲存資料。列儲存只能與Append-Optimized 表一起使用。
Greenplum 對PostgreSQL 的內部結構進行了修改和補充,以支援資料庫的並行結構。例如,對系統目錄、最佳化器、查詢執行器和事務管理器元件做過修改和增強,能夠在所有並行PostgreSQL 資料庫例項上同時執行查詢。Greenplum 依賴Interconnect (內部互連)在網路層支援不同PostgreSQL 例項之間的通訊,使得系統作為單一邏輯資料庫執行。
較之標準PostgreSQL ,Greenplum 還增加了並行資料裝載(外部表)、資源管理、查詢最佳化和儲存增強功能。Greenplum 開發的許多功能和最佳化也進入了PostgreSQL 社群,促進了PostgreSQL 的發展。例如,表分割槽是Greenplum 首先開發的一個特性,現在已成為標準PostgreSQL 的一部分。
Greenplum 頂層系統架構如圖3-1 所示。Master 是Greenplum 資料庫系統的入口,是客戶端連線並提交SQL 語句的資料庫例項。Master 將其工作與系統中其他叫作Segment 的資料庫例項進行協調,這些資料庫例項負責實際儲存和處理使用者資料。每個Master 和Segment 都是一個PostgreSQL 資料庫例項。
Master
Master
是Greenplum
的系統入口,它接收客戶端連線和SQL
查詢,並將工作分配給Segment
例項。終端使用者透過Master
與Greenplum
資料庫互動,就像與典型PostgreSQL
資料庫互動一樣。使用者可以使用諸如psql
之類的客戶端程式或JDBC
、ODBC
、libpq
之類的應用程式程式設計介面(API
)連線到資料庫。
Master 資料庫例項中儲存全域性系統目錄(Global System Catalog )。全域性系統目錄是一組系統表,其中包含關於Greenplum 本身的後設資料。Master 例項中不包含任何使用者資料,使用者資料僅駐留在Segment 例項中。Master 驗證客戶端連線,處理傳入的SQL 命令,在Segment 之間分配工作負載,協調每個Segment 返回的結果,並將最終結果返給客戶端程式。
Greenplum 資料庫使用寫前日誌(WAL )進行主/ 備Master 映象。在基於WAL 的日誌記錄中,所有修改都會在應用之前寫入日誌,以確保任何程式內操作的資料完整性。
Greenplum 的Segment 例項是獨立的PostgreSQL 資料庫,每個資料庫儲存一部分資料並執行一部分查詢處理。當使用者透過Master 連線到資料庫併發出查詢時,將在每個Segment 資料庫中建立程式以處理該查詢的工作。有關查詢過程的更多資訊,參見3.3.3 節。
使用者定義的表及其索引分佈在所有可用的Segment 中,每個Segment 都包含互斥的部分資料(複製表除外,這種表會在每個
Segment
Segment 例項上儲存一份完整的資料複製)。提供服務的資料庫伺服器程式在相應的Segment 例項下執行。
Segment 在稱為段主機的伺服器上執行。一臺段主機通常執行2~8 個Segment 例項,具體數量取決於CPU 核、記憶體、磁碟、網路卡和工作負載。所有段主機的配置應該相同,以避免木桶效應。讓Greenplum 獲得最+佳效能的關鍵是將資料和負載均勻分佈到多個能力相同的Segment 上,以便所有Segment 同時處理任務並同時完成其工作。
Interconnect
Interconnect 即內部互連,是Greenplum 資料庫系統架構中的核心元件,互連指的是Segment 在網路間的程式間通訊。Interconnect 使用標準乙太網交換資料,出於效能原因,建議使用萬兆網或更快的系統。
預設情況下,Interconnect 使用帶有流量控制的使用者資料包協議(UDPIFC )進行通訊,透過網路傳送訊息。Greenplum 軟體執行超出UDP 提供的資料包驗證,這意味著其可靠性相當於傳輸控制協議(TCP ),效能和可擴充套件性超過TCP 。如果將Interconnect 改為TCP ,Greenplum 資料庫的可擴充套件性則限制為1000 個Segment 例項,UDPIFC 作為Interconnect 的預設協議不受此限制。
Interconnect 實現了對同一叢集中多個PostgreSQL 例項的高效協同和平行計算,承載了並行查詢計劃生產、查詢分派(QD )、協調節點上查詢執行器(QE )的並行工作、資料分佈、Pipeline 計算、映象複製、健康探測等諸多工。
本文節選自《 Greenplum 構建實時資料倉儲實踐》,內容釋出獲得作者和出版社授權。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841117/viewspace-2953199/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫系統架構討論資料庫架構
- 淘寶海量資料庫OceanBase系統架構資料庫架構
- GreenPlum資料庫安裝資料庫
- HBase 系統架構及資料結構架構資料結構
- 圖資料庫 Nebula Graph 的資料模型和系統架構設計資料庫模型架構
- ES資料庫架構資料庫架構
- MyCat 啟蒙:分散式系統的資料庫架構演變分散式資料庫架構
- SaaS架構:中央庫存系統架構設計架構
- 什麼是大資料系統架構大資料架構
- Arm架構下麒麟作業系統安裝配置Mariadb資料庫架構作業系統資料庫
- 【greenplum】greenplum叢集資料庫初始化輸出內容樣例資料庫
- 大資料平臺之大資料處理系統的架構大資料架構
- 資料湖+資料倉儲 = 資料湖庫架構架構
- 系統架構設計筆記(97)—— 資料包架構筆記
- FunData — 電競大資料系統架構演進大資料架構
- 新核心業務系統資料架構規劃與資料治理架構
- mysql資料庫的基礎架構MySql資料庫架構
- 架構與資料庫的關係架構資料庫
- MonetDB列存資料庫架構初探資料庫架構
- 達夢資料守護系統(主備架構)如何正確重啟備庫架構
- 大資料系統架構的通用模組有哪些大資料架構
- [資料庫系統]儲存和檔案結構資料庫
- 【web】資料庫應用系統設計體系結構Web資料庫
- 企業資料庫的選擇通常由系統架構師主導決策 - thenewstack資料庫架構
- 資料庫與資料庫管理系統概述資料庫
- 架構設計(二):資料庫複製架構資料庫
- 故事篇:資料庫架構演變之路資料庫架構
- 分散式資料庫架構原理 - Alex Petrov分散式資料庫架構
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- MySQL資料庫架構——高可用演進MySql資料庫架構
- 資料庫系統概述資料庫
- Tomcat系統架構Tomcat架構
- MPP大資料系統架構,終於有人講明白了大資料架構
- 拆解大資料匯流排平臺DBus的系統架構大資料架構
- 架構之:資料流架構架構
- 【資料庫系統】資料庫系統概論====第十三章 資料庫技術發展資料庫
- 資料庫系統概述之國產資料庫資料庫
- 【虹科乾貨】Lambda資料架構和Kappa資料架構——構建現代資料架構架構APP