gauss200簡介
MPP即大規(guī)模并行處理(Massively Parallel Processing ),在數(shù)據(jù)庫非共享集群中,每個(gè)節(jié)點(diǎn)都有獨(dú)立的磁盤存儲(chǔ)系統(tǒng)和內(nèi)存系統(tǒng),業(yè)務(wù)數(shù)據(jù)根據(jù)數(shù)據(jù)庫模型和應(yīng)用特點(diǎn)劃分到各個(gè)節(jié)點(diǎn)上,每臺(tái)數(shù)據(jù)節(jié)點(diǎn)通過專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互相連接,彼此協(xié)同計(jì)算,作為整體提供數(shù)據(jù) 庫服務(wù),非共享數(shù)據(jù)庫集群有完全的可伸縮性、高可用、高性能、優(yōu)秀的性價(jià)比、資源共享等優(yōu)勢(shì)。

file
典型特點(diǎn):
* 計(jì)算靠近數(shù)據(jù),避免大量的數(shù)據(jù)遷移,獲得更高的性能
* 無共享架構(gòu),相比共享架構(gòu)擁有更高的擴(kuò)展性
gaussDB200架構(gòu)
GaussDB 200采用Share-nothing架構(gòu),由多個(gè)擁有獨(dú)立且互不共享CPU、內(nèi)存、存儲(chǔ)等系統(tǒng)資源的節(jié)點(diǎn)組成。在這樣的系統(tǒng)架構(gòu)中,業(yè)務(wù)數(shù)據(jù)被分散存儲(chǔ)在多個(gè)物理節(jié)點(diǎn)上,數(shù)據(jù)分析任務(wù)被推送到數(shù)據(jù)所在位置就近執(zhí)行,通過控制模塊的協(xié)調(diào),并行地完成大規(guī)模的數(shù)據(jù)處理工作,實(shí)現(xiàn)對(duì)數(shù)據(jù)處理的快速響應(yīng)。

file
Share-nothing架構(gòu)具備如下優(yōu)點(diǎn):
- 最易于擴(kuò)展的架構(gòu)
- 為商業(yè)智能BI(Business Intelligence)和數(shù)據(jù)分析的高并發(fā)、大數(shù)據(jù)量計(jì)算提供按需擴(kuò)展的能力
- 自動(dòng)化的并行處理機(jī)制
- 內(nèi)部自動(dòng)并行處理,無需人工分區(qū)或優(yōu)化
- 數(shù)據(jù)加載與訪問方式與一般數(shù)據(jù)庫相同
- 數(shù)據(jù)分布在所有的并行節(jié)點(diǎn)上
- 每個(gè)節(jié)點(diǎn)只處理其中一部分?jǐn)?shù)據(jù)
- 最優(yōu)化的I/O處理
- 所有的節(jié)點(diǎn)同時(shí)進(jìn)行并行處理
- 節(jié)點(diǎn)之間完全無共享,無I/O沖突
- 增加節(jié)點(diǎn)實(shí)現(xiàn)存儲(chǔ)、查詢及加載性能的線性擴(kuò)展
gaussdb 200組成

