一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)領(lǐng)域,尤其涉及一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理方法和系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫(kù)(Database )是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的處理大致分為兩類:一類是操作型處理,這類處理通常用于對(duì)數(shù)據(jù)庫(kù)中的少數(shù)記錄進(jìn)行查詢、修改;另一類是分析型處理,這類處理一般用于對(duì)歷史數(shù)據(jù)進(jìn)行分析,使得數(shù)據(jù)能夠應(yīng)用于決策,所述分析型處理后得到的面向主題的、集成的、與時(shí)間相關(guān)的、不可修改的數(shù)據(jù)集合可以稱為數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)的任務(wù)主要是把信息加以整理歸納和重組,并及時(shí)提供給決策人員。目前數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理通常通過(guò)分布式系統(tǒng)來(lái)實(shí)現(xiàn),所述分布式系統(tǒng)可以將多臺(tái)計(jì)算機(jī)聯(lián)合起來(lái),構(gòu)成計(jì)算機(jī)群,并行處理大規(guī)模的數(shù)據(jù),同時(shí)在多臺(tái)計(jì)算機(jī)上運(yùn)行不同任務(wù)。
[0003]目前數(shù)據(jù)倉(cāng)庫(kù)中對(duì)數(shù)據(jù)進(jìn)行處理一般建立在ETL數(shù)據(jù)處理理論的基礎(chǔ)上的,ETL是指Extract1n (抽取)、Transformat1n (轉(zhuǎn)換)、和Loading (加載)。具體的ETL操作包括:將業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)抽取出來(lái),并將不同數(shù)據(jù)源的數(shù)據(jù)按照業(yè)務(wù)需要進(jìn)行轉(zhuǎn)換和整合,得出目標(biāo)數(shù)據(jù),然后將目標(biāo)數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中。
[0004]數(shù)據(jù)倉(cāng)庫(kù)一般是以數(shù)據(jù)表的結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),每個(gè)數(shù)據(jù)表對(duì)應(yīng)一個(gè)數(shù)據(jù)對(duì)象。數(shù)據(jù)表是指一系列二維數(shù)組的集合,通常用來(lái)代表和儲(chǔ)存數(shù)據(jù)對(duì)象之間的關(guān)系。數(shù)據(jù)庫(kù)表可以由縱向的列和橫向的行組成,例如一個(gè)有關(guān)作者信息的名為“作者”的表中,每個(gè)列包含的是所有作者的某個(gè)特定類型的信息,比如“姓氏”,而每行則包含了某個(gè)特定作者的所有信息:姓、名、住址等等。對(duì)于特定的數(shù)據(jù)庫(kù)表,列的數(shù)目一般事先固定,各列之間可以由列名來(lái)識(shí)別。
[0005]在數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理過(guò)程中,通常將建立或生成一個(gè)數(shù)據(jù)表作為一個(gè)任務(wù),所述任務(wù)的初始狀態(tài)可以是未完成狀態(tài);對(duì)每一個(gè)任務(wù)設(shè)置一個(gè)任務(wù)狀態(tài)標(biāo)識(shí)來(lái)表不該任務(wù)的任務(wù)狀態(tài),例如用“O”表示任務(wù)狀態(tài)為未完成,用“I”表示任務(wù)狀態(tài)為完成。若需要第一個(gè)任務(wù)完成后才能執(zhí)行第二個(gè)任務(wù),那么所述第一個(gè)任務(wù)稱為父任務(wù),所述第二個(gè)任務(wù)稱為子任務(wù)。對(duì)于數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理過(guò)程,父任務(wù)和子任務(wù)分別占用調(diào)度系統(tǒng)的一個(gè)調(diào)度層級(jí)。調(diào)度系統(tǒng)可以記錄各個(gè)任務(wù)之間的依賴關(guān)系。通常,數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理過(guò)程中,子任務(wù)每隔預(yù)定時(shí)間,主動(dòng)查詢其依賴的父任務(wù)的任務(wù)狀態(tài)。若父任務(wù)的任務(wù)狀態(tài)均為已完成狀態(tài),則可以執(zhí)行子任務(wù)。
[0006]常用的數(shù)據(jù)處理方法包括稱為Inmon的企業(yè)信息化工廠式的數(shù)據(jù)處理方法和稱為Kimball的維度數(shù)據(jù)倉(cāng)庫(kù)總線體系結(jié)式的數(shù)據(jù)處理方法構(gòu)。
[0007]所述Inmon的企業(yè)信息化工廠式的數(shù)據(jù)處理方法,該數(shù)據(jù)處理方法通過(guò)ETL將業(yè)務(wù)源系統(tǒng)的數(shù)據(jù)經(jīng)過(guò)抽取、轉(zhuǎn)換之后加載到企業(yè)數(shù)據(jù)倉(cāng)庫(kù),在此企業(yè)數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)層上建立面向主題的數(shù)據(jù)集市。在主題數(shù)據(jù)集市的基礎(chǔ)上,提供應(yīng)用層服務(wù)。所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)模型遵循實(shí)體-聯(lián)系模型(簡(jiǎn)稱E-R模型)的原則來(lái)設(shè)計(jì)。所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)層基于原始數(shù)據(jù)的性質(zhì),盡可能保存粒度最細(xì)的數(shù)據(jù)。所述方法在數(shù)據(jù)集市中采用維度設(shè)計(jì)的方法。
[0008]另一種稱為Kimball的維度數(shù)據(jù)倉(cāng)庫(kù)總線體系結(jié)構(gòu)式的數(shù)據(jù)處理方法,該數(shù)據(jù)處理方法主要從業(yè)務(wù)源系統(tǒng)根據(jù)ETL理論建立維度數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)層。所述維度數(shù)據(jù)基礎(chǔ)層根據(jù)維度建模的原則來(lái)設(shè)計(jì),由一系列的星型模型和多維數(shù)據(jù)集組成。在維度數(shù)據(jù)模型的基礎(chǔ)上建立面向主題的數(shù)據(jù)集市,數(shù)據(jù)集市同樣采用維度建模的原則,對(duì)基礎(chǔ)層重新進(jìn)行維度定義和聚合。再在主題集市的基礎(chǔ)上,建立各種應(yīng)用層服務(wù)。
[0009]上述兩種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理方法實(shí)現(xiàn)時(shí)將數(shù)據(jù)倉(cāng)庫(kù)劃分為四層結(jié)構(gòu),分別為:源系統(tǒng)數(shù)據(jù)處理層、企業(yè)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理層、通用維度模型數(shù)據(jù)處理層和應(yīng)用數(shù)據(jù)處理層。源系統(tǒng)數(shù)據(jù)處理層用于從業(yè)務(wù)系統(tǒng)抽取原始數(shù)據(jù),所述源系統(tǒng)數(shù)據(jù)處理層一般占用調(diào)度系統(tǒng)的一個(gè)調(diào)度層級(jí);企業(yè)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理層用于以關(guān)系模型存儲(chǔ)各類業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)海量數(shù)據(jù)的集中、穩(wěn)定、有序存貯,所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理層一般占用調(diào)度系統(tǒng)的一個(gè)或兩個(gè)調(diào)度層級(jí);通用維度模型數(shù)據(jù)處理層用于根據(jù)主題應(yīng)用存貯數(shù)據(jù)集合,所述通用維度模型數(shù)據(jù)處理層對(duì)數(shù)據(jù)處理時(shí)任務(wù)比較復(fù)雜,一般需要占用調(diào)度系統(tǒng)的多個(gè)調(diào)度層級(jí);應(yīng)用數(shù)據(jù)處理層主要用于向用戶提供業(yè)務(wù)數(shù)據(jù),所述應(yīng)用數(shù)據(jù)處理層一般占用調(diào)度系統(tǒng)的一個(gè)層級(jí)。
[0010]在實(shí)現(xiàn)本申請(qǐng)過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:
[0011]由于通用維度模型數(shù)據(jù)處理層在對(duì)數(shù)據(jù)進(jìn)行處理時(shí)任務(wù)比較復(fù)雜,通用維度模型數(shù)據(jù)處理層級(jí)中的任務(wù)在該層級(jí)內(nèi)部相互依賴,這樣通用維度模型層在處理數(shù)據(jù)時(shí)實(shí)際會(huì)占用調(diào)度系統(tǒng)的多個(gè)調(diào)度層級(jí)。例如通用維度模型層中的任務(wù)可能既包含對(duì)基礎(chǔ)信息進(jìn)行描述,也包含對(duì)信息進(jìn)行匯總、統(tǒng)計(jì)等,而對(duì)信息進(jìn)行匯總依賴于對(duì)基礎(chǔ)信息進(jìn)行描述,對(duì)信息進(jìn)行統(tǒng)計(jì)又依賴于對(duì)信息進(jìn)行匯總。這樣,可能多個(gè)任務(wù)依賴少數(shù)幾個(gè)任務(wù),那么在某個(gè)時(shí)間段,所述通用維度模型層中可能只有所述少數(shù)幾個(gè)任務(wù)在執(zhí)行,下游節(jié)點(diǎn)的所述多個(gè)任務(wù)都在等待所述少數(shù)幾個(gè)任務(wù)結(jié)束,這樣分布式系統(tǒng)環(huán)境下的計(jì)算機(jī)資源不能被有效利用,數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理效率不高。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的在于提高一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理方法和系統(tǒng),以提高數(shù)據(jù)處理效率。
[0013]一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理方法,包括:
[0014]從業(yè)務(wù)系統(tǒng)中抽取出原始數(shù)據(jù)并生成源系統(tǒng)數(shù)據(jù)表;
[0015]對(duì)源系統(tǒng)數(shù)據(jù)表去冗余并對(duì)數(shù)據(jù)記歷史,建立歷史數(shù)據(jù)表;
[0016]建立事實(shí)數(shù)據(jù)表對(duì)歷史數(shù)據(jù)表的數(shù)據(jù)進(jìn)行歸類;
[0017]對(duì)事實(shí)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行匯總,建立匯總數(shù)據(jù)表;
[0018]統(tǒng)計(jì)兩個(gè)或兩個(gè)以上匯總數(shù)據(jù)表之間的指標(biāo)數(shù)據(jù),建立統(tǒng)計(jì)數(shù)據(jù)表;
[0019]基于事實(shí)數(shù)據(jù)表、匯總數(shù)據(jù)表、統(tǒng)計(jì)數(shù)據(jù)表的數(shù)據(jù),建立應(yīng)用數(shù)據(jù)表。
[0020]優(yōu)選方案中,所述數(shù)據(jù)處理方法還包括:
[0021]對(duì)歷史數(shù)據(jù)表中的底層數(shù)據(jù)進(jìn)行分析歸類,建立歸類數(shù)據(jù)表;
[0022]相應(yīng)地,所述建立事實(shí)數(shù)據(jù)表對(duì)歷史數(shù)據(jù)表的數(shù)據(jù)進(jìn)行歸類,包括:建立事實(shí)數(shù)據(jù)表對(duì)歷史數(shù)據(jù)表和/或歸類數(shù)據(jù)表的數(shù)據(jù)進(jìn)行歸類。
[0023]優(yōu)選方案中,所述建立一個(gè)數(shù)據(jù)表稱為一個(gè)當(dāng)前任務(wù);每一任務(wù)的初始任務(wù)狀態(tài)為未完成狀態(tài)。
[0024]優(yōu)選方案中,設(shè)置一狀態(tài)標(biāo)識(shí)來(lái)表不每一任務(wù)的任務(wù)狀態(tài)。
[0025]優(yōu)選方案中,在所述建立任一數(shù)據(jù)表之前,還包括:
[0026]查詢當(dāng)前任務(wù)所依賴的父任務(wù)的任務(wù)狀態(tài);
[0027]若父任務(wù)的狀態(tài)均為完成狀態(tài),執(zhí)行當(dāng)前任務(wù);
[0028]若父任務(wù)的狀態(tài)中至少有一個(gè)父任務(wù)是未完成狀態(tài),在預(yù)定時(shí)間間隔后,重新查詢當(dāng)前任務(wù)所依賴的父任務(wù)的任務(wù)狀態(tài)。
[0029]一種數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理系統(tǒng),包括:源系統(tǒng)數(shù)據(jù)處理單元、企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元、通用維度模型第一處理單元、通用維度模型第二處理單元、通用維度模型第三處理單元、應(yīng)用數(shù)據(jù)處理單元;其中,
[0030]所述源系統(tǒng)數(shù)據(jù)處理單元,用于從各個(gè)業(yè)務(wù)系統(tǒng)中抽取出原始數(shù)據(jù),生成一個(gè)或一個(gè)以上的源系統(tǒng)數(shù)據(jù)表;
[0031]所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元,用于對(duì)源系統(tǒng)數(shù)據(jù)處理單元中的源系統(tǒng)數(shù)據(jù)表去冗余并對(duì)數(shù)據(jù)記歷史,產(chǎn)生與源系統(tǒng)數(shù)據(jù)表相對(duì)應(yīng)的一個(gè)或一個(gè)以上的歷史數(shù)據(jù)表;
[0032]所述通用維度模型第一處理單元,用于建立一個(gè)或一個(gè)以上的事實(shí)表對(duì)企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元的數(shù)據(jù)進(jìn)行歸類;
[0033]所述通用維度模型第二處理單元,用于對(duì)通用維度模型第一處理單元的數(shù)據(jù)進(jìn)行匯總,生成至少一個(gè)匯總數(shù)據(jù)表;
[0034]所述通用維度模型第三處理單元,用于統(tǒng)計(jì)通用維度模型第二處理單元中表與表的指標(biāo)數(shù)據(jù),生成至少一個(gè)統(tǒng)計(jì)數(shù)據(jù)表;
[0035]所述應(yīng)用數(shù)據(jù)處理單元,用于根據(jù)通用維度模型第一處理單元、通用維度模型第二處理單元、通用維度模型第三處理單元的數(shù)據(jù)生成應(yīng)用數(shù)據(jù)表。
[0036]優(yōu)選方案中,
[0037]所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元調(diào)用源系統(tǒng)數(shù)據(jù)處理單元的結(jié)果;
[0038]所述通用維度模型第一處理單元調(diào)用企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元的結(jié)果;
[0039]所述通用維度模型第二處理單元調(diào)用通用維度模型第一處理單元的結(jié)果;
[0040]所述通用維度模型第三處理單元調(diào)用通用維度模型第二處理單元的結(jié)果;
[0041]所述應(yīng)用數(shù)據(jù)處理單元,調(diào)用通用維度模型第一處理單元、通用維度模型第二處理單元、通用維度模型第三處理單元的結(jié)果。
[0042]優(yōu)選方案中,所述數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理系統(tǒng),還包括:企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第二處理單元;
[0043]所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第二處理單元,用于對(duì)企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元中的底層數(shù)據(jù)進(jìn)行分析歸類,生成歸類數(shù)據(jù)表;
[0044]相應(yīng)地,所述通用維度模型第一處理單元,用于建立一個(gè)或一個(gè)以上的事實(shí)表對(duì)企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元、企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第二處理單元的數(shù)據(jù)進(jìn)行歸類;
[0045]優(yōu)選方案中,所述企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第二處理單元調(diào)用企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元的結(jié)果;
[0046]相應(yīng)地,所述通用維度模型第一處理單元調(diào)用企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第一處理單元和/或企業(yè)數(shù)據(jù)倉(cāng)庫(kù)第二處理單元的結(jié)果。