一種基于mpp構架的分布式關系型數據庫的制作方法
【技術領域】
[0001] 本發(fā)明涉及數據庫領域、大數據領域、分布式計算領域,為大數據處理提供一種基 于關系型數據庫的海量數據存儲解決方案,支持OLTP和OLAP兩種應用場景。
【背景技術】
[0002] 信息技術在最近幾年得到飛速發(fā)展,企業(yè)和社會的信息量呈幾何形式增長,這為 大數據的存儲和處理帶來巨大挑戰(zhàn),如何建設大數據集群,實現海量數據的存儲,是大數據 領域面臨的首要問題。
[0003] 基于hadoop開源大數據架構,是目前廣泛被采用的解決方法,通過hadoop提供的 分布式文件系統(tǒng),可以解決PB級數據存儲問題,同時通過hadoop生態(tài)圈下的產品,可以實 現列式存儲、數據倉庫級的數據管理,部分解決海量數據存取問題,但hadoop提供的存儲 解決方案存在以下不足,一是不支持SQL業(yè)務。目前大量業(yè)務系統(tǒng)都基于SQL開發(fā),無法順 利地迀移到hadoop平臺。二是單進程并行寫入能力不足。無論HDFS還是HBase其單進程 都不具備并行寫入能力,無法滿足海量信息采集需要。
【發(fā)明內容】
[0004] PowerDB是一種基于單服務器開發(fā)的數據庫系統(tǒng),本發(fā)明要解決的技術問題是針 對PowerDB關系型數據庫,建立分布式環(huán)境的集群,通過采用MPP架構技術,各節(jié)點之間 Shared Nothing,保證單點出現故障時,不影響集群工作,集群可橫向擴展,實現PB級數據 存儲,支持海量并行數據寫入。
[0005] 為滿足基于SQL的海量數據存儲需要,本發(fā)明提供一種基于MPP架構的分布 式關系型數據庫,該數據庫是分布式架構,包括四個模塊,分別是全局事務管理模塊 (Power-GTM)、負載均衡系統(tǒng)(Power-Proxy)、數據協(xié)調管理器(Power-COORD)、數據節(jié)點 (Power-DataNode);其中:
[0006] 全局事務管理器負責全局事務處理,負載均衡系統(tǒng)負責集群的負載均衡管理,集 群協(xié)調管理器用于協(xié)調各數據節(jié)點之間的工作,數據節(jié)點是基于PowerDB部署的關系數據 庫。
[0007] 作為本發(fā)明的進一步改進,一個集群一般只有一個全局事務管理模塊。
[0008] 作為本發(fā)明的進一步改進,單個全局事務管理模塊可以配置備用(StandBy)節(jié) 點。
[0009] 作為本發(fā)明的進一步改進,一個集群內可以有多個協(xié)調管理器。
[0010] 作為本發(fā)明的進一步改進,數據節(jié)點煩人物理結構和邏輯結構保持與PowerDB完 全一致,即在一臺服務器下維護著單個關系數據庫系統(tǒng)。
[0011] 可選的,為提高集群可靠性,GTM提供主/備模式,通過GTM-Standby配置,可在集 群中建立多個GTM節(jié)點,同一時間只有一個節(jié)點工作,數據通過流復制技術從GTM - host 同步到GTM-Standby,當GTM-host發(fā)生單點故障時,GTM-Standby自動成為GTM-host,承擔 全局事務管理工作。
[0012] 可選的,對于數據節(jié)點,其可靠性也是通過多節(jié)點冗余設計實現,即每個數據節(jié)點 設計一到多個Standby節(jié)點,數據在寫入過程中,通過流復制技術,同步到備用節(jié)點上,當 出現單點故障時,系統(tǒng)自動進行切換,以保證集群7*24小時工作。
[0013] 可選的,采用roundrobin算法進行建表操作,使分布式集群能最高效響應數據寫 入操作,考慮集群自身開銷,對于N個數據節(jié)點的集群,相比單服務器應用,能獲得約0. 7*N 的性能,滿足海量數據高并發(fā)寫入服務的需要。
[0014] 可選的,用java開發(fā)的基于windows、Linux下的自動安裝部署工具。
[0015] 可選的,分布式集群管理工具主要包括遠程登錄與管理、查詢分析管理器、集群監(jiān) 控工具等。
【附圖說明】
[0016] 圖1為本發(fā)明的自主可控分布式關系數據庫架構圖;
[0017] 圖2為本發(fā)明的簡單高效的分布式關系數據庫集群。
【具體實施方式】
[0018] 以下結合說明書附圖對本發(fā)明進一步詳細說明。應當理解為,此處所描述的實施 例僅用于解釋本發(fā)明,但并不限定本發(fā)明。
[0019] PowerDB是關系數據庫系統(tǒng),它基于開源數據庫postgreSQL進行開發(fā), PostgreSQL是一種支持并發(fā)作業(yè)、與ORACLE兼容較好的開源數據庫系統(tǒng),通過采用 MVCC(多版本并發(fā)控制)機制,提高數據寫入能力,通過將數據表空間切分成塊,從而支持 單機并發(fā),PowerDB關系型數據庫在保持postgreSQL內核不變情況下,對外部工具進行了 開發(fā),滿足業(yè)務系統(tǒng)開發(fā)、DBA工作的需要,支持SQL2008標準。
[0020] (1)自主可控分布式關系數據庫架構設計。
[0021] 系統(tǒng)支持主流Linux、windows環(huán)境搭建,建議使用X86的硬件環(huán)境,以節(jié)約集群建 設成本。
[0022] 考慮性能與管理問題,建議安裝在Linux下,如UBUNTU、RedHat、centOS等。
[0023] GTM對服務器可靠性要求較高,建議采用商用服務器,由于GTM不保存任何數據, 對硬盤無要求,內存要求也不高,一般16GB就能滿足需要。
[0024] 每個數據節(jié)點一般同時部署 Power-proxy、Power-COORD、Power-DataNode 三項功 能,從而最大限度利用服務器資源,需配置較高內存和硬盤資源,典型為至強E5CPU、64GB 內存、6TB硬盤。
[0025] (2)自主可控分布式關系數據庫架構規(guī)劃。
[0026] 以1個GTM節(jié)點和5個數據節(jié)點為例,作如下規(guī)劃:
[0027] 對于數據庫集群的每一個組件,應分配相應的機器名和端口號,以下是規(guī)劃表。
[0028]
[0029] (3)分布式數據庫管理機制
[0030] 通過GTM對全局事務進行管理,將數據庫的表橫向切分成多個數據塊,并分別存 儲到相應的數據節(jié)點(Power-DataNode),數據節(jié)點的運行機制與單機環(huán)境的數據庫無異, 它負責數據的插入、查詢、修改等服務。(1)數據插入過程。GTM根據分布式算法計算數據 應該放到哪個數據節(jié)點,算法包括hash算法(根據字段范圍生成hash函數,決定數據存儲 節(jié)點)、roundrobin算法(隨機分發(fā)到各數據節(jié)點)等。(2)單表數據查詢。GTM將查詢 命令分發(fā)到各數據節(jié)點,各點將查詢結果上傳到GTM,由GTM組織好查詢數據集,送給用戶。 (3)多表關聯(lián)查詢。由Power-COORD協(xié)調管理器組織,一般每個數據節(jié)點上部署有協(xié)調管理 器,協(xié)調管理器負責管理從其它節(jié)點查詢到的關聯(lián)數據,并與本節(jié)點數據進行關聯(lián)計算,形 成單節(jié)點查詢結果。(4)索引。索引采用兩層架構,即每個數據節(jié)點維護自己的索引,GTM 也維護一個簡單索引,對索引響應過程分別發(fā)送命令到各數據節(jié)點。
[0031] (4)分布式數據庫初始化
[0032] 將應用程序部署到各節(jié)點的相關目錄,如/usr/local/PowerDB目錄。
[0033]