GPDB43 Administrator Guide--第一章 GREENPLUM 體系結構

panpong發表於2015-09-02

第一章 GREENPLUM 體系結構

Pivotal Greenplum的資料庫是一個大規模並行處理(MPP)資料庫伺服器架構,該架構是專為管理大規模的資料倉儲和商業智慧設計的。

MPP(也稱為shared nothing架構)是指系統具有兩個或更多個處理機合作執行操作,每個處理機有它自己的記憶體,作業系統和磁碟。Greenplum使用這種高效能的系統架構來分散式載入multi-terabyte資料倉儲,並且可以使用所有的系統資源並行處理查詢。

Greenplum的資料庫是基於PostgreSQL的開源技術,它本質上是幾個PostgreSQL資料庫例項一起協作當做一個有凝聚力資料庫管理系統(DBMS)使用。GREENPLUM     資料庫是基於PostgreSQL 8.2.15的,在SQL支援、產品特點、配置選項和終端使用者功能方面,大多數情況下是與Postgres非常相似的。與Greenplum資料庫的使用者互動也類似一個普通的PostgreSQL資料庫管理系統。

PostgreSQL的內部已被修改或補充,以支援Greenplum資料庫的並行結構。例如,該系統目錄,最佳化器,查詢執行器,和事務管理器元件已被修改和改進,以支援能夠在所有並行的PostgreSQL資料庫例項同時執行查詢。Greenplum Interconnect可使不同的PostgreSQL例項之間進行通訊,並且使系統表現為一個邏輯資料庫。

Greenplum資料庫也有特有的特徵,如最佳化的PostgreSQL商業智慧功能(BI)與工作負載。另外,Greenplum增加了並行資料載入(外部表)、資源管理、查詢最佳化、儲存增強等功能,這些功能在標準PostgreSQL中都是沒有的。由Greenplum開發的許多功能和最佳化也進入PostgreSQL的社群。例如,表分割槽是首先由Greenplum的開發了一種功能,它現在也在標準的PostgreSQL中了。

Greenplum資料儲存和處理大資料量,是透過跨多個伺服器和主機分配資料和負載。Greenplum資料庫是基於PostgreSQL8.2單個資料庫的陣列,這些資料庫像單個資料庫一樣共同工作。master主機是Greenplum資料庫系統的入口點,它是客戶端連線並提交SQL語句的介面資料庫例項。master主機協調其他segment主機一起工作;segment主機是儲存資料與處理查詢操作的資料庫例項


1.  Greenplum master節點

master節點是Greenplum資料庫系統的入口,接受來自客戶端的連線和SQL查詢,和分發工作給segment例項。

Greenplum資料庫的終端使用者與Greenplum資料庫互動(透過master節點),就像與典型的PostgreSQL資料庫互動一樣。他們連線到資料庫,使用諸如PSQL或客戶端程式應用程式程式設計介面(API),如JDBCODBC

master節點是全域性系統目錄所在。全域性系統目錄是一套包含Greenplum資料庫系統後設資料的系統表。master節點不包含任何使用者資料,資料僅儲存在segment節點。master節點驗證客戶端連線,處理SQL命令,在segment節點之間的分配工作負載,協調由每個segment返回的結果,並將最後結果呈現給客戶端程式。

 

2.  Greenplum segment節點

Greenplum segment例項是獨立的PostgreSQL資料庫資料,每個segment節點儲存部分資料,並執行大多數查詢處理。

當使用者連線經由Greenplum master節點併發出查詢,在每個segment 節點建立程式來處理查詢工作。有關查詢的詳細資訊流程,請參閱關於Greenplum的查詢處理。

使用者定義的表和它們的索引分佈在可用的segment中的,每個segment包含資料的不同部分。資料庫伺服器程式根據服務的相應segment資料執行。使用者透過masterGreenplum資料庫系統中segment互動。

segment執行在segment主機上的。一個segment主機通常執行兩個到八個Greenplum segment],這取決於CPU核心、RAM、儲存器、網路介面和工作負荷。segment主機最好使用相同的配置。獲得最佳效能的關鍵是將資料與工作負載均勻的分佈在大量效能相同的segment上,使各segment同時開始工作去完成同一個任務並且同時完成;

 

3.  Greenplum Interconnect

Interconnect是Greenplum資料庫體系結構的網路層。Interconnectsegment間程式間通訊和通訊依賴的基礎設施。Greenplum Interconnect採用的是標準的萬兆乙太網交換結構。預設情況下,該Interconnect使用使用者資料包協議(UDP)在網路上傳送訊息。超出了由UDP提供的包,Greenplum軟體也執行資料包驗證,這意味著在可靠性方面UDP等同於傳輸控制協議(TCP),而且效能和可擴充套件性超過TCP。如果Interconnect使用TCPGreenplum資料庫將有一個1000 segment例項極限。當使用UDP作為Interconnect預設協議時,這個限制是不存在了。

 

4.  管理與監控工具

Greenplum提供標準的命令列工具,這些工具位於$GPHOME/bin下,並且只能在master上執行。可以由命令列工具完成的管理任務主要有以下這些:

  • 安裝一組資料庫
  • 初始化
  • 啟動與停止
  • 增加與移除主機
  • 擴充套件segment並重新分佈資料
  • 管理失敗segment例項的恢復
  • 管理失敗master例項的恢復與故障遷移
  • 備份與還原資料庫(並行)
  • 並行載入資料
  • Greenplum資料間傳輸資料
  • 系統狀態報告

Greenplum也提供了一個web介面的圖形化監控與管理工具,叫做Greenplum Command Center,以下簡稱CCCC是透過安裝在各segment主機上agent來蒐集系統統計資訊並儲存到一個專用資料庫中;Agent會將蒐集到的segment資訊定期傳送到master上,通常間隔是15秒;管理員可以透過圖形化介面查詢相應資訊;CC需要單獨安裝,更多資訊參考CC文件;CC系統結構如下:


 

5.  並行資料載入

在大規模,多TB的資料倉儲,大資料量必須在一個相對小的維護視窗完成載入。Greenplum支援快速,並行資料載入與外部表功能。管理員還可以在單行錯誤隔離模式下載入外部表,過濾錯誤行,並插入到單獨的錯誤表中,同時繼續載入正確格式化行。管理員可以指定一個錯誤閾值,載入操作控制多少格式不正確的行後Greenplum中止載入操作。透過使用Greenplum資料庫的並行檔案伺服器(gpfdist),並結合外部表,管理員可以實現最大並行性和負載頻寬。

Greenplum的另一個實用工具,gpload,透過制定YAML格式的控制檔案完成載入任務。你可以在控制檔案中指定源資料的位置、格式、轉換條件master主機、目標資料庫,由gpload執行載入。這可以讓你描述一個複雜的任務,並以受控的、可重複的方式執行它;

下面為並行載入的系統結構圖:


6.  冗餘與故障遷移

這一節其實HA的簡介,詳細的資訊參考HA章節;Greenplum可以實現無單點故障部署系統,實現這一目標的方法就是對主要元件進行映象;例如,segment映象、master映象、Interconnect冗餘等;


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-1789075/,如需轉載,請註明出處,否則將追究法律責任。

相關文章