公務員期刊網 論文中心 正文

實時數據庫分區(qū)技術研究

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了實時數據庫分區(qū)技術研究范文,希望能給你帶來靈感和參考,敬請閱讀。

實時數據庫分區(qū)技術研究

摘要:大數據技術的應用為互聯(lián)網的發(fā)展提供了助力,但其也帶來了極高的數據處理壓力。它的應用使互聯(lián)網數據呈現(xiàn)數量級增長。對于數據的后臺管理與處置,是保障大數據的根本,尤其是云數據庫的正式商用,增加了此過程的難度?;诖?,采用流式計算框架,實現(xiàn)數據庫的實時分區(qū)管理,有效提高數據庫服務器的綜合負載,從而達到更高效能、更高質量的數據處理。

關鍵詞:流式計算框架;數據庫分區(qū);技術分析

0引言

數據庫對數據的負載能力可能成為大數據技術應用的瓶頸之一。針對此種情況,云環(huán)境下,利用M/R架構對數據計算采用一體化批量解決方案是一種可行的辦法。但是,實際應用過程中發(fā)現(xiàn),這一架構中的事務性ACID特征無法滿足當下的數據擴征趨勢,進而對數據庫服務器形成局部沖擊,同時,存在一定限制,無法納入數據庫計算體系。上述問題,在流式計算框架下,能夠有效均衡分配系統(tǒng),使數據庫負載得到更大的利用效能。

1基于流式計算框架的實時分區(qū)系統(tǒng)設計

從流式計算框架的基本特征角度來看,當數據接入到數據庫集群后,形成有效的集群管理并進行二次分配。集群按照不同數據庫的實時分區(qū)系統(tǒng)形成有效的水平拓展。不同水平拓展架構單元下,有系統(tǒng)屬性與權重的數據庫單元獨立實現(xiàn),數據庫單元內部形成有效的數據處理流程。具體而言,數據處理內部流程下,按照單一數據庫分區(qū)的最佳負載形成若干個有效的處理單元,處理單元包括負載預處理和分區(qū)算法引擎兩個必要體系,并將不同的數據處理單元形成分區(qū)策略,在固定時間節(jié)點更新,從而完成有效的數據存儲??傮w設計框架下,本系統(tǒng)主要涉及5項具體功能模塊,集群管理模塊、數據接入模塊、數據處理模塊、分區(qū)策略與動態(tài)管理模塊和水平擴展模塊。

2實時分區(qū)系統(tǒng)實現(xiàn)

以上述功能模塊分析設計為基礎,利用Storm系統(tǒng)原則開發(fā)與實現(xiàn)具體模塊,具體過程如下。在數據庫總體實現(xiàn)上,調用Storm下的WSPS通用架構進行實現(xiàn),即在Zook協(xié)議下控制數據接口的Flume與Kalfa框架,最終達到調用MySQL數據存儲協(xié)議的根本目的。落實到不同的模塊,需要通過各自的模塊屬性分別建立。其中,數據接入模塊與數據處置模塊并無本質性差異,本文研究中不再展開介紹。集群管理模塊實現(xiàn)中,采用Storm有效配置Zookeeper,從而重新計算數據包,并合理劃分任務節(jié)點。簡言之,這一部分設計實現(xiàn)了總體數據的分包處理,將龐大的總體數據流分包為各自具有獨立性的數據分包系統(tǒng),從而實現(xiàn)后續(xù)平行擴展數據庫分區(qū)架構的有效分配。負載預處理模塊的主要功能是實時計算與反饋所屬數據庫節(jié)點的負載情況[1]。實現(xiàn)過程中,采用ReadBolt協(xié)議對工作數據包進行負載映射計算,從而反饋實時的工作負載。此種計算模式具有兩方面優(yōu)勢:其一,通過負載映射方式表達負載極少占用數據處理的負載區(qū)間,進而使數據庫將更多的負載資源落實到數據處理層面;其二,負載映射與數據庫實際數據處理量正相關,能夠為該模塊提供高頻次的刷新功能,從而保障數據的實時性。落實到具體實現(xiàn)環(huán)節(jié)上,采用數據庫TPCC表查詢命令提取垂直的映射信息,如selectnumber、quantityfrom等。平行拓展模塊的調用遵循權重隨機性原則[2],即在相同權重下的數據庫群組隨機選擇。而權重遵循初始化,采用調整的方式進行。調整方式與數據庫分區(qū)所反饋的負載值正相關。具體實現(xiàn)過程中,初始化系統(tǒng)將全部數據庫單元的權重設定為1,獲得外部數據包后,隨機在權重為1(此時為全部數據庫單元)的數據庫單元中隨機選擇。此后,被選擇的數據庫對全部數據包進行數據處理,并反饋數據庫節(jié)點的實時負載值,平行拓展模塊則調整該數據庫的權重值為1+(實時負載×100)/100。當實時負載超過80%時,在權重依舊為“1”的數據庫群組中進行二次隨機選擇,引入另外的平行數據庫節(jié)點進行數據包的二次分配,從而達到數據庫負載均衡。從上述過程中不難發(fā)現(xiàn),利用實時負載的方式,形成了數據庫的實時分區(qū)功能,而被選定的數據庫隨著數據運算過程的累加,負載逐步下降,當數據處置完成后,服務器負載恢復到初始狀態(tài)。

