?

淺談分布式數據庫關鍵技術研究與應用

2023-09-29 01:28熊紫騰楊立行
江西電力 2023年4期
關鍵詞:分片全局分布式

唐 赫,熊紫騰,劉 松,楊立行

(1.廣東佛山供電局,廣東 佛山 528000;2.國網江西省電力有限公司供電服務管理中心,江西南昌 330096;3.上海電力大學,上海 200090)

0 引言

現在國內大部分信息系統的數據存儲方式是采用“小型機+高端數據庫+高端磁盤存儲陣列”的集中方式來實現。隨著對接的應用系統越來越多,數據源越來越豐富,數據的運算量越來越大,數據庫服務器的壓力也日益增長,從而引起網速慢、卡頓的現象。針對這一情況,文中介紹“分布式數據庫集群系統”,通過對分布式數據庫的相關核心技術進行研究分析,重新設計、布置并實現數據庫服務器的高性能。分布式數據庫集群系統由服務器集群、中間件、分布式系統組成,配置并行計算等多元技術構建的基礎型軟件,為海量數據的存儲、計算、檢索和查詢提供強勁的支撐和動力。

1 系統原理和技術特點

1.1 分布式數據庫概念

分布式數據庫的各組信息數據保存在網絡的不同節點上,在邏輯上這些節點同屬于一個系統,即在邏輯上分布式數據庫是一個整體,但在物理上分布式數據庫又具有分布性。因此,在邏輯上分布式數據庫就稱為全局數據庫,物理上又有局部數據庫的概念。分布式數據庫系統由2 部分組成:一是分布式數據庫;二是分布式數據庫管理系統[1]。分布式數據庫管理系統作為分布式數據庫的管理軟件,專門負責分布式系統中數據的存儲、讀寫、邏輯的一致性和完備性的管理。同時由于數據分布在系統的各個節點,因此在管理機制上還必須統籌協調計算機網絡的通信規范、協議、調度和分布管理。

1.2 分布式數據庫架構

采集系統分布式數據庫采用“主站-子節點”兩級部署模式,主站側系統主要承擔數據管理、調度管控、業務應用數據發布、統一接口交互、運行管理監測等任務,子節點主要負責采集設備運維管理、用電消息數據采集、用戶計量監測、采集任務的執行、計量異常診斷等營銷采集任務,完成指令傳送、交互數據共享、業務應用互動、數據傳輸等服務支撐。系統節點之間采用專用的信道,實現高效、靈活、安全的數據交互體系,支撐業務數據的抽取、任務策略的下發、微網應用的管理、業務需求的收集、采集任務的管控以及核查驗證等應用場景。采集系統分布式數據庫物理架構運用專用服務器或物理獨立的異地數據備份資源,目的是為了實現分域管理、數據共享、高效互通、跨域安全的構想,主站側系統物理上獨立布置,子節點側系統各自獨立分布在全省網絡的各節點上,分別為采集系統的各項業務、數據交互提供數據信息支撐,對外交互接口都分別設置了安全隔離帶,確保系統安全穩定運行。物理架構如圖1所示。

圖1 采集系統分布式數據庫物理構架圖

1.3 分布式數據庫各類節點的分工

1)應用類,主要業務內容包括前端框架、微服務框架、部署框架、用能優化管理架、采集運維、計量在線監測、用戶負荷監測、控制監測、線損監測、配電監測、用電監測、報表工具、圖形工具、接入管理、鏡像管理、容器管理、服務管理等。

2)計算類,主要負責采集數據隊列、采集緩存數據、異常診斷、批量計算、線損計算、實時計算、負荷計算、數據分析、負荷預測、電量預測等業務。

3)存儲類,主要負責緩存庫、緩存數據、實時庫、實時切面、采集數據、報文數據、采集全量庫、標簽數據、業務分析庫、檔案數據、分析數據及管理。

4)通訊類,主要負責設備連接、設備接入、安全認證、數據采集、規約解析、任務執行、通信代理、數據召測等業務。

1.4 分布式數據庫的技術指標

1)分布式數據庫的整體要求

(1)系統基于分布式結構布置,具有可彈性拓展的能力,某一節點的故障不會影響其它性能。

(2)節點故障恢復的時長應≤2 h。

(3)系統具備容災、災備自動切換的能力,系統核心業務不發生停頓中斷。

2)分布式數據庫的應用要求

(1)系統具有完整的應用服務治理體制。

(2)應用頁面彈出的時間≤1s。

