【摘要】針對(duì)目前煤礦業(yè)務(wù)系統(tǒng)中,由于各種安全生產(chǎn)的相關(guān)數(shù)據(jù)過于龐大,導(dǎo)致在數(shù)據(jù)前端展示時(shí)導(dǎo)致系統(tǒng)的響應(yīng)時(shí)間和性能以及用戶的體驗(yàn)度較差的問題,本文設(shè)計(jì)了一種基于增量歸集的大數(shù)據(jù)量的數(shù)據(jù)查詢方法。該方法通過定期把數(shù)據(jù)增量歸集到中間結(jié)果表中的方式,提高了大數(shù)據(jù)量查詢的性能。應(yīng)用結(jié)果表明,該系統(tǒng)的設(shè)計(jì)方式可提高數(shù)據(jù)處理速度,降低數(shù)據(jù)存儲(chǔ)空間,為查詢結(jié)果的展示提供了堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)支撐。
【關(guān)鍵詞】增量歸集;數(shù)據(jù)查詢;大數(shù)據(jù);定期;中間結(jié)果
引言
目前,在煤礦業(yè)務(wù)系統(tǒng)中,業(yè)務(wù)數(shù)據(jù)量非常龐大[1];每次進(jìn)行業(yè)務(wù)數(shù)據(jù)查詢或統(tǒng)計(jì)時(shí),持續(xù)時(shí)間比較長(zhǎng),消耗資源比較大。傳統(tǒng)的查詢和統(tǒng)計(jì)方式,是直接從業(yè)務(wù)數(shù)據(jù)表中進(jìn)行處理,不僅影響應(yīng)用系統(tǒng)的業(yè)務(wù)處理性能,而且查詢和統(tǒng)計(jì)性能非常差。
為了提升查詢或統(tǒng)計(jì)性能,采用定期將查詢結(jié)果定期的增量歸集到中間數(shù)據(jù)表的方式,在歸集查詢結(jié)果時(shí),由于數(shù)據(jù)量比較大,為提升歸集效率,不能采用全量歸集的方式,而采用增量歸集的方式來處理。這種方式,每次進(jìn)行查詢或統(tǒng)計(jì)時(shí),只需要從中間數(shù)據(jù)表中進(jìn)行展現(xiàn)即可,而不需要在查詢過程中進(jìn)行即時(shí)計(jì)算和歸集,大大減少了查詢的時(shí)間,降低了資源消耗,提高了查詢效率。
1.系統(tǒng)設(shè)計(jì)
本文提出一種基于增量歸集的大數(shù)據(jù)量的數(shù)據(jù)查詢方法,通過定期把數(shù)據(jù)增量歸集到中間結(jié)果表中的方式,提高大數(shù)據(jù)量查詢的性能[2]。本文把基于單個(gè)數(shù)據(jù)表的增量結(jié)構(gòu)稱為增量單元(Increment Unit);把增量數(shù)據(jù)的捕獲規(guī)則稱為增量包(Increment Package)。一個(gè)增量包由一個(gè)或者多個(gè)增量單元組成[3]。
一種基于增量歸集的大數(shù)據(jù)量的數(shù)據(jù)查詢方法,其特征在于包括以下四個(gè)步驟:A:增量規(guī)則設(shè)計(jì);B:設(shè)置增量捕獲調(diào)度執(zhí)行計(jì)劃;C:執(zhí)行增量數(shù)據(jù)定期歸集;D:執(zhí)行數(shù)據(jù)統(tǒng)計(jì)結(jié)果查詢。
在步驟A中,為實(shí)現(xiàn)定義增量數(shù)據(jù)捕獲規(guī)則,它包括以下內(nèi)容:
(1)定義增量單元
進(jìn)一步說明,增量單元的結(jié)構(gòu)包括增量單元對(duì)應(yīng)的數(shù)據(jù)表、增量的內(nèi)容字段、數(shù)據(jù)表的主鍵字段、數(shù)據(jù)表的時(shí)間戳字段,其中數(shù)據(jù)表的時(shí)間戳字段只用于時(shí)間戳模式的增量數(shù)據(jù)捕獲模式[4]。
(2)定義增量包
進(jìn)一步說明,增量包中需要指定增量數(shù)據(jù)的捕獲模式,本發(fā)明中提供的捕獲模式包括快照表模式、時(shí)間戳模式、觸發(fā)器模式、數(shù)據(jù)庫日志模式。
(3)啟用增量包并做增量初始準(zhǔn)備
進(jìn)一步說明,在做增量初始過程中,要根據(jù)增量單元的結(jié)構(gòu),創(chuàng)建增量數(shù)據(jù)表,增量數(shù)據(jù)表的結(jié)構(gòu)除了包括增量單元對(duì)應(yīng)的內(nèi)容字段和主鍵字段,還包括時(shí)時(shí)間戳字段。
(4)增量訂閱
進(jìn)一步說明,在訂閱處理中要指定訂閱的用途,訂閱的增量包,訂閱同步過程中需要生成的存儲(chǔ)過程的名稱及參數(shù)。
進(jìn)一步說明,一個(gè)增量包可以由一個(gè)或多個(gè)增量單元組成,一個(gè)增量包可被多次訂閱;增量單元、增量包、增量包的實(shí)體結(jié)構(gòu)關(guān)系所示。
在步驟B中,定義調(diào)度計(jì)劃,設(shè)置調(diào)度自動(dòng)增量歸集的任務(wù),并設(shè)置任務(wù)執(zhí)行的頻率和時(shí)間周期以及相關(guān)的執(zhí)行策略[5]。
在步驟C中,定期執(zhí)行增量數(shù)據(jù)歸集,它包括以下的步驟:
根據(jù)步驟A中定義的增量捕獲規(guī)則捕獲增量數(shù)據(jù);
把增量數(shù)據(jù)加載到步驟A(3)中定義的增量數(shù)據(jù)表中;
根據(jù)步驟A中增量訂閱的信息,生成增量數(shù)據(jù)同步到查詢中間結(jié)果表中的存儲(chǔ)過程;
執(zhí)行步驟(3)中創(chuàng)建的存儲(chǔ)過程,創(chuàng)建查詢中間結(jié)果表,并把步驟(1)中捕獲的增量數(shù)據(jù)同步到查詢中間結(jié)果表中。
在步驟D中,輸入查詢統(tǒng)計(jì)的條件,從步驟C(4)中創(chuàng)建中查詢中間結(jié)果表中分頁取出數(shù)據(jù)進(jìn)行展現(xiàn)。
2.系統(tǒng)優(yōu)點(diǎn)
與現(xiàn)有技術(shù)相比,本文的優(yōu)點(diǎn)是:
A.可以把復(fù)雜的數(shù)據(jù)統(tǒng)計(jì)查詢過程包分解成兩個(gè)過程,統(tǒng)計(jì)計(jì)算歸集和實(shí)時(shí)查詢;
B.把費(fèi)時(shí)的統(tǒng)計(jì)計(jì)算歸集過程放在后臺(tái)運(yùn)行,并且歸集過程只歸集增量數(shù)據(jù);
C.大大提高了大數(shù)據(jù)量統(tǒng)計(jì)查詢的執(zhí)行效率。
本系統(tǒng)的設(shè)計(jì)中心思路是把復(fù)雜數(shù)據(jù)的統(tǒng)計(jì)查詢過程分解為統(tǒng)計(jì)計(jì)算歸集和實(shí)時(shí)查詢;統(tǒng)計(jì)計(jì)算歸集過程通過計(jì)劃任務(wù)調(diào)度在后臺(tái)執(zhí)行,并且中間數(shù)據(jù)結(jié)果的歸集進(jìn)行增量歸集,實(shí)時(shí)查詢只實(shí)現(xiàn)從中間結(jié)果表中分頁取出數(shù)據(jù)進(jìn)行展現(xiàn)。
3.實(shí)際應(yīng)用
應(yīng)用系統(tǒng)A中對(duì)業(yè)務(wù)BizA的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)查詢。實(shí)例特征:BizA的結(jié)構(gòu)比較復(fù)雜,包括A_MainTable、A_SubTable、A_DetailTable三個(gè)表,A_MainTable是主表,A_SubTable是1級(jí)從表,A_DetailTable是2級(jí)從表;統(tǒng)計(jì)查詢的數(shù)據(jù)量比較大。
BizA的數(shù)據(jù)結(jié)構(gòu)如下:
BizA的主表:A_MainTable
字段:A_MainColID、A_MainCol1、A_MainCol2、 A_MainCol3、 A_MainCol4
數(shù)據(jù)類型:String、String、String、String、String
說明:A_MainColID為主鍵
BizA的1級(jí)從表:A_SubTable
字段:A_SubColID、A_SubCol1、A_SubCol2、 A_SubCol3、 A_SubCol4
數(shù)據(jù)類型:String、String、String、String、String
說明:A_SubColID為主鍵
BizA的2級(jí)從表:A_DetailTable
字段:A_DetailCol1、A_DetailCol2、A_DetailCol2、 A_DetailCol3、 A_DetailCol4
數(shù)據(jù)類型:String、String、String、String、String
說明:A_DetailColID為主鍵
該實(shí)例分解為以下四個(gè)步驟:
a.設(shè)計(jì)增量捕獲規(guī)則;b.設(shè)置增量歸集調(diào)度計(jì)劃;c.執(zhí)行增量數(shù)據(jù)歸集d.執(zhí)行數(shù)據(jù)統(tǒng)計(jì)結(jié)果查詢。
(1)定義增量單元,由于BizA包括三個(gè)表,應(yīng)該定義三個(gè)增量單元。
A_MainTable的增量單元,如下所示:
屬性項(xiàng):增量編號(hào)、增量名稱、數(shù)據(jù)表、主鍵字段、內(nèi)容字段
屬性值:Inc_A_MainTable、Inc_A_MainTable、A_MainTable、A_MainColID、(A_MainCol1, A_MainCol2, A_MainCol3, A_MainCol4)
A_SubTable的增量單元,如下所示:
屬性項(xiàng):增量編號(hào)、增量名稱、數(shù)據(jù)表、主鍵字段
屬性值:Inc_A_SubTable、Inc_A_SubTable、A_SubTable、A_SubColID
A_DetailTable的增量單元,如下所示:
屬性項(xiàng):增量編號(hào)、增量名稱、數(shù)據(jù)表、主鍵字段、內(nèi)容字段
屬性值:Inc_A_SubTable、Inc_A_SubTable、A_SubTable、A_SubColID、(A_DetailCol1, A_DetailCol2, A_DetailCol3, A_DetailCol4)
(2)定義增量包,增量包結(jié)構(gòu)屬性如下
屬性項(xiàng):增量包編號(hào)、增量名包稱、捕獲模式、增量單元
屬性值:IncPkg_BizA、IncPkg_BizA、數(shù)據(jù)庫日志、(Inc_A_MainTable, Inc_A_SubTable, Inc_A_DetailTable)
(3)啟用并初始增量,該過程中分別創(chuàng)建3個(gè)增量數(shù)據(jù)表(Inc_A_MainTable, Inc_A_SubTable, Inc_A_DetailTable),用來存儲(chǔ)捕獲的增量數(shù)據(jù)
(4)訂閱增量,訂閱信息如下:
屬性項(xiàng):訂閱用途、增量包、同步歸集存儲(chǔ)過程、存儲(chǔ)過程參數(shù)字段
屬性值:BizA的數(shù)據(jù)統(tǒng)計(jì)查詢、IncPkg_BizA、SP_BizA_Synch、A_MainCol1,A_MainCol2
在步驟B中,設(shè)置計(jì)劃調(diào)度信息,設(shè)置內(nèi)容如下
屬性項(xiàng):計(jì)劃類別、周期類別、執(zhí)行開始時(shí)間
屬性值:周期計(jì)劃、每天執(zhí)行、2012年2月21日 22:00:00
在步驟C中,執(zhí)行增量數(shù)據(jù)歸集,參照附圖6,包括以下內(nèi)容:
a.通過數(shù)據(jù)庫日志表,抽取符合條件的增量數(shù)據(jù);
b.把增量數(shù)據(jù)分別加載到增量數(shù)據(jù)表(Inc_A_MainTable, Inc_A_SubTable, Inc_A_DetailTable)中;
c.生成存儲(chǔ)過程SP_BizA_Synch;
d.執(zhí)行存儲(chǔ)過程SP_BizA_Synch,(如果不存在)創(chuàng)建查詢中間結(jié)果表(TempResult_BizA),并把增量數(shù)據(jù)表中的數(shù)據(jù)同步到查詢中間結(jié)果表中。
在步驟D中,采用分頁取數(shù)邏輯從查詢中間結(jié)果表(TempResult_BizA)中取出查詢結(jié)果進(jìn)行展現(xiàn)。
4.結(jié)論
本文通過提供一種基于增量歸集的大數(shù)據(jù)量的數(shù)據(jù)查詢方法,進(jìn)行了詳細(xì)的描述和實(shí)際應(yīng)用,該方法主要針對(duì)大量數(shù)據(jù)進(jìn)行查詢統(tǒng)計(jì),可以提高大數(shù)據(jù)量的查詢統(tǒng)計(jì)的性能和效率,在業(yè)務(wù)數(shù)據(jù)量非常龐大的系統(tǒng)中具有較高的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]劉秋香,張永勝.對(duì)XPath,XLink和XPointer的分析研究[J].微機(jī)發(fā)展,2005(10):19-22.
[2]周兆濱.XSLT應(yīng)用于數(shù)據(jù)編程的研究[J].制造業(yè)自動(dòng)化,2003(12):93-95.
[3]劉麗靜.綜合信息管理系統(tǒng)在煤炭生產(chǎn)集團(tuán)中的應(yīng)用[J].工礦自動(dòng)化,2011(10).
[4]戴磊,牛光東,等.煤炭企業(yè)信息化管理系統(tǒng)的研究[J].工礦自動(dòng)化,2009(3):75-78.
[5]杜志強(qiáng),董方.基于XML的網(wǎng)絡(luò)課程資源元數(shù)據(jù)共享研究[J].天中學(xué)刊,2011(02).
作者簡(jiǎn)介:朱濤(1985—),男,山西夏縣人,工程師,主要從事煤礦監(jiān)控系統(tǒng)的技術(shù)支持及工程管理工作。