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