初識(shí)GaussDB A(初識(shí)GaussDB(for Influx))
摘要:本文是對(duì)GaussDB A產(chǎn)品的整體描述,包含產(chǎn)品架構(gòu)、數(shù)據(jù)流程、組網(wǎng)方案、服務(wù)部署原則、企業(yè)級(jí)增強(qiáng)特性等。
產(chǎn)品描述
GaussDB A是企業(yè)級(jí)的大規(guī)模并行處理關(guān)系型數(shù)據(jù)庫(kù)。GaussDB A采用MPP(Massively Parallel
Processing)架構(gòu),支持行存儲(chǔ)與列存儲(chǔ),提供PB級(jí)別數(shù)據(jù)量的處理能力。
GaussDB A在核心技術(shù)上跟傳統(tǒng)數(shù)據(jù)庫(kù)相比有巨大優(yōu)勢(shì),可以解決很多行業(yè)用戶的數(shù)據(jù)處理性能問(wèn)題,可以為超大規(guī)模數(shù)據(jù)管理提供高性價(jià)比的通用計(jì)算平臺(tái),并可用于支撐各類數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)、BI(Business Intelligence)系統(tǒng)和決策支持系統(tǒng),統(tǒng)一為上層應(yīng)用的決策分析等提供服務(wù)。
產(chǎn)品架構(gòu)
GaussDB A采用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í)行,通過(guò)控制模塊的協(xié)調(diào),并行地完成大規(guī)模的數(shù)據(jù)處理工作,實(shí)現(xiàn)對(duì)數(shù)據(jù)處理的快速響應(yīng)。
GaussDB A由多個(gè)MPPDBServer組成:
MPPDBServer(CM):GaussDB A集群管理模塊CM(Cluster Manager)。負(fù)責(zé)管理和監(jiān)控分布式系統(tǒng)中各個(gè)功能單元和物理資源的運(yùn)行情況,確保整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行。CM通過(guò)CM服務(wù)完成對(duì)各個(gè)MPPDBServer管理。CM服務(wù)由CMServer、CMAgent、Monitor組成。
·?CMServer是整個(gè)GaussDB A集群的大腦,它會(huì)根據(jù)CMAgent上報(bào)上來(lái)的各MPPDBServer狀態(tài)信息來(lá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)程的特殊MPPDBServe,負(fù)責(zé)生成和維護(hù)全局事務(wù)ID、事務(wù)快照、時(shí)間戳等需要全局唯一的信息。
MPPDBServer:業(yè)務(wù)模塊r由Coordinator及多個(gè)Datanode組成,負(fù)責(zé)執(zhí)行CM、GTM下發(fā)的任務(wù)。
Coordinator(CN):負(fù)責(zé)提供外部應(yīng)用接口、優(yōu)化全局執(zhí)行計(jì)劃、向Datanode分發(fā)執(zhí)行計(jì)
劃,以及匯總、處理執(zhí)行結(jié)果。
Datanode(DN):每個(gè)DN存儲(chǔ)了一部分?jǐn)?shù)據(jù)。如果DN無(wú)高可用方案,則故障時(shí)會(huì)導(dǎo)致該實(shí)例上的數(shù)據(jù)無(wú)法訪問(wèn)。因此GaussDB A對(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ù)流程
作為關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),GaussDB A主要業(yè)務(wù)為數(shù)據(jù)的查詢與存儲(chǔ)。GaussDB A進(jìn)行數(shù)據(jù)查詢的流程如圖所示。
具體查詢流程如下:
1. 用戶通過(guò)應(yīng)用程序發(fā)出查詢本地?cái)?shù)據(jù)的SQL請(qǐng)求到Coordinator。
2. Coordinator接收用戶的SQL請(qǐng)求,分配服務(wù)進(jìn)程,向GTM請(qǐng)求分配全局事務(wù)信息。
3. GTM接收到Coordinator的請(qǐng)求,返回全局事務(wù)信息給Coordinator。
4. Coordinator根據(jù)數(shù)據(jù)分布信息以及系統(tǒng)元信息,解析SQL為查詢計(jì)劃樹,從查詢計(jì)劃樹中提取可以發(fā)送到Datanode的執(zhí)行步驟,封裝成SQL語(yǔ)句或者子執(zhí)行計(jì)劃樹,發(fā)送到Datanode執(zhí)行。
5. Datanode接收到讀取任務(wù)后,查詢具體Storage上的本地?cái)?shù)據(jù)塊。
6. Datanode任務(wù)執(zhí)行后,將執(zhí)行結(jié)果返回給Coordinator。
7. Coordinator將查詢結(jié)果通過(guò)應(yīng)用程序返回給用戶。
組網(wǎng)方案
GaussDB A集群的組網(wǎng)方案中包含如下節(jié)點(diǎn):管理節(jié)點(diǎn)(MN)、控制節(jié)點(diǎn)(CN)、數(shù)據(jù)節(jié)點(diǎn)(DN)。
1) 對(duì)于每組實(shí)例,其主、備部署在不同的節(jié)點(diǎn)上
2) 建議節(jié)點(diǎn)內(nèi)存大于等于512G,每個(gè)節(jié)點(diǎn)部署4個(gè)DN
3) 低并發(fā)場(chǎng)景下,整個(gè)集群部署2~4個(gè)CN即可以滿足使用要求
4) 建議GTM、CM部署在沒(méi)有CN的節(jié)點(diǎn)上
5) 安全環(huán)是集群組網(wǎng)的基本單元,普通安全環(huán)內(nèi)含至少3個(gè)服務(wù)器,各服務(wù)器的DN形成完備的主備關(guān)系
服務(wù)部署原則
GaussDB A集群由多種服務(wù)按照一定的邏輯架構(gòu)組合而成,每個(gè)服務(wù)包含一個(gè)或多個(gè)角色,每個(gè)角色可以部署一個(gè)或多個(gè)實(shí)例。
服務(wù):服務(wù)對(duì)外表現(xiàn)為集群提供的組件業(yè)務(wù)能力,集群中的每個(gè)組件對(duì)應(yīng)一個(gè)服務(wù)名,提供一種服務(wù)。
角色:角色是服務(wù)的組成要素,每個(gè)服務(wù)由一個(gè)或多個(gè)角色組成,服務(wù)通過(guò)角色安裝到節(jié)點(diǎn)(即服務(wù)器)上,保證服務(wù)正常運(yùn)行。
實(shí)例:當(dāng)一個(gè)服務(wù)的角色安裝到節(jié)點(diǎn)上,即形成一個(gè)實(shí)例。每個(gè)服務(wù)有各自對(duì)應(yīng)的角色實(shí)例。
企業(yè)級(jí)增強(qiáng)特性
多集群統(tǒng)一管理
FusionInsight Manager 6.5.1支持多集群統(tǒng)一管理,使用一套FusionInsight Manager可創(chuàng)建、管理多個(gè)集群,減少運(yùn)維人員管理多個(gè)集群需要操作多套界面的繁瑣。FusionInsight Manager支持同時(shí)管理多個(gè)相同產(chǎn)品類型的集群,也支持不同產(chǎn)品類型的集群。
數(shù)據(jù)分布式存儲(chǔ)
GaussDB A采用水平分表的方式,將業(yè)務(wù)數(shù)據(jù)表的元組打散存儲(chǔ)到各個(gè)節(jié)點(diǎn)內(nèi)。查詢中通過(guò)查詢條件過(guò)濾不必要的數(shù)據(jù),快速定位到數(shù)據(jù)存儲(chǔ)位置,可極大提升數(shù)據(jù)庫(kù)性能。支持以下數(shù)據(jù)分布策略:
數(shù)據(jù)分區(qū)
在GaussDB A分布式系統(tǒng)中,數(shù)據(jù)分區(qū)是在一個(gè)節(jié)點(diǎn)內(nèi)部對(duì)數(shù)據(jù)按照用戶指定的策略對(duì)數(shù)據(jù)做進(jìn)一步的水平分表,將表按照指定范圍劃分為多個(gè)數(shù)據(jù)互不重疊的部分(Partition)。數(shù)據(jù)分區(qū)的好處:
1) 改善可管理性。有了分區(qū),維護(hù)操作可以專門針對(duì)表的特定部分執(zhí)行。
2) 提升刪除操作的性能:刪除數(shù)據(jù)時(shí)可以刪除整個(gè)分區(qū),與分別刪除每行相比,這種操作非常高效和快速。
3) 改善查詢性能:分區(qū)剪枝、智能化分區(qū)聯(lián)接(智能化分區(qū)聯(lián)接將一個(gè)大型聯(lián)接分為多個(gè)較小的聯(lián)接,這些較小的聯(lián)接包含與聯(lián)接的表“相同”的數(shù)據(jù)集)
數(shù)據(jù)并行導(dǎo)入
GaussDB A的數(shù)據(jù)并行導(dǎo)入實(shí)現(xiàn)了對(duì)指定格式(支持CSV/TEXT格式)的外部數(shù)據(jù)高速、并行入庫(kù)。
并行導(dǎo)入過(guò)程中:
CN只負(fù)責(zé)任務(wù)的規(guī)劃及下發(fā),把數(shù)據(jù)導(dǎo)入的工作交給了DN,釋放了CN的資源,使其有能力處理外部請(qǐng)求各個(gè)DN都參與數(shù)據(jù)導(dǎo)入的工作,充分利用各個(gè)設(shè)備的計(jì)算能力及網(wǎng)絡(luò)帶寬,提高數(shù)據(jù)導(dǎo)入的整體性能。
全并行的數(shù)據(jù)查詢處理
全并行的分布式查詢處理是GaussDB A中最核心的技術(shù),它可以最大限度的降低查詢時(shí)節(jié)點(diǎn)之間的數(shù)據(jù)流動(dòng),以提升查詢效率。GaussDB A為達(dá)成高性能數(shù)據(jù)分析目標(biāo),實(shí)現(xiàn)了一套高性能的分布式執(zhí)行引擎,執(zhí)行引擎以SQL引擎生成的執(zhí)行計(jì)劃為輸入,將元組按執(zhí)行計(jì)劃的要求進(jìn)行加工并將結(jié)果返回給客戶端。
一個(gè)涉及多個(gè)執(zhí)行算子的復(fù)雜查詢的大概執(zhí)行過(guò)程如下:
1. CN接收到查詢?nèi)蝿?wù)(通常是SQL語(yǔ)句描述)后,對(duì)SQL語(yǔ)句進(jìn)行語(yǔ)法解析并分解出基礎(chǔ)的查詢和數(shù)據(jù)處理執(zhí)行算子,比如DataScan、Sort、Aggregation以及Join。
2. 隨后CN會(huì)生成最優(yōu)的基礎(chǔ)任務(wù)執(zhí)行序列,并將這些基礎(chǔ)任務(wù)部署到各個(gè)節(jié)點(diǎn)上去執(zhí)行。
3. 各個(gè)DN完成數(shù)據(jù)處理后,會(huì)將結(jié)果匯總到CN上并輸出到客戶端。
向量化執(zhí)行和行列混合引擎
向量化執(zhí)行相對(duì)于傳統(tǒng)的執(zhí)行模式改變是對(duì)于一次一元組的模型修改為一次一批元組,配合列存特性,可以帶來(lái)巨大的性能提升。
GaussDB A支持行存儲(chǔ)和列存儲(chǔ)兩種存儲(chǔ)模型,用戶可以根據(jù)應(yīng)用場(chǎng)景,建表的時(shí)候選擇行存儲(chǔ)還是列存儲(chǔ)表。行列混合存儲(chǔ)引擎可以同時(shí)為用戶提供更優(yōu)的數(shù)據(jù)壓縮比(列存)、更好的索引性能(列存)、更好的點(diǎn)更新和點(diǎn)查詢(行存)性能。不過(guò)當(dāng)前列存儲(chǔ)方式在使用上還存在一些約束:
·?DDL僅支持CREATE/DROP/TRUNCATE TABLE的功能。
兼容分區(qū)的DDL管理功能(如: ADD/DROP/MERGE PARTITION,EXCHANGE功能)。
支持CREATE TABLE LIKE語(yǔ)法。
支持ALTER TABLE的部分語(yǔ)法。
其他功能都不支持。
·?DML支持UPDATE/COPY/BULKLOAD/DELETE。
·?不支持觸發(fā)器,不支持主外鍵。
·?支持Psort index、B-tree index和GIN index
工作負(fù)載管理
負(fù)載均衡:GaussDB A集群提供了開源軟件LVS+KeepAlived的負(fù)載均衡方案。
資源調(diào)度管理:GaussDB A內(nèi)嵌資源調(diào)度管理技術(shù),實(shí)現(xiàn)了基于策略和SLA(服務(wù)承諾等級(jí))的任務(wù)調(diào)度機(jī)制。可通過(guò)創(chuàng)建控制組、資源池、租戶調(diào)度和管理系統(tǒng)資源
高可靠事務(wù)處理
GaussDB A提供集群事務(wù)管理功能負(fù)責(zé)保證集群所有節(jié)點(diǎn)間事務(wù)的ACID特性,保證故障可恢復(fù),以及恢復(fù)后滿足數(shù)據(jù)的ACID要求,并負(fù)責(zé)節(jié)點(diǎn)的并發(fā)控制。
事務(wù)管理:
·?支持事務(wù)塊,用戶可以通過(guò)start transaction命令顯式啟動(dòng)一個(gè)事務(wù)塊。
·?支持單語(yǔ)句事務(wù),用戶不顯式啟動(dòng)事務(wù),則單條語(yǔ)句就是一個(gè)事務(wù)。
·?分布式事務(wù)管理。支持全局事務(wù)信息管理,包括gxid、snapshot、timestamp的管理,分布式事務(wù)狀態(tài)管理,gxid溢出的處理。
·?分布式事務(wù)支持ACID特性。
·?支持分布式死鎖預(yù)防,保證在出現(xiàn)死鎖時(shí)自動(dòng)解鎖或者預(yù)防死鎖。
多種部署形態(tài)
GaussDB A目前支持標(biāo)準(zhǔn)化集群部署形態(tài)和單機(jī)部署形態(tài)。
·?標(biāo)準(zhǔn)化集群部署形態(tài):需要至少三臺(tái)滿足部署GaussDB A的軟硬件要求的服務(wù)器。GaussDB A各個(gè)組件均衡打散部署在每個(gè)服務(wù)器上。適用于大數(shù)據(jù)量場(chǎng)景下的分析業(yè)務(wù),具有高性能,高可靠性,可擴(kuò)展的特點(diǎn)。
·?機(jī)部署形態(tài):僅需一臺(tái)滿足部署GaussDB A的軟硬件要求的服務(wù)器。GaussDB A各個(gè)組件全部部署在單個(gè)服務(wù)器上(單機(jī)部署形態(tài)下不包含備機(jī))。適用于輕量化、中小數(shù)據(jù)量場(chǎng)景下的分析業(yè)務(wù),具有輕量化、低成本、快速部署的特點(diǎn)。由于單機(jī)部署不包含備機(jī),因此可靠性由服務(wù)器硬件的可靠性和備份恢復(fù)策略來(lái)保證。
在線擴(kuò)容
GaussD A分布式數(shù)據(jù)庫(kù)集群提供scale-out線性擴(kuò)展能力,滿足客戶業(yè)務(wù)增長(zhǎng)和利舊的訴求(將閑置的機(jī)器加入系統(tǒng))。
GaussDB A采用Node Group技術(shù),支持多表并行擴(kuò)容,擴(kuò)容速度高達(dá)400G/小時(shí)/新增節(jié)點(diǎn)。
SQL on Anywhere
GaussDB A支持SQL on Anywhere,基于GaussDB A可以操作Hadoop、Oracle、Spark和other GaussDB A,構(gòu)筑起統(tǒng)一的大數(shù)據(jù)計(jì)算平臺(tái)。
1)? GaussDB A支持直接讀取存儲(chǔ)在Hadoop HDFS文件系統(tǒng)上的結(jié)構(gòu)化數(shù)據(jù),對(duì)外提供標(biāo)準(zhǔn)SQL語(yǔ)言查詢接口,能夠讓用戶只通過(guò)使用簡(jiǎn)單的SQL語(yǔ)言就能完成Hadoop原生數(shù)據(jù)的復(fù)雜分析查詢工作。
2)? GaussDB A支持通過(guò)Extension Connector統(tǒng)一訪問(wèn)其它大數(shù)據(jù)組件——將SQL發(fā)給其它大數(shù)據(jù)組件并接收?qǐng)?zhí)行結(jié)果,實(shí)現(xiàn)跨集群訪問(wèn)數(shù)據(jù)。目前Extension Connector為用戶提供了三種功能: SQL on Oracle、SQL on Spark和SQL on other GaussDB,分別用于連接Oracle數(shù)據(jù)庫(kù)、Spark集群和其他GaussDB集群。
計(jì)算資源彈性擴(kuò)容
Node Group在GaussDB A集群里指DN的集合,是集群中的子集群,從性質(zhì)上可以分為存儲(chǔ)子集群Storage Node Group和計(jì)算子集群Computing Node Group,存儲(chǔ)節(jié)點(diǎn)組用來(lái)承載本地表的數(shù)據(jù)存儲(chǔ),而計(jì)算節(jié)點(diǎn)組用來(lái)承載查詢的聚集、關(guān)聯(lián)計(jì)算。
計(jì)算資源彈性伸縮從MPPDB架構(gòu)的執(zhí)行層面提供了一種“運(yùn)行時(shí)變更計(jì)算資源的能力”,從根本上解決了MPPDB中計(jì)算和存儲(chǔ)耦合的局限性,能夠?qū)⒉樵兊膱?zhí)行運(yùn)行到指定的Node Group,從而達(dá)到計(jì)算能力隨業(yè)務(wù)需要?jiǎng)討B(tài)伸縮。計(jì)算資源彈性伸縮主要能夠?yàn)橛脩艚鉀Q計(jì)算資源隔離、計(jì)算資源彈性兩個(gè)方面的能力。
三方工具兼容
與業(yè)界主流數(shù)據(jù)庫(kù)工具的對(duì)接:
SQL自診斷
自動(dòng)診斷SQL性能問(wèn)題,為用戶提供性能優(yōu)化參考。
基于邏輯集群的資源和數(shù)據(jù)隔離
邏輯集群是通過(guò)Node Group技術(shù)來(lái)實(shí)現(xiàn)資源和數(shù)據(jù)的隔離。邏輯集群可以把物理集群的所有物理節(jié)點(diǎn)劃分成多個(gè)邏輯集群,每個(gè)物理節(jié)點(diǎn)只能屬于一個(gè)邏輯集群,用戶數(shù)據(jù)表只能分布在一個(gè)邏輯集群范圍內(nèi)。這樣不同邏輯集群的用戶數(shù)據(jù)是隔離的,邏輯集群所屬節(jié)點(diǎn)的資源主要提供給邏輯集群內(nèi)數(shù)據(jù)表的操作,同時(shí)供其他邏輯集群的作業(yè)交互查詢使用。企業(yè)將不同的業(yè)務(wù)部署在不同的邏輯集群上,既可以實(shí)現(xiàn)業(yè)務(wù)統(tǒng)一管理,也能保證業(yè)務(wù)之間數(shù)據(jù)隔離和資源隔離。
圖像特征檢索
海量圖像檢索的基本功能是通過(guò)圖像特征比對(duì),找出具有相同或相似特征的圖片,可在多種業(yè)務(wù)場(chǎng)景中應(yīng)用。以人像搜索為例的場(chǎng)景有:人臉打卡、軌跡搜索、安全布控、同行分析等。可以概括為以下幾個(gè)基本搜索能力:
1. 聯(lián)合查詢:結(jié)合時(shí)間、空間等信息進(jìn)行查詢。如:同行分析
2. 簡(jiǎn)單KNN查詢:僅在基礎(chǔ)數(shù)據(jù)集中搜索最接近的特征數(shù)據(jù)。如:安全布控
3. 在查詢的基礎(chǔ)上按照?qǐng)D像的特定屬性對(duì)搜索結(jié)果排序。如:軌跡搜索。
GaussDB A提供圖像特征檢索加速能力平臺(tái),集成短特征搜索的能力。可以將業(yè)務(wù)系統(tǒng)已經(jīng)提取的圖像特征,進(jìn)行再編碼分析,加快檢索效率,實(shí)現(xiàn)海量數(shù)據(jù)下的秒級(jí)搜索。
使用者需要將使用的第三方圖像特征提取算法根據(jù)GaussDB A平臺(tái)的接口要求,進(jìn)行適當(dāng)改造后,上傳給GaussDB A平臺(tái),從而GaussDB A可根據(jù)提供的算法為使用者提供合適的圖像檢索能力。
注:本文轉(zhuǎn)自“墨天輪”GaussDB頻道
GaussDB
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。