3系統(tǒng)有效性審核及效果

通過上述設計與實現(xiàn),基本上完成了基于流式計算框架下的實時數據庫分區(qū)系統(tǒng)。理論上,應用該系統(tǒng)能夠有效改善數據庫群組內部的負載分配,從而提高數據處理效能,發(fā)揮數據庫群組的負載能力。為了進一步認證本系統(tǒng)的有效性,采用傳統(tǒng)數據庫架構和本文設計的數據庫分區(qū)系統(tǒng)處理相同數據,以總體負載比例和數據處理時間作為評價依據,認證本系統(tǒng)的有效性與實際效果。具體認證中,分為兩組實驗數據單元,一組為數據9張表格+5組事務類型數據,一組為90張表格+900字段+50組事務類型數據。對比數據后不難發(fā)現(xiàn),后者在數據結構、數據量上更為龐雜。實驗過程中,利用個人PC系統(tǒng)搭建傳統(tǒng)與流式計算框架實時分區(qū)數據庫系統(tǒng),分別采用外部數據導入的方式形成穩(wěn)定的數據流。系統(tǒng)配置、數據導入模式硬件與具體模式不存在顯著差異。經過試驗對比發(fā)現(xiàn),處置第一組數據時,傳統(tǒng)數據庫平均負載為32%,負載峰值為87%,總計處理時間為13s;流式計算框架實時分區(qū)數據庫系統(tǒng)的平均負載為32%,負載峰值為80%,總計處理時間為12s。由此可見,流式計算框架實時分區(qū)數據庫系統(tǒng)能夠有效降低數據庫的峰值負載,并在客觀上提高數據的處置效率。處置第二組數據時,傳統(tǒng)數據庫平均負載為59%,負載峰值為97%,總計處理時間為113s;流式計算框架實時分區(qū)數據庫系統(tǒng)平均負載為56%,負載峰值為80%,總計處理時間為73s。從這一結果不難發(fā)現(xiàn),流式計算框架實時分區(qū)數據庫系統(tǒng)降低了負載峰值,減少了處置時間,顯著優(yōu)于傳統(tǒng)數據庫架構。在兩組不同數據的對比中可以發(fā)現(xiàn),數據類型越復雜、數據規(guī)模越大,流式計算框架實時分區(qū)數據庫系統(tǒng)的優(yōu)勢越顯著。

4結語

本文以流式計算框架為基本理論工具,設計與實現(xiàn)實時分區(qū)數據庫系統(tǒng),并通過實際數據對比,分析二者間的差異與有效性。流式計算框架實時分區(qū)數據庫系統(tǒng)在降低負載峰值和減少處置時間方面,顯著優(yōu)于傳統(tǒng)數據庫架構,并能夠在更為復雜的數據處理情況下發(fā)揮更大效能。

參考文獻

[1]郭蒙雨,康宏,袁曉潔.基于流式計算框架的實時數據庫分區(qū)系統(tǒng)[J].計算機工程,2017,43(11):8-15.

[2]孫小涓,石濤,李冰,等.空間科學衛(wèi)星數據快速處理方法[J].計算機工程與科學,2018,284(8):19-25.

作者:黎宇軒 范怡敏 單位:南昌理工學院計算機信息工程學院