監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

基于多維模型的獨(dú)立型數(shù)據(jù)集市數(shù)據(jù)轉(zhuǎn)換

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來源:泛普軟件

數(shù)據(jù)集市為用戶提供部門級(jí)的決策分析依據(jù),其數(shù)據(jù)的可用性及其數(shù)據(jù)質(zhì)量直接影響了管理者的決策。數(shù)據(jù)轉(zhuǎn)換的成功與否制約著決策者能否制訂出行之有效的決策。所以數(shù)據(jù)轉(zhuǎn)換是用戶是否能得到高質(zhì)量信息進(jìn)行決策分析的前提。

針對(duì)獨(dú)立型數(shù)據(jù)集市的特點(diǎn),本文在基于維度的數(shù)據(jù)轉(zhuǎn)換模型基礎(chǔ)上本文詳細(xì)討論了基于維度模型的獨(dú)立型數(shù)據(jù)集市數(shù)據(jù)轉(zhuǎn)換的內(nèi)容,并進(jìn)一步研究了多段數(shù)據(jù)轉(zhuǎn)換及管道數(shù)據(jù)轉(zhuǎn)換的轉(zhuǎn)換策略。

1 數(shù)據(jù)轉(zhuǎn)換內(nèi)容

獨(dú)立型的數(shù)據(jù)集市由于其抽取的數(shù)據(jù)來自O(shè)LTP(on line transaction processing,聯(lián)機(jī)事務(wù)處理)環(huán)境,因而多種類型數(shù)據(jù)源決定了獨(dú)立型數(shù)據(jù)集市的數(shù)據(jù)轉(zhuǎn)換將是ETL(Extract Transform Cleansing and Load,抽取、轉(zhuǎn)換、清洗、裝載)過程中最為復(fù)雜的一部分。數(shù)據(jù)集市以多維模型建模的特點(diǎn)決定了數(shù)據(jù)轉(zhuǎn)換過程可分四個(gè)主要的過程:粒度劃分、維度表的數(shù)據(jù)轉(zhuǎn)換、事實(shí)表的數(shù)據(jù)轉(zhuǎn)換及數(shù)據(jù)清洗。具體數(shù)據(jù)基本轉(zhuǎn)換過程如圖1所示。

1.1 代理關(guān)鍵字生成

代理關(guān)鍵字通常被分配成整型,并且每增加一個(gè)新鍵,會(huì)將該鍵加1。若數(shù)據(jù)轉(zhuǎn)換是在關(guān)系數(shù)據(jù)庫的管理系統(tǒng)中時(shí),可以通過創(chuàng)建一個(gè)序列來完成代理鍵的分配。當(dāng)數(shù)據(jù)抽取基于文件而不是基于數(shù)據(jù)流形式時(shí),代理關(guān)鍵字的分配邏輯同樣也很簡單:在沒有使用數(shù)據(jù)庫序列時(shí),應(yīng)該將當(dāng)前(或者下一個(gè))代理關(guān)鍵字保存到指定的元數(shù)據(jù)中,以避免在每次為新鍵分配鍵值時(shí)都必須執(zhí)行max(代理關(guān)鍵字)+1操作。

圖1 數(shù)據(jù)轉(zhuǎn)換過程

為了能在數(shù)據(jù)集市中使用代理關(guān)鍵字,必須借助于元數(shù)據(jù)的使用,即在元數(shù)據(jù)庫中同時(shí)為每個(gè)維度維護(hù)一個(gè)永久性的主交叉引用表。交叉引用表連同屬性概況表一起,跟蹤某個(gè)時(shí)間點(diǎn)分配給一個(gè)操作型關(guān)鍵字的代理關(guān)鍵字。一旦維度表反映最新的抽取,那么此維度表將被元數(shù)據(jù)中心發(fā)布給使用該維度的所有數(shù)據(jù)中心。

1.2 基本數(shù)據(jù)轉(zhuǎn)換