(3)數據訪問響應時間≤3s。

(4)系統升級過程中不能發生業務中斷。

3)分布式數據庫的計算、存儲要求

(1)可滿足采集全量數據的存儲需求。

(2)具備各項業務實時計算、大規模、大批量數據計算的能力。

(3)能及時、實時地滿足各類采集業務的統計、分析、計算。

4)分布式數據庫的通信能力

(1)能滿足數據按需采集需求。

(2)能實現分鐘級的實時數據采集能力。

(3)具有命令優先級動態調控的功能。

(4)在信道及設備正常的情況下,業務指令交互響應時間≤3 s。

(5)具備支持全量終端并發上報報文,可快速解析的能力。

5)數據信息交互的需求

(1)可完成異構數據的批量同步,能滿足不同系統間數據申請。

(2)交互數據的實時發布延時≤5 s。

(3)外部系統數據交互的響應延遲≤5 s。

1.5 分布式數據庫的基本特點

分布式數據庫所具備的四個基礎特點:

1)物理上具有分布性:分布式數據庫的信息數據是保存在系統網絡的多個節點上的,而不是存儲在一個站點上。

2)邏輯具有整體性:雖然分布式數據庫系統數據信息分布在系統網絡的各個節點上,但在邏輯上,它們均由分布式數據庫管理系統實施統一協調管理,被全局所有用戶共享,在系統邏輯上是一個統一的整體。

3)站點具備的自治性:每一個節點上的信息數據均可由當地本土的局部數據庫管理系統進行自治協調管理和問題自治處理,達到各節點的自應用。

4)節點間協同協作性:雖然各個站點都具有高度的自治能力,但又能相互配合,形成一個整體。

1.6 分布式數據庫的獨特特點

1)數據的獨立性:分布式數據庫系統中存儲的數據具有邏輯獨立性、物理獨立性,還有數據的分布透明性的特點。

2)自治與集中相統一的結合機制:系統中每個節點上的信息均可供該節點所有用戶共享,業務流程上由本地數據庫管理系統進行管理;具有全局權限的用戶可在全系統范圍內共享所有節點的數據,全局的數據共享由系統集中的控制流程進行統一控制[2]。

3)增大數據的冗余度:要實現分布式數據庫系統的可靠性、可用性和系統性能的提高,可通過擴大數據冗余度來實現??刹捎迷诙鄠€節點上保存數據副本的方式來保證可靠性的提高,即使系統的某一節點發生故障,系統可以不受影響繼續正常工作;同時系統會自動將最近的數據副本作為備份繼續完成操作,這樣既減少通信頻次,又確保了整個系統的性能。

4)事務管理的分布性:事務管理的分布特點也同時包括事務的執行與事務的管理兩方面的分布性。系統將一個全局的事務進行分解,將任務分解成多個子任務,分配給各節點執行。同理,事務諸如隔離性、原子性、持久性、一致性、包括事務的恢復等其它特性,也同樣具有分布性的特點。

2 分布式數據庫關鍵技術

2.1 分布式集群數據的一致性和高可靠性技術

分布式集群數據的一致性是指數據節點分組間的數據一致性。數據一致性可采用數據的復制技術來完成,主要有三種方式:

1)同步模式。將主數據節點的數據可用性設置為最高級別,當網絡系統故障,或備用數據庫不能使用時,系統會自動掛起主節點數據,以確保主數據節點和備用數據節點之間高度一致。在這種情況下,日志管理流程就自動將日志記錄從主數據節點發送到其備份數據庫保存,在沒有收到數據發送成功的消息之前,主數據庫的事務就不會提交。當主數據節點發生故障時,由于所有需要上交的事務都已經從主數據庫同步到備用數據庫,所以根本就不會發生數據丟失情況。

2)純異步模式。在主數據節點的日常、正常操作過程中,無需對數據是否已經同步到備用數據節點進行確認,就直接執行本地操作,因此主數據庫的性能根本不受該種操作的影響。即使備用數據庫發生故障也不會引起主數據庫掛起;當備用數據庫恢復可用的時候,主、備數據節點將繼續同步數據。在一些應用場景中,如對于大批量數據更新的事務,因為只有采用這種異步的方式,才能完成較好的大數據量長事務支持,不會因為從節點的復制而影響主節點后續寫事務的執行。

