前言:想要寫出一篇引人入勝的文章?我們特意為您整理了實時數(shù)據(jù)庫分區(qū)技術(shù)研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:大數(shù)據(jù)技術(shù)的應用為互聯(lián)網(wǎng)的發(fā)展提供了助力,但其也帶來了極高的數(shù)據(jù)處理壓力。它的應用使互聯(lián)網(wǎng)數(shù)據(jù)呈現(xiàn)數(shù)量級增長。對于數(shù)據(jù)的后臺管理與處置,是保障大數(shù)據(jù)的根本,尤其是云數(shù)據(jù)庫的正式商用,增加了此過程的難度?;诖?,采用流式計算框架,實現(xiàn)數(shù)據(jù)庫的實時分區(qū)管理,有效提高數(shù)據(jù)庫服務器的綜合負載,從而達到更高效能、更高質(zhì)量的數(shù)據(jù)處理。
關(guān)鍵詞:流式計算框架;數(shù)據(jù)庫分區(qū);技術(shù)分析
0引言
數(shù)據(jù)庫對數(shù)據(jù)的負載能力可能成為大數(shù)據(jù)技術(shù)應用的瓶頸之一。針對此種情況,云環(huán)境下,利用M/R架構(gòu)對數(shù)據(jù)計算采用一體化批量解決方案是一種可行的辦法。但是,實際應用過程中發(fā)現(xiàn),這一架構(gòu)中的事務性ACID特征無法滿足當下的數(shù)據(jù)擴征趨勢,進而對數(shù)據(jù)庫服務器形成局部沖擊,同時,存在一定限制,無法納入數(shù)據(jù)庫計算體系。上述問題,在流式計算框架下,能夠有效均衡分配系統(tǒng),使數(shù)據(jù)庫負載得到更大的利用效能。
1基于流式計算框架的實時分區(qū)系統(tǒng)設(shè)計
從流式計算框架的基本特征角度來看,當數(shù)據(jù)接入到數(shù)據(jù)庫集群后,形成有效的集群管理并進行二次分配。集群按照不同數(shù)據(jù)庫的實時分區(qū)系統(tǒng)形成有效的水平拓展。不同水平拓展架構(gòu)單元下,有系統(tǒng)屬性與權(quán)重的數(shù)據(jù)庫單元獨立實現(xiàn),數(shù)據(jù)庫單元內(nèi)部形成有效的數(shù)據(jù)處理流程。具體而言,數(shù)據(jù)處理內(nèi)部流程下,按照單一數(shù)據(jù)庫分區(qū)的最佳負載形成若干個有效的處理單元,處理單元包括負載預處理和分區(qū)算法引擎兩個必要體系,并將不同的數(shù)據(jù)處理單元形成分區(qū)策略,在固定時間節(jié)點更新,從而完成有效的數(shù)據(jù)存儲??傮w設(shè)計框架下,本系統(tǒng)主要涉及5項具體功能模塊,集群管理模塊、數(shù)據(jù)接入模塊、數(shù)據(jù)處理模塊、分區(qū)策略與動態(tài)管理模塊和水平擴展模塊。
2實時分區(qū)系統(tǒng)實現(xiàn)
以上述功能模塊分析設(shè)計為基礎(chǔ),利用Storm系統(tǒng)原則開發(fā)與實現(xiàn)具體模塊,具體過程如下。在數(shù)據(jù)庫總體實現(xiàn)上,調(diào)用Storm下的WSPS通用架構(gòu)進行實現(xiàn),即在Zook協(xié)議下控制數(shù)據(jù)接口的Flume與Kalfa框架,最終達到調(diào)用MySQL數(shù)據(jù)存儲協(xié)議的根本目的。落實到不同的模塊,需要通過各自的模塊屬性分別建立。其中,數(shù)據(jù)接入模塊與數(shù)據(jù)處置模塊并無本質(zhì)性差異,本文研究中不再展開介紹。集群管理模塊實現(xiàn)中,采用Storm有效配置Zookeeper,從而重新計算數(shù)據(jù)包,并合理劃分任務節(jié)點。簡言之,這一部分設(shè)計實現(xiàn)了總體數(shù)據(jù)的分包處理,將龐大的總體數(shù)據(jù)流分包為各自具有獨立性的數(shù)據(jù)分包系統(tǒng),從而實現(xiàn)后續(xù)平行擴展數(shù)據(jù)庫分區(qū)架構(gòu)的有效分配。負載預處理模塊的主要功能是實時計算與反饋所屬數(shù)據(jù)庫節(jié)點的負載情況[1]。實現(xiàn)過程中,采用ReadBolt協(xié)議對工作數(shù)據(jù)包進行負載映射計算,從而反饋實時的工作負載。此種計算模式具有兩方面優(yōu)勢:其一,通過負載映射方式表達負載極少占用數(shù)據(jù)處理的負載區(qū)間,進而使數(shù)據(jù)庫將更多的負載資源落實到數(shù)據(jù)處理層面;其二,負載映射與數(shù)據(jù)庫實際數(shù)據(jù)處理量正相關(guān),能夠為該模塊提供高頻次的刷新功能,從而保障數(shù)據(jù)的實時性。落實到具體實現(xiàn)環(huán)節(jié)上,采用數(shù)據(jù)庫TPCC表查詢命令提取垂直的映射信息,如selectnumber、quantityfrom等。平行拓展模塊的調(diào)用遵循權(quán)重隨機性原則[2],即在相同權(quán)重下的數(shù)據(jù)庫群組隨機選擇。而權(quán)重遵循初始化,采用調(diào)整的方式進行。調(diào)整方式與數(shù)據(jù)庫分區(qū)所反饋的負載值正相關(guān)。具體實現(xiàn)過程中,初始化系統(tǒng)將全部數(shù)據(jù)庫單元的權(quán)重設(shè)定為1,獲得外部數(shù)據(jù)包后,隨機在權(quán)重為1(此時為全部數(shù)據(jù)庫單元)的數(shù)據(jù)庫單元中隨機選擇。此后,被選擇的數(shù)據(jù)庫對全部數(shù)據(jù)包進行數(shù)據(jù)處理,并反饋數(shù)據(jù)庫節(jié)點的實時負載值,平行拓展模塊則調(diào)整該數(shù)據(jù)庫的權(quán)重值為1+(實時負載×100)/100。當實時負載超過80%時,在權(quán)重依舊為“1”的數(shù)據(jù)庫群組中進行二次隨機選擇,引入另外的平行數(shù)據(jù)庫節(jié)點進行數(shù)據(jù)包的二次分配,從而達到數(shù)據(jù)庫負載均衡。從上述過程中不難發(fā)現(xiàn),利用實時負載的方式,形成了數(shù)據(jù)庫的實時分區(qū)功能,而被選定的數(shù)據(jù)庫隨著數(shù)據(jù)運算過程的累加,負載逐步下降,當數(shù)據(jù)處置完成后,服務器負載恢復到初始狀態(tài)。
3系統(tǒng)有效性審核及效果
通過上述設(shè)計與實現(xiàn),基本上完成了基于流式計算框架下的實時數(shù)據(jù)庫分區(qū)系統(tǒng)。理論上,應用該系統(tǒng)能夠有效改善數(shù)據(jù)庫群組內(nèi)部的負載分配,從而提高數(shù)據(jù)處理效能,發(fā)揮數(shù)據(jù)庫群組的負載能力。為了進一步認證本系統(tǒng)的有效性,采用傳統(tǒng)數(shù)據(jù)庫架構(gòu)和本文設(shè)計的數(shù)據(jù)庫分區(qū)系統(tǒng)處理相同數(shù)據(jù),以總體負載比例和數(shù)據(jù)處理時間作為評價依據(jù),認證本系統(tǒng)的有效性與實際效果。具體認證中,分為兩組實驗數(shù)據(jù)單元,一組為數(shù)據(jù)9張表格+5組事務類型數(shù)據(jù),一組為90張表格+900字段+50組事務類型數(shù)據(jù)。對比數(shù)據(jù)后不難發(fā)現(xiàn),后者在數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)量上更為龐雜。實驗過程中,利用個人PC系統(tǒng)搭建傳統(tǒng)與流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng),分別采用外部數(shù)據(jù)導入的方式形成穩(wěn)定的數(shù)據(jù)流。系統(tǒng)配置、數(shù)據(jù)導入模式硬件與具體模式不存在顯著差異。經(jīng)過試驗對比發(fā)現(xiàn),處置第一組數(shù)據(jù)時,傳統(tǒng)數(shù)據(jù)庫平均負載為32%,負載峰值為87%,總計處理時間為13s;流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)的平均負載為32%,負載峰值為80%,總計處理時間為12s。由此可見,流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)能夠有效降低數(shù)據(jù)庫的峰值負載,并在客觀上提高數(shù)據(jù)的處置效率。處置第二組數(shù)據(jù)時,傳統(tǒng)數(shù)據(jù)庫平均負載為59%,負載峰值為97%,總計處理時間為113s;流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)平均負載為56%,負載峰值為80%,總計處理時間為73s。從這一結(jié)果不難發(fā)現(xiàn),流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)降低了負載峰值,減少了處置時間,顯著優(yōu)于傳統(tǒng)數(shù)據(jù)庫架構(gòu)。在兩組不同數(shù)據(jù)的對比中可以發(fā)現(xiàn),數(shù)據(jù)類型越復雜、數(shù)據(jù)規(guī)模越大,流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)的優(yōu)勢越顯著。
4結(jié)語
本文以流式計算框架為基本理論工具,設(shè)計與實現(xiàn)實時分區(qū)數(shù)據(jù)庫系統(tǒng),并通過實際數(shù)據(jù)對比,分析二者間的差異與有效性。流式計算框架實時分區(qū)數(shù)據(jù)庫系統(tǒng)在降低負載峰值和減少處置時間方面,顯著優(yōu)于傳統(tǒng)數(shù)據(jù)庫架構(gòu),并能夠在更為復雜的數(shù)據(jù)處理情況下發(fā)揮更大效能。
參考文獻
[1]郭蒙雨,康宏,袁曉潔.基于流式計算框架的實時數(shù)據(jù)庫分區(qū)系統(tǒng)[J].計算機工程,2017,43(11):8-15.
[2]孫小涓,石濤,李冰,等.空間科學衛(wèi)星數(shù)據(jù)快速處理方法[J].計算機工程與科學,2018,284(8):19-25.
作者:黎宇軒 范怡敏 單位:南昌理工學院計算機信息工程學院