對(duì)于維度表來說有兩種最基本的轉(zhuǎn)換:簡單數(shù)據(jù)轉(zhuǎn)換和一般數(shù)據(jù)轉(zhuǎn)換。前者包括數(shù)據(jù)類型、格式、日期/時(shí)間及維度標(biāo)簽修飾等數(shù)據(jù)轉(zhuǎn)換;后者包括字段的解碼、單個(gè)字段的分離、匯總及度量單位的轉(zhuǎn)化等稍微復(fù)雜的數(shù)據(jù)轉(zhuǎn)換。維度轉(zhuǎn)換往往要借助于在元數(shù)據(jù)庫中建立的由源數(shù)據(jù)到目標(biāo)數(shù)據(jù)的映射表才能完成。

1.3 代理關(guān)鍵字處理

代理關(guān)鍵字的處理主要是指在事實(shí)表轉(zhuǎn)換的過程中用代理關(guān)鍵字取代操作源關(guān)鍵字。此時(shí),源系統(tǒng)中的關(guān)鍵字將不再被使用(演變成退化維度),而用代理關(guān)鍵字進(jìn)行取代。在取代過程中,需要使用最新代理關(guān)鍵字分配表。針對(duì)每個(gè)維度對(duì)事實(shí)表進(jìn)行一次遍歷,就可以快速地將遇到的每個(gè)源系統(tǒng)關(guān)鍵字用最新的代理關(guān)鍵字替換掉。

需要注意的是,在裝載歷史數(shù)據(jù)時(shí),需要獨(dú)立的處理來執(zhí)行代理關(guān)鍵字的查找,因?yàn)椴恍枰獙⒆钚碌漠?dāng)前值映射到歷史數(shù)據(jù)。此時(shí),需要?jiǎng)?chuàng)建代理關(guān)鍵字的查找邏輯,并且在生成事實(shí)記錄時(shí)應(yīng)用該邏輯。這就意味著,當(dāng)事實(shí)的事務(wù)處理日期介于代理鍵的有效開始日期與有效結(jié)束日期之間時(shí),就應(yīng)該查找代理關(guān)鍵字。

1.4 反規(guī)范化和重規(guī)范化

為了提高數(shù)據(jù)的質(zhì)量,需要某些情況下從業(yè)務(wù)角度出發(fā)對(duì)數(shù)據(jù)庫執(zhí)行反規(guī)范化處理。在數(shù)據(jù)集市中,通常最好將這些實(shí)體轉(zhuǎn)軸成若干獨(dú)立列,以便簡化各種變量的計(jì)算。

在轉(zhuǎn)換過程中進(jìn)行規(guī)范化處理也很常見,例如,傳統(tǒng)OLTP系統(tǒng)中,存在很多反規(guī)范化的用于報(bào)告生成的大型平面文件,此時(shí),要將列數(shù)據(jù)縱向分割成行形式,且每一行代表來源的系統(tǒng)報(bào)告中一個(gè)月的情況,這時(shí)所要做的轉(zhuǎn)換就是先獲取數(shù)據(jù),再將該數(shù)據(jù)從某個(gè)行逆向轉(zhuǎn)軸成某個(gè)日期列和相關(guān)數(shù)值,其中的每一行代表每個(gè)日期的情況。

1.5 參照完整性的處理

在數(shù)據(jù)轉(zhuǎn)換過程中,參照完整性是指對(duì)于事實(shí)表中的每個(gè)外鍵,在對(duì)應(yīng)維度表中都會(huì)存在一個(gè)記錄。因此,當(dāng)對(duì)事實(shí)表進(jìn)行轉(zhuǎn)換時(shí),若在事實(shí)表中存在的某一記錄信息,則與之相關(guān)的信息應(yīng)該在維度表中得到體現(xiàn)。參照完整性的處理方法主要包括:

(1)對(duì)事實(shí)表數(shù)據(jù)進(jìn)行質(zhì)量驗(yàn)收,應(yīng)該生成更多的行計(jì)數(shù)與參考腳注,以便與抽取統(tǒng)計(jì)值進(jìn)行比較;

(2)在代理關(guān)鍵字替代維表的主鍵以后,就應(yīng)該在事實(shí)表中選取合適的鍵作為外鍵,以確保該事實(shí)表與對(duì)應(yīng)的維度表之間建立了完整性參照關(guān)系;

