公務(wù)員期刊網(wǎng) 論文中心 正文

實(shí)時(shí)數(shù)據(jù)庫分區(qū)技術(shù)研究

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

實(shí)時(shí)數(shù)據(jù)庫分區(qū)技術(shù)研究

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

關(guān)鍵詞:流式計(jì)算框架;數(shù)據(jù)庫分區(qū);技術(shù)分析

0引言

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

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

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

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

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

4結(jié)語

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

參考文獻(xiàn)

[1]郭蒙雨,康宏,袁曉潔.基于流式計(jì)算框架的實(shí)時(shí)數(shù)據(jù)庫分區(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é)院