file
| 名稱 | 描述 |
|---|---|
| MPPDBServer(CM) | GaussDB 200集群管理模塊CM(Cluster Manager),即含CMServer進(jìn)程的特殊MPPDBServer,負(fù)責(zé)管理和監(jiān)控分布式系統(tǒng)中各個(gè)功能單元和物理資源的運(yùn)行情況,確保整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行。CM分為主CM和備CM。正常情況下,只由主CM提供GaussDB 200集群管理服務(wù)。當(dāng)主CM發(fā)生故障的情況下,備CM會(huì)主動(dòng)升為主CM提供GaussDB 200集群管理服務(wù)。CM通過CM服務(wù)完成對(duì)各個(gè)MPPDBServer管理。CM服務(wù)由CMServer、CMAgent、Monitor組成。CMServer是整個(gè)GaussDB 200集群的大腦,它會(huì)根據(jù)CMAgent上報(bào)上來的各MPPDBServer狀態(tài)信息來決定是否需要狀態(tài)變更。CMServer只部署在主備CM上。CMAgent是MPPDBServer上面部署的實(shí)例代理線程,負(fù)責(zé)接收CMServer下發(fā)的命令和上報(bào)MPPDBServer的Coordinator、Datanode、GTM的狀態(tài)給CMServer。每個(gè)MPPDBServer均會(huì)部署一個(gè)CMAgent,也包括主備CM和主備GTM。Monitor是watchdog定時(shí)任務(wù),其唯一的任務(wù)是在CMAgent停止的情況下將CMAgent重啟。每個(gè)MPPDBServer均會(huì)部署一個(gè)Monitor,也包括主備CM和主備GTM。 |
| MPPDBServer(GTM) | 全局事務(wù)管理模塊GTM(Global Transaction Manager),即含GTM進(jìn)程的特殊MPPDBServer,負(fù)責(zé)生成和維護(hù)全局事務(wù)ID、事務(wù)快照、時(shí)間戳等需要全局唯一的信息。GTM分為主GTM和備GTM。正常情況下,只由主GTM提供全局事務(wù)管理服務(wù)。當(dāng)主GTM發(fā)生故障的情況下,備GTM會(huì)主動(dòng)升為主GTM提供服務(wù)。 |
| MPPDBServer | 業(yè)務(wù)模塊,即除MPPDBServer(CM)、MPPDBServer(GTM)以外的MPPDBServer,由Coordinator及多個(gè)Datanode組成,負(fù)責(zé)執(zhí)行CM、GTM下發(fā)的任務(wù)。業(yè)務(wù)模塊與MPPDBServer(CM)、MPPDBServer(GTM)主要區(qū)別是不包含CMServer與GTM進(jìn)程。 |
| Coordinator(CN) | 負(fù)責(zé)提供外部應(yīng)用接口、優(yōu)化全局執(zhí)行計(jì)劃、向Datanode分發(fā)執(zhí)行計(jì)劃,以及匯總、處理執(zhí)行結(jié)果。GaussDB 200通過CCN(Control Coordinator Node)負(fù)責(zé)集群內(nèi)的資源全局負(fù)載控制,以實(shí)現(xiàn)自適應(yīng)的動(dòng)態(tài)負(fù)載管理。CM在第一次集群啟動(dòng)時(shí),通過集群部署形式,選擇編號(hào)最小的Coordinator作為CCN。若CCN故障之后,由CM選擇新的CCN進(jìn)行替換。 |
| Datanode(DN) | 在集群中,DN有多個(gè)。每個(gè)DN存儲(chǔ)了一部分?jǐn)?shù)據(jù)。如果DN無高可用方案,則故障時(shí)會(huì)導(dǎo)致該實(shí)例上的數(shù)據(jù)無法訪問。因此GaussDB 200對(duì)DN提供了高可用方案:主、備、從備。DN主、備、從備間的工作原理如下:主、備DN同步數(shù)據(jù)期間,如果主DN突然故障不可用,備DN會(huì)升為主DN。在原主DN恢復(fù)前,新升為主的DN會(huì)將數(shù)據(jù)日志同步到從備DN。原主DN恢復(fù)后將成為備DN,并且會(huì)使用“從備DN”上的數(shù)據(jù)日志恢復(fù)異常期間的數(shù)據(jù)。也就是說從備DN永遠(yuǎn)只作為從備使用,不會(huì)因?yàn)橹鱀N或備DN故障而升級(jí)為主DN或備DN,從備只存放備DN故障時(shí)同步到從備的Xlog數(shù)據(jù)和數(shù)據(jù)通道復(fù)制產(chǎn)生的數(shù)據(jù)。 |
| Storage | 服務(wù)器的本地存儲(chǔ)資源,持久化存儲(chǔ)數(shù)據(jù)(支持行存、列存、混合存儲(chǔ))。 |
數(shù)據(jù)庫對(duì)象
| 對(duì)象名稱 | 說明 |
|---|---|
| user | 數(shù)據(jù)庫用戶,用于權(quán)限管理。 |
| database | 可以創(chuàng)建多個(gè)不同數(shù)據(jù)庫。 |
| schema | 用于管理多個(gè)用戶使用同一數(shù)據(jù)庫。 |
| tablespace | 表空間,定義數(shù)據(jù)庫對(duì)象文件的存放位置。 |
| table | 基本表,分為行存表和列存表。 |
| index | 索引,可以調(diào)高數(shù)據(jù)的訪問速度。 |
| view | 視圖,一個(gè)或多個(gè)表中某些字段組成的虛表。 |
數(shù)據(jù)庫邏輯結(jié)構(gòu)圖:

file
- Tablespace,即表空間,是一個(gè)目錄,可以存在多個(gè),里面存儲(chǔ)的是它所包含的數(shù)據(jù)庫的各種物理文件,每個(gè)表空間可以對(duì)應(yīng)多個(gè)Database。
- Database,即數(shù)據(jù)庫,用于管理各類數(shù)據(jù)對(duì)象,各數(shù)據(jù)庫間相互隔離,數(shù)據(jù)庫管理的對(duì)象可分布在多個(gè)Tablespace上。
- Datafile Segment,即數(shù)據(jù)文件,通常每張表只對(duì)應(yīng)一個(gè)數(shù)據(jù)文件,如果某張表的數(shù)據(jù)大于1GB,則會(huì)分為多個(gè)數(shù)據(jù)文件存儲(chǔ)。
- Table,即表,每張表只能屬于一個(gè)數(shù)據(jù)庫,也只能對(duì)應(yīng)到一個(gè)Tablespace,每張表對(duì)應(yīng)的數(shù)據(jù)文件必須在同一個(gè)Tablespace中。
- Block,即數(shù)據(jù)塊,是數(shù)據(jù)庫管理的基本單位,默認(rèn)大小為8KB。
gaussdb 200產(chǎn)品定位
GaussDB 200是企業(yè)級(jí)的大規(guī)模并行處理關(guān)系型數(shù)據(jù)庫。GaussDB 200采用**MPP(Massively Parallel Processing)架構(gòu),支持行存儲(chǔ)與列存儲(chǔ)**,提供PB(Petabyte,2的50次方字節(jié))級(jí)別數(shù)據(jù)量的處理能力,GaussDB 200在核心技術(shù)上跟傳統(tǒng)數(shù)據(jù)庫相比有巨大優(yōu)勢(shì),可以解決很多行業(yè)用戶的數(shù)據(jù)處理性能問題,可以為超大規(guī)模數(shù)據(jù)管理提供高性價(jià)比的通用計(jì)算平臺(tái),并可用于支撐各類數(shù)據(jù)倉庫系統(tǒng)、BI(Business Intelligence)系統(tǒng)和決策支持系統(tǒng),統(tǒng)一為上層應(yīng)用的決策分析等提供服務(wù)。
gaussdb 200應(yīng)用場(chǎng)景
GaussDB 200面向行業(yè)大數(shù)據(jù)應(yīng)用,可以適用于以下場(chǎng)景:
- 詳單查詢具備PB級(jí)數(shù)據(jù)負(fù)載能力,通過內(nèi)存分析技術(shù)滿足海量數(shù)據(jù)邊入庫邊查詢要求,適用于安全、電信、金融、物聯(lián)網(wǎng)等行業(yè)的詳單查詢業(yè)務(wù)。
- 數(shù)據(jù)倉庫具備百TB級(jí)數(shù)據(jù)支撐能力,可以高效處理百億行多表連接查詢,適用于操作數(shù)據(jù)存儲(chǔ)ODS(Operational Data Store)、企業(yè)數(shù)據(jù)倉庫EDW(Enterprise Data Warehouse)、數(shù)據(jù)集市DM(Data Mart)。
- 混合負(fù)載基于海量數(shù)據(jù)查詢統(tǒng)計(jì)分析能力與事務(wù)處理能力,行列混存技術(shù)同時(shí)滿足聯(lián)機(jī)事務(wù)處理OLTP(On-Line Transaction Processing)與聯(lián)機(jī)分析處理OLAP(Online Analytical Processing)混合負(fù)載場(chǎng)景。
- 大數(shù)據(jù)分析支持結(jié)構(gòu)化數(shù)據(jù)PB級(jí)分析能力。分布式并行數(shù)據(jù)庫集群滿足PB級(jí)結(jié)構(gòu)化大數(shù)據(jù)的分析能力。
gaussdb200業(yè)務(wù)流程

