一種數(shù)據(jù)處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法及系統(tǒng),首先將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;之后根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID,根據(jù)維度ID從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中;最后根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中。該方法及系統(tǒng),通過在數(shù)據(jù)處理流程中增加了“主題表”和“應(yīng)用匯總表”,使數(shù)據(jù)能夠基于主題表進(jìn)行重復(fù)利用,通過派生維支持的計(jì)算,實(shí)現(xiàn)了數(shù)據(jù)分析口徑的轉(zhuǎn)換,有效提高了數(shù)據(jù)處理的效率和處理后數(shù)據(jù)的實(shí)用性。
【專利說明】一種數(shù)據(jù)處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)處理方法及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]隨著大數(shù)據(jù)概念的興起,各級(jí)政府部門都在基于數(shù)據(jù)倉(cāng)庫(kù)技術(shù),積極地利用政府管理過程中產(chǎn)生的各類結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)基于的前提是已經(jīng)明確了數(shù)據(jù)如何去利用,但現(xiàn)實(shí)的需求是政府部門需要先將數(shù)據(jù)收集起來,如何利用數(shù)據(jù)還沒有完全想清楚。
[0003]傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的基本原理是將數(shù)據(jù)源中的原始數(shù)據(jù)抽取到臨時(shí)區(qū),經(jīng)過統(tǒng)一的清洗、轉(zhuǎn)換和加工后,更新到維度表和事實(shí)表,通過數(shù)據(jù)可視化工具基于事實(shí)表和維度表組成的多維立方體進(jìn)行數(shù)據(jù)利用。但是,在利用傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)建設(shè)政府?dāng)?shù)據(jù)倉(cāng)庫(kù)過程中面臨一系列的挑戰(zhàn),由于歷史數(shù)據(jù)的口徑比較粗、規(guī)范性相對(duì)不高,在不同年度、不同區(qū)劃的數(shù)據(jù)管理口徑不一致,在業(yè)務(wù)上缺乏統(tǒng)一的轉(zhuǎn)換規(guī)則,往往需要業(yè)務(wù)人員對(duì)操作數(shù)據(jù)進(jìn)行逐一確認(rèn)轉(zhuǎn)換方式,這種工作量和難度是不可想象的;即使數(shù)據(jù)按照統(tǒng)一的數(shù)據(jù)規(guī)范完成轉(zhuǎn)換,由于政府管理數(shù)據(jù)口徑與分析數(shù)據(jù)口徑有很大差異,導(dǎo)致操作數(shù)據(jù)無(wú)法直接用于分析,往往需要技術(shù)人員開發(fā)復(fù)雜的轉(zhuǎn)換代碼,需要進(jìn)行大量的臨時(shí)運(yùn)算工作,經(jīng)常出現(xiàn)展現(xiàn)效率低,甚至是數(shù)據(jù)不一致的現(xiàn)象,導(dǎo)致不能夠快速響應(yīng)需求,數(shù)據(jù)的實(shí)用性大大降低。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種數(shù)據(jù)處理方法及系統(tǒng),提高數(shù)據(jù)處理的效率以及處理后數(shù)據(jù)的實(shí)用性。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:一種數(shù)據(jù)處理方法,包括以下步驟:
[0006](I)將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類原始業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表;
[0007](2)根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID ;
[0008](3)根據(jù)所述的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中;
[0009](4)根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。
[0010]進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(I)中,將原始數(shù)據(jù)存儲(chǔ)到主題表之前,首先將原始數(shù)據(jù)存儲(chǔ)到臨時(shí)區(qū),之后從臨時(shí)區(qū)獲取原始數(shù)據(jù)存儲(chǔ)到主題表中,將原始數(shù)據(jù)存儲(chǔ)到主題表后,刪除臨時(shí)區(qū)中對(duì)應(yīng)的原始數(shù)據(jù)。[0011 ] 進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(I)中,對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理后,再將原始數(shù)據(jù)存儲(chǔ)到主題表中;所述的預(yù)處理包括補(bǔ)齊原始數(shù)據(jù)缺少的全局性屬性、統(tǒng)一轉(zhuǎn)換區(qū)劃和日期屬性、以及刪除主題表中不需要的數(shù)據(jù);所述的不需要的數(shù)據(jù)包括作廢和在途的業(yè)務(wù)數(shù)據(jù)。
[0012]進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(3)中,根據(jù)維度ID從主題表生成與維度表關(guān)聯(lián)的事實(shí)表的具體方式包括:
[0013]根據(jù)需要的數(shù)據(jù)的維度名稱,在主題表中獲取該維度名稱對(duì)應(yīng)的維度代碼,將主題表中記錄的維度代碼與對(duì)應(yīng)維度表中的維度代碼關(guān)聯(lián),得到維度ID,將維度ID存儲(chǔ)到事實(shí)表中,并將主題表中該維度下的非維度表數(shù)據(jù)直接存儲(chǔ)到事實(shí)表中。
[0014]進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(3)中,生成事實(shí)表時(shí),采用增量抽取的方式,只抽取設(shè)定時(shí)間段的主題表中的數(shù)據(jù)更新到事實(shí)表中。
[0015]進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(4)中,根據(jù)需要從事實(shí)表生成應(yīng)用匯總表的具體方式包括:
[0016]根據(jù)需要,預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系;
[0017]將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成應(yīng)用匯總表。
[0018]再進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(4)中,所述的派生計(jì)算關(guān)系包括力口、減和乘的運(yùn)算關(guān)系。
[0019]更進(jìn)一步,如上所述的一種數(shù)據(jù)處理方法,步驟(4)中,根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換時(shí),將所述的派生計(jì)算關(guān)系轉(zhuǎn)換為笛卡爾積的運(yùn)算關(guān)系。
[0020]一種數(shù)據(jù)處理系統(tǒng),包括:
[0021]主題表構(gòu)建模塊,用于建立主題表,將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表;
[0022]維度表生成模塊,用于根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID ;
[0023]事實(shí)表生成模塊,用于根據(jù)所述的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中;
[0024]應(yīng)用匯總表生成模塊,根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。
[0025]進(jìn)一步,如上所述的一種數(shù)據(jù)處理系統(tǒng),所述的應(yīng)用匯總表生成模塊包括:
[0026]派生維度表生成單元,用于預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系;
[0027]應(yīng)用匯總表生成單元,用于將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成應(yīng)用匯總表。
[0028]本發(fā)明的有益效果在于:本發(fā)明所述的方法及系統(tǒng),通過在數(shù)據(jù)處理流程中增加了“主題表”、“派生維”和“應(yīng)用數(shù)據(jù)表”,使數(shù)據(jù)能夠基于主題表進(jìn)行重復(fù)利用,此外,通過派生維支持的計(jì)算,實(shí)現(xiàn)了數(shù)據(jù)分析口徑的轉(zhuǎn)換,有效提高了數(shù)據(jù)處理的效率和處理后數(shù)據(jù)的實(shí)用性。
【專利附圖】
【附圖說明】
[0029]圖1為【具體實(shí)施方式】中一種數(shù)據(jù)處理系統(tǒng)的架構(gòu)示意圖;
[0030]圖2為【具體實(shí)施方式】中一種數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)框圖;
[0031]圖3為【具體實(shí)施方式】中一種數(shù)據(jù)處理系統(tǒng)的流程圖;
[0032]圖4為【具體實(shí)施方式】中主題表的結(jié)構(gòu)示意圖;
[0033]圖5為【具體實(shí)施方式】中維度表的示意圖;
[0034]圖6為實(shí)施例中維度表的示意圖;
[0035]圖7為實(shí)施例中事實(shí)表的示意圖;
[0036]圖8為實(shí)施例中派生維度表的示意圖;
[0037]圖9為實(shí)施例中將派生計(jì)算關(guān)系轉(zhuǎn)換為笛卡爾積運(yùn)算關(guān)系的示意圖;
[0038]圖10為實(shí)施例中應(yīng)用匯總表的示意圖。
【具體實(shí)施方式】
[0039]下面結(jié)合說明書附圖與【具體實(shí)施方式】對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說明。
[0040]為了更好的理解本發(fā)明,首先對(duì)本【具體實(shí)施方式】中所涉及的技術(shù)術(shù)語(yǔ)進(jìn)行解釋說明:
[0041]臨時(shí)區(qū):用于臨時(shí)存儲(chǔ)從數(shù)據(jù)源中獲取的原始數(shù)據(jù),一般情況下存儲(chǔ)的數(shù)據(jù)是不完整的,如:一年數(shù)據(jù)、一月數(shù)據(jù)或一天數(shù)據(jù),在數(shù)據(jù)抽取到主題表后,臨時(shí)區(qū)的數(shù)據(jù)會(huì)被丟棄。
[0042]主題表:用于永久存儲(chǔ)政府跨年度、跨區(qū)劃的各類業(yè)務(wù)數(shù)據(jù),作為數(shù)據(jù)倉(cāng)庫(kù)最核心的部分,主題表的結(jié)構(gòu)按照業(yè)務(wù)對(duì)象的描述需求來構(gòu)建,主題表的數(shù)據(jù)保留原有業(yè)務(wù)的細(xì)顆粒度,能夠最大程度地描述原始業(yè)務(wù)。
[0043]維度表:傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的一部分,用于存儲(chǔ)維度表數(shù)據(jù)。
[0044]事實(shí)表:傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的一部分,用于存儲(chǔ)加工后的業(yè)務(wù)數(shù)據(jù),與維度表一起構(gòu)成數(shù)據(jù)倉(cāng)庫(kù)“立方體”,便于靈活的多維數(shù)據(jù)分析。
[0045]派生維度表:用于存儲(chǔ)派生維定義的數(shù)據(jù),包括派生維值集列表,以及每一個(gè)派生維值的計(jì)算公式。
[0046]應(yīng)用匯總表:用于存儲(chǔ)依據(jù)派生維定義計(jì)算出來的統(tǒng)計(jì)分析數(shù)據(jù),按照實(shí)際的統(tǒng)計(jì)分析需要,數(shù)據(jù)存儲(chǔ)的顆粒度更粗,能夠被可視化工具直接利用。
[0047]圖1和圖2分別示出了本【具體實(shí)施方式】中一種數(shù)據(jù)處理系統(tǒng)的架構(gòu)示意圖和結(jié)構(gòu)框圖,該系統(tǒng)包括主題表構(gòu)建模塊11、維度表生成模塊12、事實(shí)表生成模塊13、以及應(yīng)用匯總表生成模塊14,其中:
[0048]主題表構(gòu)建模塊11用于建立主題表,將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表;
[0049]維度表生成模塊12用于根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID ;
[0050]事實(shí)表生成模塊13用于根據(jù)所述的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中;
[0051]應(yīng)用匯總表生成模塊14根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。該模塊包括派生維度表生成單元141和應(yīng)用匯總表生成單元142,派生維度表生成單元141用于預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系;應(yīng)用匯總表生成單元142用于將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成應(yīng)用匯總表。
[0052]圖3示出了本【具體實(shí)施方式】中基于圖2中所示系統(tǒng)的一種數(shù)據(jù)處理方法的流程圖,該方法包括以下步驟:
[0053]步驟S21:構(gòu)建主題表,將原始數(shù)據(jù)存儲(chǔ)到主題表中;
[0054]首先構(gòu)建一主題表,將數(shù)據(jù)源的原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱。所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類原始業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表。本實(shí)施方式中的主題表用于永久存儲(chǔ)政府跨年度、跨區(qū)劃的各類業(yè)務(wù)數(shù)據(jù),作為數(shù)據(jù)倉(cāng)庫(kù)最核心的部分,主題表中的數(shù)據(jù)保留了原有業(yè)務(wù)數(shù)據(jù)的細(xì)顆粒度,能夠最大程度的描述原始業(yè)務(wù)。
[0055]本實(shí)施方式中,在將原始數(shù)據(jù)存儲(chǔ)到主題表之前,還可以建立一用于暫時(shí)存儲(chǔ)從數(shù)據(jù)源中獲取的原始數(shù)據(jù)的臨時(shí)區(qū),首先將原始數(shù)據(jù)存儲(chǔ)到臨時(shí)區(qū),之后從臨時(shí)區(qū)獲取原始數(shù)據(jù)存儲(chǔ)到主題表中,如圖1中所示,臨時(shí)區(qū)一般情況下存儲(chǔ)的數(shù)據(jù)并不是完整的原始數(shù)據(jù),而只是一設(shè)定時(shí)間范圍內(nèi)的數(shù)據(jù),如一年的數(shù)據(jù)、一個(gè)月的數(shù)據(jù)或一天的數(shù)據(jù),在將原始數(shù)據(jù)存儲(chǔ)到主題表后,會(huì)刪除臨時(shí)區(qū)中對(duì)應(yīng)的原始數(shù)據(jù)。
[0056]數(shù)據(jù)源的原始數(shù)據(jù)可以是一個(gè)數(shù)據(jù)文件,如Excel文件,也可以是一個(gè)數(shù)據(jù)庫(kù)的快照。在將原始數(shù)據(jù)存儲(chǔ)到主題表之前,還需要對(duì)原始數(shù)據(jù)進(jìn)行一些預(yù)處理,這些預(yù)處理主要包括補(bǔ)齊原始數(shù)據(jù)缺少的全局性屬性、統(tǒng)一轉(zhuǎn)換區(qū)劃和日期屬性、以及刪除主題表中不需要的數(shù)據(jù)。
[0057]其中,所述的全局性屬性包括但不限于原始數(shù)據(jù)的日期(年度、月份等)以及區(qū)劃等。在統(tǒng)一轉(zhuǎn)換區(qū)劃和日期屬性時(shí),需要確保區(qū)劃和日期這兩類屬性的代碼與步驟S22中建立的維度表中的區(qū)劃維度表和日期維度表中的代碼保持一致。所述的不需要的數(shù)據(jù)包括作廢和在途的業(yè)務(wù)數(shù)據(jù)。
[0058]圖4中示出了本實(shí)施方式中一“支付憑證”主題表結(jié)構(gòu)的示意圖,該主題表中“字段名”一列所示的為原始數(shù)據(jù)的全局性屬性,字段描述是對(duì)全局性屬性的解釋說明,用于幫助理解字段名的含義,如字段名為“YEAR”的屬性的含義是“年度”。該表中除了保留了上述原始的支付ID、支付憑證號(hào)、摘要等屬性信息外,同時(shí)還為步驟S22中設(shè)計(jì)了維度的代碼和字段名稱,如圖4中所示的“業(yè)務(wù)處室”、“資金性質(zhì)”以及“預(yù)算單位”等是需要生成維度表的屬性(步驟S22中的維度),因此在該步驟中為“業(yè)務(wù)處室”、“資金性質(zhì)”以及“預(yù)算單位”等屬性設(shè)計(jì)了維度的代碼和字段名稱。該實(shí)施例中在設(shè)計(jì)維度的代碼和字段名稱時(shí),其前綴與主題表設(shè)計(jì)規(guī)范一致,后綴分別帶“CODE”和“NAME”的字段名分別為維度的代碼和維度的名稱。此外,圖4中的“源系統(tǒng)ID”指的是原始業(yè)務(wù)數(shù)據(jù)表的唯一主鍵ID,主題表中存儲(chǔ)了其對(duì)應(yīng)的原始業(yè)務(wù)表數(shù)據(jù)的唯一主鍵ID,通過該ID可以實(shí)現(xiàn)主題表與最原始采集數(shù)據(jù)的關(guān)聯(lián)與核對(duì)。
[0059]通過主題表的合理設(shè)計(jì),能夠確保每一條記錄能夠獨(dú)立完整的描述一筆業(yè)務(wù),通過表中的數(shù)據(jù)能夠反映出一筆具體的支付業(yè)務(wù),什么時(shí)候支付的、支付給哪個(gè)單位、哪個(gè)處室以及支付金額等信息。
[0060]在主題表中具體需要設(shè)計(jì)哪些維度的代碼和名稱是由用戶根據(jù)需要確定的,但是需要保證主題表中需要生成維度表的屬性的代碼和名稱與維度表中維度的代碼和名稱一致,如圖4中的資金性質(zhì),在生成維度表時(shí),主題表中資金性質(zhì)的代碼和名稱需要與步驟S22中生成的維度表中的資金性質(zhì)的代碼和名稱一致。
[0061]步驟S22:根據(jù)需要從主題表生成維度表;
[0062]步驟S23:根據(jù)需要從主題表生成事實(shí)表;
[0063]在步驟S21中,主題表中記錄了需要生成維度表的維度的代碼和名稱,根據(jù)主題表中記錄的這些維度的代碼和名稱分別生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)(維度表數(shù)據(jù)是指維度名稱和維度代碼)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID。例如對(duì)于一主題表中的記錄的“區(qū)劃”這一維度的代碼和名稱,生成區(qū)劃維度表,并在該維度表中記錄所有區(qū)劃維度的代碼和名稱,同時(shí)生成每一個(gè)區(qū)劃維度的維度ID,如圖5所示,“局領(lǐng)導(dǎo)”這一維度,其維度名稱為“局領(lǐng)導(dǎo)”、維度代碼“01”,維度ID為“118301”,由步驟S21中的描述可知,對(duì)于圖5中的維度表,其中維度代碼“01”和維度名稱“局領(lǐng)導(dǎo)”在主題表中也記錄了維度代碼“01”和維度名稱“局領(lǐng)導(dǎo)”。
[0064]此外,為了提高維度表的效率,避免重復(fù)生成,在生成維度表時(shí),可以首先將主題表中記錄的維度代碼與對(duì)應(yīng)維度表里的維度代碼進(jìn)行比較,如果在維度表中找不到匹配的維度代碼和維度名稱,則將主題表中記錄的維度代碼和名稱存儲(chǔ)到該維度表中,并補(bǔ)充生成對(duì)應(yīng)該維度代碼的維度ID,如果在維度表中找到了匹配的結(jié)果,則說明在維度表中已經(jīng)存儲(chǔ)該維度代碼和維度名稱,不需要再生成。在更新維度表時(shí)遵循的規(guī)則包括:維度表的值集只增加和修改,不能刪除(同一維度在不同年度值集可能不一樣,如果刪除,會(huì)導(dǎo)致歷史年度的業(yè)務(wù)數(shù)據(jù)在維度表值集中找不到相應(yīng)的維度代碼,無(wú)法再進(jìn)行分析);以本區(qū)劃和本年度的值集為基礎(chǔ)值集;本年度存在代碼和名稱沖突時(shí)使用最新的名稱;歷史年度的代碼在本年度沒有使用且層次關(guān)系不存在沖突時(shí)增加到維度表中。
[0065]在生成維度表后,根據(jù)維度表中的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中。具體的生成方式為:
[0066]根據(jù)需要的數(shù)據(jù)的維度名稱,在主題表中獲取該維度名稱對(duì)應(yīng)的維度代碼,將主題表中記錄的該維度代碼與對(duì)應(yīng)維度表中的維度代碼關(guān)聯(lián),得到維度ID,將得到的維度ID存儲(chǔ)到事實(shí)表中,并將主題表中該維度下的非維度表數(shù)據(jù)直接存儲(chǔ)到事實(shí)表中。
[0067]也就是說,在生成事實(shí)表時(shí),首先根據(jù)需要的數(shù)據(jù)的維度名稱,在主題表中得到該維度名稱對(duì)應(yīng)的維度代碼,之后根據(jù)主題表與維度表中的維度代碼關(guān)聯(lián)得到對(duì)應(yīng)的維度ID,并將維度ID以及主題表中該維度下需要的非維度表數(shù)據(jù)存儲(chǔ)到事實(shí)表中。如圖4中的“業(yè)務(wù)處室”對(duì)應(yīng)的數(shù)據(jù),首先將“支付憑證”主題表中的某一業(yè)務(wù)處室代碼和圖5中業(yè)務(wù)處室維度表的維度代碼進(jìn)行關(guān)聯(lián),得到相應(yīng)業(yè)務(wù)處室的維度ID,然后將得到的業(yè)務(wù)處室維度ID存儲(chǔ)到事實(shí)表中,并將主題表中該業(yè)務(wù)處室對(duì)應(yīng)的非維度表數(shù)據(jù)(維度代碼和名稱之外的數(shù)據(jù))直接存儲(chǔ)到事實(shí)表中。
[0068]事實(shí)表只有維度ID和具體的度量字段(非維度表數(shù)據(jù)),從主題表生成事實(shí)表時(shí),采用增量抽取的方式,根據(jù)事實(shí)表的類型只抽取設(shè)定時(shí)間段(如最近一年、一月或一日的匯總數(shù)據(jù))的主題表中的數(shù)據(jù)更新到事實(shí)表中。
[0069]本實(shí)施方式中,將存儲(chǔ)在各表中的數(shù)據(jù)的名稱定義為與其表名稱對(duì)應(yīng)名稱,如存儲(chǔ)在維度表中的數(shù)據(jù)稱為維度表數(shù)據(jù),將存儲(chǔ)在事實(shí)表中的數(shù)據(jù)稱為事實(shí)表數(shù)據(jù),將應(yīng)用匯總表中的數(shù)據(jù)稱為應(yīng)用匯總數(shù)據(jù)。
[0070]步驟S24:根據(jù)需要從事實(shí)表生成應(yīng)用匯總表。
[0071]根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。本實(shí)施方式中根據(jù)需要從事實(shí)表生成應(yīng)用匯總表的具體方式包括:
[0072]根據(jù)需要,預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系;
[0073]將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成應(yīng)用匯總表。
[0074]其中,所述的派生計(jì)算關(guān)系包括加、減和乘的運(yùn)算關(guān)系。根據(jù)派生維度表與原始維度表(步驟S22中生成的維度表)之間的計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換時(shí),為了提高計(jì)算效率,將所述的計(jì)算關(guān)系轉(zhuǎn)換為笛卡爾積的運(yùn)算關(guān)系。
[0075]本實(shí)施方式中應(yīng)用匯總表的生成依賴于預(yù)設(shè)的派生計(jì)算關(guān)系,根據(jù)該派生計(jì)算關(guān)系生成對(duì)應(yīng)的派生維度表,在派生計(jì)算關(guān)系設(shè)置時(shí),支持“加”、“減”和“乘”的運(yùn)算??紤]計(jì)算效率,需要將運(yùn)算轉(zhuǎn)換為笛卡爾集運(yùn)算,派生維“統(tǒng)計(jì)區(qū)劃”部分運(yùn)算邏輯轉(zhuǎn)換為笛卡爾積示例參見圖7。本實(shí)施方式中從事實(shí)表生成應(yīng)用匯總表的偽代碼為:
[0076]INSERT INTO [應(yīng)用匯總表](”派生維”,”度量”)
[0077]SELECT DIMT.”派生維”,SUM (FACT.”度量”*DMT.”系數(shù)”)
[0078]FROM [事實(shí)表]FACT
[0079]INNER J0IN[派生維轉(zhuǎn)換表]DMT ON DIMT.” 原始維” =FACT.”原始維”
[0080]Group By DIMT.,,派生維”。
[0081]對(duì)于上述偽代碼,[]內(nèi)為表名標(biāo)識(shí),在開發(fā)過程中使用實(shí)際表名替換,O內(nèi)為表字段標(biāo)識(shí),在開發(fā)過程中使用實(shí)際表的實(shí)際字段替換。具體的INSERT INTO[應(yīng)用匯總表]表示將數(shù)據(jù)插入到應(yīng)用匯總表中,[應(yīng)用匯總表]指應(yīng)用匯總表的表名,在偽代碼中為“應(yīng)用匯總表表名”的標(biāo)識(shí),在開發(fā)代碼中根據(jù)實(shí)際的“應(yīng)用匯總表表名”進(jìn)行替換。(”派生維”,”度量”)指應(yīng)用匯總表的屬性字段(主要包括派生維ID字段和度量字段),在偽代碼中為派生維字段和度量字段的標(biāo)識(shí),在開發(fā)代碼中根據(jù)實(shí)際的“應(yīng)用匯總表”的表字段名稱進(jìn)行替換。SELECT表示查詢哪些字段,作為插入應(yīng)用匯總表的維度和度量;FR0M表示從事實(shí)表和派生維轉(zhuǎn)換表中查詢數(shù)據(jù);INNER JOIN通過派生維對(duì)應(yīng)的原始維度ID與事實(shí)表的原始維度ID相關(guān)聯(lián)。Group By表示分組的級(jí)次,按派生維分組。上述偽代碼的編寫對(duì)于本領(lǐng)域人員來說是屬于現(xiàn)有技術(shù),可以根據(jù)需要進(jìn)行調(diào)整。
[0082]上述步驟S21-S24的數(shù)據(jù)處理步驟中,在沒有明確數(shù)據(jù)如何利用之前,可以不執(zhí)行步驟S22、S23、S24,在明確數(shù)據(jù)如何利用之后,根據(jù)需要再生成維度表、事實(shí)表和應(yīng)用匯總表;當(dāng)然,在數(shù)據(jù)利用需求發(fā)生變化時(shí),步驟S22、S23、S24需要重新執(zhí)行。通過本發(fā)明的方法及系統(tǒng)進(jìn)行數(shù)據(jù)處理具有以下效果:
[0083]I)通過規(guī)范的數(shù)據(jù)處理流程提高數(shù)據(jù)質(zhì)量。數(shù)據(jù)依次進(jìn)入主題表、維度表、事實(shí)表和應(yīng)用匯總表,在轉(zhuǎn)換規(guī)則不明確時(shí),將數(shù)據(jù)存放在主題表中,數(shù)據(jù)沒有被刻意地轉(zhuǎn)換,保證了數(shù)據(jù)的原汁原味。
[0084]在維度表和事實(shí)表的基礎(chǔ)上增加了主題表、派生維和應(yīng)用匯總表概念,明確每類數(shù)據(jù)表的用途,將數(shù)據(jù)先放入主題表,數(shù)據(jù)轉(zhuǎn)換工作推遲到事實(shí)表和應(yīng)用匯總表生成之前。
[0085]2)處理后的數(shù)據(jù)具備較高實(shí)用性。進(jìn)入應(yīng)用匯總表的數(shù)據(jù)完全按照業(yè)務(wù)需要來生成,符合統(tǒng)計(jì)分析的需要。通過引入派生維定義,可以靈活設(shè)置“加”、“減”和“乘”的運(yùn)算關(guān)系,通過轉(zhuǎn)換為笛卡爾集運(yùn)算極大地提高了轉(zhuǎn)換效率,將業(yè)務(wù)人員產(chǎn)生的操作數(shù)據(jù)快速轉(zhuǎn)換為領(lǐng)導(dǎo)需要的統(tǒng)計(jì)分析數(shù)據(jù),讓數(shù)據(jù)變得更有價(jià)值。
[0086]3)數(shù)據(jù)能夠被重復(fù)利用。數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)以管理主題表為核心,而不僅僅是以生成多維立方體為目的。在分析需求發(fā)生變化時(shí),不需要重新加載原始數(shù)據(jù),維度表、事實(shí)表和應(yīng)用匯總表都可以依據(jù)主題表重新生成。
[0087]為了更好的理解本發(fā)明,下面結(jié)合具體的實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步說明。
[0088]實(shí)施例
[0089]該實(shí)施例中的原始數(shù)據(jù)為江蘇省的政府?dāng)?shù)據(jù),根據(jù)需要從眾多的政府?dāng)?shù)據(jù)中提取南京市、無(wú)錫市、徐州市、常州市和蘇州市五個(gè)地級(jí)市2013的合計(jì)“指標(biāo)金額”和“支出金額”,以及上述五個(gè)地級(jí)市中東部地區(qū)的“指標(biāo)金額”和“支出金額”,以及特殊口徑的“指標(biāo)金額”和“支出金額”。
[0090]上述的“特殊口徑”和“地市合計(jì)”、“東部地區(qū)” 一樣,都是指一種統(tǒng)計(jì)分析口徑,只是一種口徑標(biāo)識(shí)。“特殊口徑”主要用于不能歸類于正常分組的數(shù)據(jù)分析口徑標(biāo)識(shí)。口徑標(biāo)識(shí)的方式是多樣的,可以根據(jù)需要設(shè)置不同的口徑標(biāo)識(shí)。“指標(biāo)金額”指某個(gè)區(qū)劃(如南京市)、某個(gè)年度(如2013年)可以進(jìn)行財(cái)政支出的金額,相當(dāng)于指標(biāo)額度?!爸С鼋痤~”指某個(gè)區(qū)劃(如南京市)、某個(gè)年度(如2013年)實(shí)際發(fā)生的財(cái)政支出的金額、依據(jù)指標(biāo)額度進(jìn)行支出。
[0091]第一步,首先構(gòu)建一主題表,將江蘇省的政府?dāng)?shù)據(jù)存儲(chǔ)到主題表中。由于最終需要獲取的數(shù)據(jù)是五個(gè)地級(jí)市的相關(guān)數(shù)據(jù),需要建立區(qū)劃維度表,因此,在主題表中需要記錄下每個(gè)區(qū)劃的維度代碼和名稱。需要說明的是,主題表數(shù)據(jù)是最完整的,在生成主題表數(shù)據(jù)時(shí),維度表數(shù)據(jù)和非維度表數(shù)據(jù)(如金額數(shù)據(jù))都會(huì)生成。事實(shí)表數(shù)據(jù)再根據(jù)主題表數(shù)據(jù)生成。
[0092]第二步,根據(jù)主題表中區(qū)劃的維度代碼和名稱生成維度表,并在維度表中存儲(chǔ)需要的南京市、無(wú)錫市、徐州市、常州市和蘇州市五個(gè)區(qū)劃維度的維度代碼和名稱,并生成每個(gè)區(qū)劃維度的維度ID,如圖6所示。
[0093]第三步,將主題表中的維度代碼和維度表中的維度代碼關(guān)聯(lián),分別得到南京市、無(wú)錫市、徐州市、常州市和蘇州市的維度ID,并將得到的維度ID存儲(chǔ)到事實(shí)表中,同時(shí),將主題表中對(duì)應(yīng)維度ID下的“指標(biāo)金額”數(shù)據(jù)和“支出金額”數(shù)據(jù)存儲(chǔ)到事實(shí)表中,如圖7中所
/Jn ο[0094]第四步,根據(jù)需要,預(yù)設(shè)派生計(jì)算關(guān)系。具體的中需要統(tǒng)計(jì)的是上述五個(gè)地級(jí)市的合計(jì)“指標(biāo)金額”和“支出金額”,以及上述五個(gè)地級(jí)市中東部地區(qū)的“指標(biāo)金額”和“支出金額”,以及特殊口徑的“指標(biāo)金額”和“支出金額”,因此,派生計(jì)算公式設(shè)置為“3201南京市+3202無(wú)錫市+3203徐州市+3204常州市+3205蘇州市”、“3201南京市+3203徐州市+3204常州市”、“3201南京市+3205蘇州市”,并根據(jù)上述計(jì)算公式生成派生維度表,如圖8所示,之后將上述計(jì)算關(guān)系轉(zhuǎn)換為如圖9所示的笛卡爾積關(guān)系表。最后關(guān)聯(lián)派生維度表和事實(shí)表,通過偽代碼的方式生成應(yīng)用匯總表,得到需要的數(shù)據(jù),如圖10中所示,得到的五個(gè)地區(qū)的合計(jì)“指標(biāo)金額”和“支出金額”分別為790和700,東部地區(qū)的“指標(biāo)金額”和“支出金額”分別為470和410,特殊口徑的“指標(biāo)金額”和“支出金額”分別為220和190。
[0095]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,包括以下步驟: (1)將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類原始業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表; (2)根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID ; (3)根據(jù)所述的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中; (4)根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。
2.如權(quán)利要求1所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(1)中,將原始數(shù)據(jù)存儲(chǔ)到主題表之前,首先將原始數(shù)據(jù)存儲(chǔ)到臨時(shí)區(qū),之后從臨時(shí)區(qū)獲取原始數(shù)據(jù)存儲(chǔ)到主題表中,將原始數(shù)據(jù)存儲(chǔ)到主題表后,刪除臨時(shí)區(qū)中對(duì)應(yīng)的原始數(shù)據(jù)。
3.如權(quán)利要求1或2所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(1)中,對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理后,再將原始數(shù)據(jù)存儲(chǔ)到主題表中;所述的預(yù)處理包括補(bǔ)齊原始數(shù)據(jù)缺少的全局性屬性、統(tǒng)一轉(zhuǎn)換區(qū)劃和日期屬性、以及刪除主題表中不需要的數(shù)據(jù);所述的不需要的數(shù)據(jù)包括作廢和在途的業(yè)務(wù)數(shù)據(jù)。
4.如權(quán)利要求1所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(3)中,根據(jù)維度ID從主題表生成與維度表關(guān)聯(lián)的事實(shí)表的具體方式包括: 根據(jù)需要的數(shù)據(jù)的維度名稱,在主題表中獲取該維度名稱對(duì)應(yīng)的維度代碼,將主題表中記錄的維度代碼與對(duì)應(yīng)維度表中的維度代碼關(guān)聯(lián),得到維度ID,將維度ID存儲(chǔ)到事實(shí)表中,并將主題表中該維度下的 非維度表數(shù)據(jù)直接存儲(chǔ)到事實(shí)表中。
5.如權(quán)利要求1或4所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(3)中,生成事實(shí)表時(shí),采用增量抽取的方式,只抽取設(shè)定時(shí)間段的主題表中的數(shù)據(jù)更新到事實(shí)表中。
6.如權(quán)利要求1至4之一所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(4)中,根據(jù)需要從事實(shí)表生成應(yīng)用匯總表的具體方式包括: 根據(jù)需要,預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系; 將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成應(yīng)用匯總表。
7.如權(quán)利要求6所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(4)中,所述的派生計(jì)算關(guān)系包括加、減和乘的運(yùn)算關(guān)系。
8.如權(quán)利要求7所述的一種數(shù)據(jù)處理方法,其特征在于,步驟(4)中,根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換時(shí),將所述的派生計(jì)算關(guān)系轉(zhuǎn)換為笛卡爾積的運(yùn)算關(guān)系。
9.一種數(shù)據(jù)處理系統(tǒng),包括: 主題表構(gòu)建模塊,用于建立主題表,將原始數(shù)據(jù)存儲(chǔ)到主題表中,并在主題表中記錄需要生成維度表的維度的代碼和名稱;所述的主題表是指根據(jù)業(yè)務(wù)對(duì)象的描述需求構(gòu)建的用于存儲(chǔ)各類業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表; 維度表生成模塊,用于根據(jù)主題表中記錄的維度的代碼和名稱生成對(duì)應(yīng)的維度表,將對(duì)應(yīng)的維度表數(shù)據(jù)存儲(chǔ)在維度表中,并生成每一個(gè)維度的維度ID ; 事實(shí)表生成模塊,用于根據(jù)所述的維度ID,從主題表生成與維度表關(guān)聯(lián)的事實(shí)表,并將對(duì)應(yīng)的事實(shí)表數(shù)據(jù)存儲(chǔ)在事實(shí)表中; 應(yīng)用匯總表生成模塊,根據(jù)需要從事實(shí)表生成應(yīng)用匯總表,得到應(yīng)用匯總數(shù)據(jù),并存儲(chǔ)到應(yīng)用匯總表中;所述的應(yīng)用匯總表用于存儲(chǔ)根據(jù)預(yù)設(shè)的派生計(jì)算關(guān)系將事實(shí)表中的數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)。
10.如權(quán)利要求9所述的一種數(shù)據(jù)處理系統(tǒng),其特征在于,所述的應(yīng)用匯總表生成模塊包括: 派生維度表生成單元,用于預(yù)設(shè)派生計(jì)算關(guān)系,根據(jù)派生計(jì)算關(guān)系生成派生維度表;所述的派生計(jì)算關(guān)系是指派生維度表與維度表之間的計(jì)算關(guān)系; 應(yīng)用匯總表生成單元,用于將派生計(jì)算公式與事實(shí)表中的維度ID關(guān)聯(lián),并根據(jù)派生計(jì)算公式對(duì)事實(shí)表中的數(shù)據(jù)進(jìn)行轉(zhuǎn)·換,生成應(yīng)用匯總表。
【文檔編號(hào)】G06F17/30GK103853820SQ201410058539
【公開日】2014年6月11日 申請(qǐng)日期:2014年2月20日 優(yōu)先權(quán)日:2014年2月20日
【發(fā)明者】陳國(guó)強(qiáng), 朱培冬, 郝棟, 姬永杰, 劉廣財(cái) 申請(qǐng)人:北京用友政務(wù)軟件有限公司