基于調(diào)度平臺(tái)的數(shù)據(jù)匯總方法及數(shù)據(jù)匯總裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)的處理領(lǐng)域,尤其是一種基于調(diào)度平臺(tái)的數(shù)據(jù)匯總方法W及數(shù)據(jù) 匯總裝置。
【背景技術(shù)】
[0002] 人們?cè)谌粘I?、工作中?jīng)常需要對(duì)各種各樣的數(shù)據(jù)進(jìn)行匯總、分析、處理,尤其 在現(xiàn)代企業(yè)中,集團(tuán)總部和各子公司的各種憑證、單據(jù)及其他業(yè)務(wù)數(shù)據(jù)量非常龐大,要想在 送些海量的數(shù)據(jù)中查詢統(tǒng)計(jì)數(shù)據(jù)或出具報(bào)表,工作量非常巨大。
[0003] 現(xiàn)在的大部分企業(yè)使用數(shù)據(jù)匯總、分析軟件對(duì)大量的數(shù)據(jù)進(jìn)行匯總、分析,然而, 由于企業(yè)需要處理的數(shù)據(jù)量過于巨大,送些數(shù)據(jù)匯總、分析的軟件在性能上形成了瓶頸,未 能滿足數(shù)據(jù)分析的要求。并且,從海量大數(shù)據(jù)中分析統(tǒng)計(jì)數(shù)據(jù)同時(shí)也給數(shù)據(jù)庫及應(yīng)用服務(wù) 帶來相當(dāng)大的壓力,從而影響甚至拖璋整個(gè)系統(tǒng)性能。因此,如何快速響應(yīng)查詢、統(tǒng)計(jì)、分析 及出具報(bào)表等就成了數(shù)據(jù)匯總軟件必須解決的重大問題。
[0004] 現(xiàn)有的一些數(shù)據(jù)匯總系統(tǒng),如聯(lián)機(jī)分析處理(On-Line Anal}ftical Processing, OLA巧等系統(tǒng)的應(yīng)用推進(jìn)了用于提取對(duì)企業(yè)決策分析有用的信息的數(shù)據(jù)倉庫,數(shù)據(jù)倉庫技 術(shù)在數(shù)據(jù)統(tǒng)計(jì)分析上優(yōu)勢(shì)相當(dāng)大,但由于其需要預(yù)處理后數(shù)據(jù)才可使用,送樣的方式無法 滿足信息管理系統(tǒng)中實(shí)時(shí)性要求相當(dāng)高的特點(diǎn),因此送類的數(shù)據(jù)處理方式方法并不適合現(xiàn) 代的信息管理系統(tǒng)。
[0005] 此外,現(xiàn)代的信息管理系統(tǒng)中并發(fā)錄入數(shù)據(jù)的可能性相當(dāng)大,數(shù)據(jù)匯總的過程中 往往需要根據(jù)匯總統(tǒng)計(jì)規(guī)則把錄入的數(shù)據(jù)統(tǒng)計(jì)后更新到匯總相關(guān)表,相關(guān)表如果不做加鎖 處理,則有可能由于臟數(shù)據(jù)等原因?qū)е聰?shù)據(jù)不正確,因此做送類的數(shù)據(jù)處理,需要采用加鎖 方式實(shí)現(xiàn)。通常,加鎖方式可采用服務(wù)端加鎖或數(shù)據(jù)庫端對(duì)數(shù)據(jù)進(jìn)行加鎖等,但送些加鎖方 式都可能會(huì)帶來資源競爭及導(dǎo)致程序復(fù)雜度相當(dāng)高,不便于后續(xù)的開發(fā)維護(hù)等處理。因此, 需要考慮一套合理的方案來簡單有效地解決加鎖問題。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的主要目的是提供一種數(shù)據(jù)處理量較少的基于調(diào)度平臺(tái)的數(shù)據(jù)匯總方法。
[0007] 本發(fā)明的另一目的是提供一種數(shù)據(jù)處理性能較好的基于調(diào)度平臺(tái)的數(shù)據(jù)匯總裝 置。
[0008] 為了實(shí)現(xiàn)上述的主要目的,本發(fā)明提供的基于調(diào)度平臺(tái)的數(shù)據(jù)匯總方法包括匯總 調(diào)度平臺(tái)單元輪詢觸發(fā)匯總?cè)肟谶M(jìn)程,并在接收到觸發(fā)信息后掃描任務(wù)隊(duì)列,根據(jù)多個(gè)匯 總?cè)蝿?wù)的優(yōu)先級(jí)別依次執(zhí)行任務(wù)隊(duì)列中的匯總?cè)蝿?wù);執(zhí)行匯總?cè)蝿?wù)時(shí),清除先前的匯總結(jié) 果W及備份表中的所有數(shù)據(jù),并從原始數(shù)據(jù)中提取符合當(dāng)前匯總條件的數(shù)據(jù)到中轉(zhuǎn)表,將 中轉(zhuǎn)表中的數(shù)據(jù)備份至備份表;從備份表及原始數(shù)據(jù)表中提取需要實(shí)時(shí)匯總處理的數(shù)據(jù), 并根據(jù)備份表的數(shù)據(jù)W及原始數(shù)據(jù)表的數(shù)據(jù)采用退舊加新的方法將變更后的數(shù)據(jù)匯總至 匯總表中。
[0009] 由上述方案可見,數(shù)據(jù)匯總時(shí)通過預(yù)先提取符合條件的數(shù)據(jù)到備份表中,避免W 原始數(shù)據(jù)作為基礎(chǔ)匯總數(shù)據(jù),數(shù)據(jù)的處理量較少。并且,由于數(shù)據(jù)匯總方法能夠在全量匯總 的基礎(chǔ)上實(shí)現(xiàn)實(shí)時(shí)匯總,即使匯總的數(shù)據(jù)量龐大,也能及時(shí)地實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)匯總,提升數(shù)據(jù) 匯總的性能。此外,通過匯總調(diào)度平臺(tái)單元對(duì)多個(gè)匯總?cè)蝿?wù)進(jìn)行調(diào)度,實(shí)現(xiàn)對(duì)多個(gè)匯總?cè)蝿?wù) 的調(diào)度,使數(shù)據(jù)匯總處理更加高效。
[0010] 一個(gè)優(yōu)選的方案是,匯總調(diào)度平臺(tái)單元掃描任務(wù)隊(duì)列前,接收創(chuàng)建匯總?cè)蝿?wù)的命 令和/或調(diào)整匯總?cè)蝿?wù)執(zhí)行優(yōu)先等級(jí)的命令,并在任務(wù)隊(duì)列中創(chuàng)建匯總?cè)蝿?wù)和/或調(diào)整匯 總?cè)蝿?wù)的執(zhí)行優(yōu)先等級(jí)。
[0011] 由此可見,匯總調(diào)度平臺(tái)單元能夠根據(jù)接收的命令調(diào)節(jié)各個(gè)匯總?cè)蝿?wù)的處理優(yōu)先 順序或者創(chuàng)建匯總?cè)蝿?wù),數(shù)據(jù)匯總操作更加靈活。
[0012] 另一個(gè)優(yōu)選的方案是,匯總調(diào)度平臺(tái)單元在匯總?cè)蝿?wù)完成后,判斷所完成的匯總 任務(wù)為周期性任務(wù)時(shí),設(shè)定該任務(wù)的下次執(zhí)行時(shí)間,并將該匯總?cè)蝿?wù)保留在任務(wù)隊(duì)列中。
[0013] 可見,通過查詢數(shù)據(jù)匯總的周期性可W設(shè)置周期性的匯總?cè)蝿?wù)的周期性操作時(shí) 間,方便周期性的匯總?cè)蝿?wù)的執(zhí)行。
[0014] 再一個(gè)優(yōu)選的方案是,執(zhí)行實(shí)時(shí)匯總?cè)蝿?wù)時(shí),所采用的退舊加新的方法是;將備份 表中的數(shù)據(jù)乘W-1,然后與原始數(shù)據(jù)表的數(shù)據(jù)相加計(jì)算差額數(shù)據(jù),將差額數(shù)據(jù)匯總至匯總 表中。
[0015] 由此可見,采用退舊加新的方法對(duì)數(shù)據(jù)進(jìn)行匯總,而不是采用直接將新的數(shù)據(jù)替 代備份數(shù)據(jù),送樣可W增加匯總數(shù)據(jù)的準(zhǔn)確性。
[0016] 為實(shí)現(xiàn)上述的另一目的,本發(fā)明提供的基于調(diào)度平臺(tái)的數(shù)據(jù)匯總裝置包括匯總調(diào) 度模塊、全量匯總模塊W及實(shí)時(shí)匯總模塊,匯總調(diào)度模塊使用匯總調(diào)度平臺(tái)單元輪詢觸發(fā) 匯總?cè)肟谶M(jìn)程,并在接收到觸發(fā)信息后掃描任務(wù)隊(duì)列,根據(jù)多個(gè)匯總?cè)蝿?wù)的優(yōu)先級(jí)別依次 執(zhí)行任務(wù)隊(duì)列中的匯總?cè)蝿?wù);全量匯總模塊用于清除先前的匯總結(jié)果W及備份表中的所有 數(shù)據(jù),并從原始數(shù)據(jù)中提取符合當(dāng)前匯總條件的數(shù)據(jù)到中轉(zhuǎn)表,將中轉(zhuǎn)表中的數(shù)據(jù)備份至 備份表;實(shí)時(shí)匯總模塊用于從備份表及原始數(shù)據(jù)表中提取需要實(shí)時(shí)匯總處理的數(shù)據(jù),并根 據(jù)備份表的數(shù)據(jù)W及原始數(shù)據(jù)表的數(shù)據(jù)采用退舊加新的方法將變更后的數(shù)據(jù)匯總至匯總 表中。
[0017] 由上述方案可見,通過匯總調(diào)度平臺(tái)單元對(duì)多個(gè)匯總?cè)蝿?wù)的調(diào)度,提高對(duì)匯總?cè)?務(wù)的處理效率。此外,數(shù)據(jù)匯總裝置能夠?qū)崿F(xiàn)全量匯總、實(shí)時(shí)匯總等功能,提升數(shù)據(jù)匯總裝 置的性能,滿足企業(yè)對(duì)大量數(shù)據(jù)進(jìn)行實(shí)施匯總的要求。此外,由于數(shù)據(jù)匯總裝置不需要對(duì)數(shù) 據(jù)進(jìn)行預(yù)處理,只需要對(duì)原始數(shù)據(jù)提取后進(jìn)行匯總,數(shù)據(jù)匯總的運(yùn)算量較少,提高數(shù)據(jù)匯總 的效率。
【附圖說明】
[0018] 圖1是本發(fā)明數(shù)據(jù)匯總裝置實(shí)施例的結(jié)構(gòu)框圖。
[0019] 圖2是本發(fā)明數(shù)據(jù)匯總方法實(shí)施例中的匯總調(diào)度步驟的流程圖。
[0020] 圖3是本發(fā)明數(shù)據(jù)匯總方法實(shí)施例中的全量匯總步驟的流程圖。
[0021] 圖4是本發(fā)明數(shù)據(jù)匯總方法實(shí)施例中的實(shí)時(shí)匯總步驟的流程圖。
[0022] W下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
【具體實(shí)施方式】
[0023] 本發(fā)明的數(shù)據(jù)匯總方法用于對(duì)大量的數(shù)據(jù)進(jìn)行匯總、分析,數(shù)據(jù)匯總裝置是應(yīng)用 上述方法實(shí)現(xiàn)對(duì)數(shù)據(jù)匯總分析的裝置。
[0024] 參見圖1,本實(shí)施例的數(shù)據(jù)匯總裝置包括匯總配置模塊10、匯總調(diào)度模塊11、全量 匯總模塊15 W及實(shí)時(shí)匯總模塊16,匯總調(diào)度模塊11內(nèi)設(shè)有周期性執(zhí)行模塊12。
[0025] 匯總配置模塊10用于對(duì)匯總?cè)蝿?wù)的匯總方案進(jìn)行配置,即根據(jù)匯總的任務(wù)需求 配置匯總的方案,由此形成匯總方案主表W及匯總方案明細(xì)表,方案主表用于描述匯總方 案及表示方案是否停用,方案明細(xì)表用于描述匯總方案的維度、統(tǒng)計(jì)項(xiàng)及能參與匯總處理 的數(shù)據(jù)條件表達(dá)式。
[0026] 匯總調(diào)度模塊11應(yīng)用匯總調(diào)度平臺(tái)單元對(duì)匯總?cè)蝿?wù)進(jìn)行調(diào)度,如接收觸發(fā)信息, 并根據(jù)觸發(fā)信必掃描匯總?cè)蝿?wù)隊(duì)列,并執(zhí)行任務(wù)隊(duì)列中的匯總?cè)蝿?wù)。同時(shí),根據(jù)匯總?cè)蝿?wù)的 執(zhí)行情況決定是否需要?jiǎng)h除匯總?cè)蝿?wù),對(duì)于周期性執(zhí)行的匯總?cè)蝿?wù),還需要確定該周期性 執(zhí)行的任務(wù)下次執(zhí)行時(shí)間等等。周期性匯總?cè)蝿?wù)的執(zhí)行由周期性執(zhí)行模塊12控制匯總?cè)?務(wù)的執(zhí)行時(shí)間、執(zhí)行間隙等。
[0027] 全量匯總模塊15用于對(duì)數(shù)據(jù)進(jìn)行全量匯總,采樣全清全匯的方式對(duì)原始數(shù)據(jù)進(jìn) 行統(tǒng)計(jì)匯總處理,并將匯總的數(shù)據(jù)保存至匯總表中。實(shí)時(shí)匯總模塊16用于對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí) 匯總處理,從海量的原始數(shù)據(jù)中獲取需要匯總的數(shù)據(jù),并將需要匯總的數(shù)據(jù)提取后,根據(jù)匯 總的需要采用退舊加新的方式得到匯總后的數(shù)據(jù),將匯總后的數(shù)據(jù)保持至匯總表中。
[0028] 匯總調(diào)度模塊11是由匯總調(diào)度平臺(tái)單元通過匯總管理工具管理匯總?cè)蝿?wù)的調(diào) 度、匯總?cè)蝿?wù)及與調(diào)度相關(guān)參數(shù)設(shè)置,并通過匯總管理工具創(chuàng)建匯總?cè)蝿?wù)調(diào)度來觸發(fā)處理 提交到匯總?cè)蝿?wù)調(diào)度隊(duì)列中的匯總?cè)蝿?wù)。匯總調(diào)度平臺(tái)單元也會(huì)掃描匯總?cè)蝿?wù)配置表中的 周期性任務(wù),如在任務(wù)配置表中存在但任務(wù)執(zhí)行隊(duì)列里面不存在該任務(wù),匯總調(diào)度平臺(tái)單 元將把該任務(wù)增加到匯總?cè)蝿?wù)隊(duì)列,并通過調(diào)度周期性地執(zhí)行該周期任務(wù)。匯總調(diào)度平臺(tái) 單元由匯總?cè)蝿?wù)類型配置表、匯總調(diào)度作業(yè)單元及匯總工具共同組成。
[0029] 匯總?cè)蝿?wù)類型配置表中的一條記錄描述了一種匯總?cè)蝿?wù)類型,該任務(wù)描述表示了 匯總調(diào)度平臺(tái)單元觸發(fā)了送種匯總?cè)蝿?wù)后調(diào)用的過程、過程執(zhí)行的節(jié)點(diǎn)及調(diào)用的周期等。 其中,匯總?cè)蝿?wù)類型配置表主要包括:任務(wù)類別、任務(wù)描述、任務(wù)周期(任務(wù)周期,可表示一 次性任務(wù)或者是W分鐘為單位的周期性任務(wù))、任務(wù)處理過程名稱、線程優(yōu)先級(jí)W及運(yùn)行節(jié) 點(diǎn)等。
[0030] 匯總調(diào)度作業(yè)單元可W使oracle job任務(wù)調(diào)度實(shí)現(xiàn),匯總調(diào)度平臺(tái)單元可通過匯 總管理工具創(chuàng)建job任務(wù)調(diào)度,也可W通過工具刪除job任務(wù)調(diào)度。通過匯總工具也可W 設(shè)置匯總線程數(shù),該匯總線程數(shù)對(duì)應(yīng)的是在oracle數(shù)據(jù)庫中創(chuàng)建的匯總?cè)蝿?wù)調(diào)度個(gè)數(shù),設(shè) 置多少個(gè)便可W創(chuàng)建多少個(gè)調(diào)度?;跀?shù)據(jù)庫壓力及性能考慮,最多可支持5條線程。送 些線程調(diào)度同時(shí)啟動(dòng)的情況下可同時(shí)并行執(zhí)行處理不同的匯總?cè)蝿?wù)類型,從而達(dá)到多類型 匯總并行計(jì)算處理的效果。
[0031] 下面結(jié)合圖2說明匯總調(diào)度模塊11的工作流程。
[0032] 首先,匯總調(diào)度模塊11接收配置匯總方案的信息,也就是執(zhí)行步驟S1,配置匯總 方案的信息由匯總配置模塊10發(fā)出,配置匯總方案的信息包含是否創(chuàng)建匯總?cè)蝿?wù)的信息、 調(diào)整匯總?cè)蝿?wù)執(zhí)行的優(yōu)先等級(jí)的信息。
[0033] 然后,匯總調(diào)度模塊11執(zhí)行步驟S2,由化acle job調(diào)度輪詢觸發(fā)匯總?cè)肟谶^程, 判斷是否接收到觸發(fā)信息。如在調(diào)度觸發(fā)匯總?cè)肟谶^程后,即接收到觸發(fā)信息后,RUN_J0B 將掃描任務(wù)隊(duì)配置表及匯總?cè)蝿?wù)對(duì)列表,判斷任務(wù)隊(duì)列中是否有需要執(zhí)行的匯