(3)不能將空值用于事實(shí)表和維度表之間的連接操作,此時(shí)應(yīng)該先使用匿名的整型鍵來執(zhí)行連接操作。

2 多階段數(shù)據(jù)轉(zhuǎn)換

2.1 多階段數(shù)據(jù)轉(zhuǎn)換的基本概念

多階段數(shù)據(jù)轉(zhuǎn)換是通過對(duì)數(shù)據(jù)轉(zhuǎn)換過程中產(chǎn)生的臨時(shí)表進(jìn)行數(shù)據(jù)清洗,以及利用不同階段的檢查點(diǎn)對(duì)數(shù)據(jù)進(jìn)行各種完整性及正確性檢查的策略。在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),需要每一過程分解為不同的SQL操作,并創(chuàng)建不同的、臨時(shí)的階段表,為每個(gè)轉(zhuǎn)換步驟存儲(chǔ)結(jié)果。獨(dú)立型數(shù)據(jù)集市的數(shù)據(jù)源來自于OLTP數(shù)據(jù)庫、遺留系統(tǒng)或者各種外部文檔,ETL程序把這些不同類型數(shù)據(jù)源中的數(shù)據(jù)抽取后生成了中間文件,為數(shù)據(jù)轉(zhuǎn)換提供處理數(shù)據(jù),該策略為整個(gè)轉(zhuǎn)換過程提供了檢查點(diǎn),使得整個(gè)過程更加容易監(jiān)視和重新啟動(dòng)。

多階段數(shù)據(jù)轉(zhuǎn)換除了可以較容易的根據(jù)用戶的定制實(shí)現(xiàn)各種類型的數(shù)據(jù)轉(zhuǎn)換,在數(shù)據(jù)集市的DBMS與數(shù)據(jù)源的DBMS是異構(gòu)并且需要XML文件作為中間媒介的情況下,可以利用多階段數(shù)據(jù)轉(zhuǎn)換將抽取生成的XML文件轉(zhuǎn)換成與數(shù)據(jù)集市同構(gòu)的DMBS,然后再進(jìn)行其它階段的轉(zhuǎn)換。多階段數(shù)據(jù)轉(zhuǎn)換大多是在數(shù)據(jù)庫之外,在成功的完成數(shù)據(jù)轉(zhuǎn)換和清洗工作后,新數(shù)據(jù)被載入到數(shù)據(jù)庫。

2.2 維度表轉(zhuǎn)換

針對(duì)本文提出的轉(zhuǎn)換過程,獨(dú)立型數(shù)據(jù)集市的數(shù)據(jù)轉(zhuǎn)換的過程可以劃分為兩個(gè)父階段(維度表轉(zhuǎn)換和事實(shí)表轉(zhuǎn)換)和一個(gè)基本過程(粒度劃分),每一個(gè)父階段又可以劃分為若干小的子階段,如維度表轉(zhuǎn)換就可以再劃分為代理關(guān)鍵字生成、數(shù)據(jù)清洗、基本數(shù)據(jù)轉(zhuǎn)換三個(gè)子階段。而基本數(shù)據(jù)轉(zhuǎn)換根據(jù)不同需要又可分為簡單轉(zhuǎn)換和一般數(shù)據(jù)轉(zhuǎn)換(參見1.2中的內(nèi)容)。維度表多階段轉(zhuǎn)換具體實(shí)現(xiàn)策略如圖2所示。

圖2 多階段維度表轉(zhuǎn)換策略

發(fā)布:2007-04-25 16:47    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普泛普博客其他應(yīng)用

泛普OA商務(wù)合同 泛普OA需求調(diào)研 泛普OA實(shí)施方案 泛普OA項(xiàng)目啟動(dòng) 泛普網(wǎng)絡(luò)硬件配置 泛普OA部署安裝 泛普流程模板表單 OA系統(tǒng)二次開發(fā) 泛普常見問題解決 泛普OA操作手冊(cè) 泛普軟件項(xiàng)目驗(yàn)收 泛普培訓(xùn)推廣上線 泛普OA售后服務(wù) 泛普新聞 泛普期刊 泛普博客