file
具體查詢流程如下:
- 用戶通過應(yīng)用程序發(fā)出查詢本地?cái)?shù)據(jù)的SQL請(qǐng)求到Coordinator。
- Coordinator接收用戶的SQL請(qǐng)求,分配服務(wù)進(jìn)程,向GTM請(qǐng)求分配全局事務(wù)信息。
- GTM接收到Coordinator的請(qǐng)求,返回全局事務(wù)信息給Coordinator。
- Coordinator根據(jù)數(shù)據(jù)分布信息以及系統(tǒng)元信息,解析SQL為查詢計(jì)劃樹,從查詢計(jì)劃樹中提取可以發(fā)送到Datanode的執(zhí)行步驟,封裝成SQL語句或者子執(zhí)行計(jì)劃樹,發(fā)送到Datanode執(zhí)行。
- Datanode接收到讀取任務(wù)后,查詢具體Storage上的本地?cái)?shù)據(jù)塊。
- Datanode任務(wù)執(zhí)行后,將執(zhí)行結(jié)果返回給Coordinator。
- Coordinator將查詢結(jié)果通過應(yīng)用程序返回給用戶。
gaussdb200數(shù)據(jù)節(jié)點(diǎn)高可用

file
gaussdb200提供了雙重HA機(jī)制,第一層保護(hù):主備機(jī)實(shí)時(shí)的數(shù)據(jù)頁和日志同步,主機(jī)故障后備機(jī)接管,確保業(yè)務(wù)不中斷,第二層保護(hù):備機(jī)故障后,主機(jī)日志同步復(fù)制到從備節(jié)點(diǎn)(handoff機(jī)制),確保日志始終是雙備份。
友商對(duì)比
| 特性 | Teradata | Oracle Exadata | GreenPlum | 華為GaussDB 200 |
|---|---|---|---|---|
| 通用服務(wù)器支持 | 不支持 | 不支持 | 支持 | 支持 |
| 依賴磁陣/SAN 存儲(chǔ) | 依賴 | 依賴 | 不依賴 | 不依賴 |
| 架構(gòu) | 無共享架構(gòu),橫向擴(kuò)展最佳 | 全共享架構(gòu),橫向擴(kuò)展受限制 | 無共享架構(gòu), 協(xié)調(diào)節(jié)點(diǎn)(master)僅 支持主備,數(shù)據(jù)節(jié)點(diǎn) (segment)能橫向擴(kuò)展 | 無共享架構(gòu), 協(xié)調(diào)節(jié)點(diǎn)(CN)節(jié) 點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)(DN) 均能橫向擴(kuò)展 |
| 向量化執(zhí)行/ SIMD指令 | 不支持 | 不支持 | 不支持 | 支持 |
| 行列存儲(chǔ) | 支持,表級(jí)列存儲(chǔ) | 支持,壓縮單元級(jí)列存儲(chǔ) | 支持,表級(jí)別列存儲(chǔ) | 支持,表級(jí)別列存儲(chǔ) |
| 列存儲(chǔ)引擎 | 不支持 | 支持,壓縮單元級(jí)列存儲(chǔ) | 不支持 | 支持 |
海汼部落原創(chuàng)文章,原文鏈接:http://www.hainiubl.com/topics/75655