3)半同步模式。半同步模式也為主數據節點提供了較高級別的保護。相比同步模式,若備用數據節點不能用時,主數據庫也不掛起,而是降級為最大性能模式運行。主數據節點仍將繼續運行,但主數據庫和備用數據庫之間就可能出現數據不一致的現象。在備用數據節點可用的情況下,主數據節點的運行狀態為同步模式。

2.2 分布式數據庫彈性計算技術

分布式數據庫的自動分庫、分表就是數據的分片。分布式數據庫的最為顯著的特征就是數據的分片。在分布式數據庫中,全局數據庫的邏輯分割而產生各節點的各個局部數據庫通過邏輯組合而成全局數據庫,各節點的局部數據庫。存放在分布式數據庫中的單位就是存放數據的邏輯片段。數據分片的總體邏輯如圖2所示。

圖2 數據分片的總體邏輯

1)基于表的水平拆分策略

水平分片主要解決的問題是單表中數據量增加產生的壓力。水平切分的作用,就是將一個數據表按照約定的規則,將數據分散到不同表或者數據庫里。水平切分不會破壞數據表之間的關系,不僅可以將有關系的數據表放在同一個庫里,既不會對應用端的業務需求產生影響,也能從根本上分解大數據量的難題。水平分片路由算法主要對關鍵字段通過Hash/Range/List等各種拆分方式,從設計上應支持用戶可自定義的拆分算法。

2)基于字段的垂直拆分策略

垂直拆分類似于把表按模塊劃分到不同數據庫。垂直分片把全局關系的屬性集分成若干子集,形成幾個垂直片段。在垂直劃分時,每一個分片都是原始關系中所有數據列的一個子集合。全局關系屏蔽了數據的物理分布,提供了數據分布的又一個透明性。

3)基于E-R模型的分片策略

傳統的數據拆分方式都是基于表格的,每張表數據都按照拆分規則被獨立的拆分到各數據節點上?;贓-R 模型的分片策略針對的是拆分表存在E-R關聯的。將一組有關聯關系的表分組進行存放。每個Table Group 由主表和子表組成。子表的存儲依賴于主表,在物理上緊密相連。

4)基于全局表的分片策略

全局表通常是系統的字典表,指那些變動不頻繁、數據規模小、卻又與很多業務表有關聯關系的表。針對這一類表的分片策略主要包括全局表的插入、更新操作會在各個數據節點上執行,通過事務來保障數據的一致;全局表的查詢只從一個數據節點讀??;全局表可以跟任意表做表連接操作。

2.3 同步復制的影響

業務連續性,是指分布式數據庫的使用者,能否一直訪問和操作數據庫,當在數據節點主備切換的時候,會不會影響到分布式數據庫的業務連續性。由于主備上存儲了冗余的數據,數據庫性能和只有一份數據相比較,所以主數據庫所負擔業務壓力的能力會受到一些影響。

1)數據一致性與業務連續性(見圖3)

同步方式是唯一不通過數據補償即能保證數據一致性的手段,即在主節點突然完全不可用時,同步方式能保證數據不丟失。

異步方式因為數據復制存在可能延遲無法在上述場景保證數據不丟失,所以為提升數據一致性需進行數據補償,補償數據時需要一定的時間。因此異步方式在業務連續性和數據一致性之間存在取舍。

2)數據一致性與數據庫性能(見圖4)

圖4 數據一致性與數據庫性能的關系

同步方式會有相對較大的數據庫性能損失,換來的是主備數據完全一致,不會產生數據丟失。

半同步的方式,會用一部分的數據庫性能損失換取主備數據較小的差異,使最壞情況下丟失的數據在一定范圍內。

純異步方式中,擁有最好的性能,但會產生較大的主備數據差異,存在丟失數據過多的風險。

2.4 分布式任務引擎關鍵技術

分布式任務引擎是建立在硬件資源層之上,能不間斷的響應用戶發出的任務,再根據當前集群中所有節點的壓力,按邏輯分配任務,并能夠對任務的處理狀態進行實時的追蹤,保障任務執行的高可靠和最終一致。分布式任務引擎主要包括分布式應用協調服務、任務引擎調度節點、任務引擎執行節點[3]。

2.5 高可靠故障檢測與處理技術

節點故障的種類分為:數據庫故障、操作系統故障、硬件故障、高可靠軟件的故障所引起的節點異常、或失去響應。高可用組件在檢測到故障時,如不能在主節點上自動恢復服務,則自動將系統切換到備機上,避免單點故障。

2.6 高可靠-節點切換時數據一致性保障

將數據庫日志通過塊復制技術在infiniband高速網絡環境下或共享存儲設備同步到備機,當主備有延遲時發生切換,可直接執行二進制日志到備庫??煞乐挂蛑鳈C無法訪問,造成數據不一致的情況發生。

2.7 分布式數據庫的訪問流程

若要實現全局訪問,需按照全局數據模式使用全局訪問語句對一個或多個節點的數據庫并行進行訪問。進行全局訪問通常要經過以下步驟:

1)首先進行任務分解,將全局任務分解為若干個邏輯子任務,其中的每一個子任務又對應其中一個節點局部數據庫中的數據,分解后的子任務同樣是執行全局語查詢句執行的。

2)若全局任務執行語句與局部數據庫的語句不一致,并還要將其每一個邏輯的子任務都轉換為對應的局部數據庫的本地語句,并發送到相應的節點局部數據庫去執行。

3)各節點的子訪問情況回送并合成為最終的訪問結果。各個訪問分解都具有相應的系統性能,為了達到最優的系統性能,還應加上對應的訪問優化器進行輔助,查詢過程如圖5所示。

圖5 分布式數據庫查詢流程

通過查詢分解程序選定出的執行計劃,需要說明訪問哪一些節點的局部數據庫,怎樣組合中間查詢結果,通過哪個站點完成全局處理等,最后再啟動操作查詢計劃等。

2.8 分布式數據庫集群的實施

分布式數據庫集群系統包含前置中間件、應用客戶端、單節點HA、集群監控管理、后置中間件等五個基本組件,其中前四個組件(前置中間件、應用客戶端、單節點組HA、集群監控管理)在本階段需要開發和實施,最后一個組件(后置中間件)進行方案設計和原型驗證[4]??傮w架構如圖6所示。

圖6 分布式數據庫的技術架構

3 安全災備設計

3.1 分布式數據庫的安全防護

分布式數據庫的安全防護根據《國家電網公司用電信息采集系統信息安全防護優化方案》(修訂版),對用電消息采集各項業務的子域和數據信息交互服務功能都有不同安全級別的防護安全設計。分布式數據庫的防護安全方面,采集系統與各業務應用系統的數據交互都利用采集系統本身具備的防護安全設施進行安全防護,但重點是對新增加的諸如新能源、微網、充電站等新交互接口進行重點防護,在主站側用電消息采集系統需新建安全認證服務,采集終端的安全防護方面,安裝了終端“設備指紋”認證模塊,模塊具有采集終端安全在線監測功能,具有嚴格防范未授權設備接入的功能特點;在數據防護安全方面,通過對數據進行分類管理、分級存儲,確保數據的脫敏、共享、監測以及訪問權限控制。分布式數據庫的安全防護如圖7所示。

圖7 分布式數據庫的安全防護圖

3.2 分布式數據庫的災備設計

分布式數據庫需統一規劃部署災備中心的機房、數據服務器、應用服務器、交互接口服務器、網絡以及其它各類軟硬件資源。將各項業務信息、數據進行分級存儲、分類管理,做到全量數據異地備份,實現關鍵數據的跨地區多地備份,做到一個系統一個方案,做好容災系統建設,構建完善、可靠的容災、災備切換方案,達到終端的不離線、服務不間斷、業務不中斷、訪問流暢和數據共享不間斷的環境。

4 結語

分布式數據集群系統的特點就是性能優異、吞吐率高,解決了數據庫水平擴展的問題,架構隨業務增長需要靈活擴展;系統各部分性能均衡,不存在明顯的性能瓶頸;具有較好的性價比,底層數據庫節點支持開源數據庫,使得數據庫采購成本大幅下降,系統結構體系穩定性良好。系統中的關鍵點需盡量減少,這樣可以避免單點失效而影響系統功能。確保系統良好的容錯機制和系統的穩定性、數據一致性和良好的可擴展性,更加方便地完成數據存儲和計算功能的擴展。業務架構和數據庫架構解耦,可靈活定義用戶特定的數據訪問接口。訪問節點隔離數據源,便于用戶特定的訪問安全和數據安全控制,具有可靠的安全性。

猜你喜歡
分片全局分布式
上下分片與詞的時空佈局
Cahn-Hilliard-Brinkman系統的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優化方法
基于模糊二分查找的幀分片算法設計與實現
落子山東,意在全局
分布式光伏熱錢洶涌
分布式光伏:爆發還是徘徊
基于DDS的分布式三維協同仿真研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合