0 引言
商業(yè)智能是在必要的時間段,把正確有用的信息傳遞給適當?shù)臎Q策制定者,為企業(yè)提供有效決策。商業(yè)智能是以數(shù)據(jù)倉庫為基礎,運用OLAP、數(shù)據(jù)挖掘算法等對數(shù)據(jù)倉庫數(shù)據(jù)進行發(fā)現(xiàn)。而其中的數(shù)據(jù)通過ETL工具來抽取,轉換,加載到數(shù)據(jù)倉庫中。ETL工具主要作用是從操作數(shù)據(jù)源導出數(shù)據(jù),轉換成統(tǒng)一的目標表,最后裝載到數(shù)據(jù)倉庫中。主要作用:一是有識別數(shù)據(jù)源的相關信息。二是抽取這些相關信息。三是將不同的數(shù)據(jù)源的信息統(tǒng)一格式。四是按照數(shù)據(jù)庫抽取規(guī)則清洗數(shù)據(jù)集。五是將數(shù)據(jù)裝載到數(shù)據(jù)倉庫或數(shù)據(jù)集市上。
ETL過程是一個復雜的過程,ETL過程開發(fā)時間占整個數(shù)據(jù)倉庫項目的80%,關系到整個數(shù)據(jù)倉庫項目。ETL過程建模常常分為兩個階段:概念建模和邏輯模型。數(shù)據(jù)倉庫前期設計主要研究ETL過程概念和屬性的內(nèi)在屬性,這個時候建模稱為概念建模。數(shù)據(jù)倉庫后期設計主要研究是ETL數(shù)據(jù)流流向,這個時候建模稱為邏輯建模。為了簡化了整個ETL過程建設,提出了一個將概念模型轉換成邏輯模型的映射算法。
1 ETL過程模型
1.1 概念模型
1.1.1 模型描述
在數(shù)據(jù)倉庫前期設計中,數(shù)據(jù)據(jù)倉庫設計者主要關注兩個方面:一個是分析用戶需求,第二個是就是分析現(xiàn)有數(shù)據(jù)源的結構和內(nèi)容以及如何將源數(shù)據(jù)映射到數(shù)據(jù)倉庫中,這對整個數(shù)據(jù)倉庫建模能否成功起到至關重要的。這個時期主要問題是需要反復修正建模結果,修正假設條件以及映射規(guī)則,而概念模型能夠很好解決這個問題。
概念模型主要分為兩層:元模型層和ETL層,如圖1所示。元模型層是由一組關于ETL過程的元數(shù)據(jù)的概念組成。ETL層是對ETL場景的描述。通過兩個層,讓ETL過程只關注在ETL過程概念和屬性內(nèi)在關系。
圖1 ETL概念模型框架
1.1.2 元模型層
(1)概念和屬性
屬性:一個粒狀信息即數(shù)據(jù)表示的最小單元。在關系數(shù)據(jù)表中屬性就是一個字段,在記錄文件中屬性就是一列。
概念:一個概念代表在數(shù)據(jù)庫和數(shù)據(jù)倉庫中一個實體。概念在數(shù)據(jù)源中是一個關系數(shù)據(jù)表或者記錄文件,而在數(shù)據(jù)倉庫中是事實表和維度表等等。一個概念是一個名字和有限個屬性集合。
(2)轉換和關系
轉換:一個轉換通常定義為有限個輸入屬性。有限個輸出屬性,和轉換本身的特征組成的。轉換是執(zhí)行單一任務,兩個主要轉換是過濾和數(shù)據(jù)清洗操作。
關系:關系是對屬性轉換的一個抽象?梢苑譃樘峁┱哧P系,部分關系和候選關系等等。
(3)約束
約束:約束定義為有約束的有限的屬性集合,和是一個執(zhí)行約束的轉換。當設計者需要對一個概念的數(shù)據(jù)有不同要求時,就要用到約束。比如,設計者需要加一個外鍵到一個屬性上。
1.1.3 ETL層
ETL層是通過元模型層來描述具體ETL場景。由于元模型中具有很強的語義,能夠很好描述ETL過程。用一個例子描述上面的建模問題,文中同樣會使用這個例子。
1.1.4 例子
有兩個數(shù)據(jù)源S1、S2和一個數(shù)據(jù)倉庫DW。數(shù)據(jù)源S1和數(shù)據(jù)倉庫DW都是在中國。而數(shù)據(jù)源S2是在美國。數(shù)據(jù)源S1的數(shù)據(jù)表信息S1.PARTSUPP(PKEY,SUPPKEY,CDATE,DEPART,QTY,COST)按照每日對數(shù)據(jù)進行存儲。其中日期是中國日期和額度是人民幣。數(shù)據(jù)源S2的數(shù)據(jù)表信息S2.PART-SUPP(PKEY,SUPPKEY,ADATE,QTY,COST)按照每月對數(shù)據(jù)進行存儲,其中日期美國時間和額度是美元。數(shù)據(jù)倉庫DW的數(shù)據(jù)表信息是DW.PARBSUPP(PKEY,SUPPKEY,DTY,QTY,COST)按照每月對數(shù)據(jù)進行存儲,其中日期是中國日期和額度是人民幣。所以需要將數(shù)據(jù)源S2的日期和額度分別轉換成中國日期和人民幣。
圖2是概念模型對這個例子建模。
圖2 ETL概念模型
1.2 邏輯模型
1.2.1 模型描述
在數(shù)據(jù)倉庫中后期設計中,數(shù)據(jù)據(jù)倉庫設計者主要關注ETL數(shù)據(jù)流從數(shù)據(jù)源到暑假倉庫過程。ETL工作流定義為ETL數(shù)據(jù)流在記錄集和各個操作之間的流轉。通過運用工作流的概念,能夠很好解決這個問題。一個ETL工作流建模成有向無環(huán)圖,其中圖的節(jié)點主要由活動和記錄集組成。記錄集主要是關系數(shù)據(jù)表和記錄文件。圖中的邊主要表示數(shù)據(jù)提供之間的關系。邊從節(jié)點N1到節(jié)點N2表示節(jié)點N2接受節(jié)點N1的數(shù)據(jù)。把N1稱為數(shù)據(jù)的提供者,N2稱為數(shù)據(jù)的消費者。
一個活動是一個四元組A(Id,I,O,S)。其中,Id是唯一標識活動。
I表示一組從活動數(shù)據(jù)提供者接受數(shù)據(jù)的有限個輸入模式。
O表示—組提供給數(shù)據(jù)消費者的有限個輸出模式。
S是一個關系代數(shù)表達式。每一個輸出模式通過一個或多個復雜表達式產(chǎn)生數(shù)據(jù)。
邏輯模型分為兩層:實體層和邏輯層,如圖3所示。實體層作用和概念模型中元模型層中實體相似。邏輯層是對ETL數(shù)據(jù)流的描述。
圖3 ETL邏輯模型框架
1.2.2 實體層
在概念模型中元模型層和邏輯模型中實體層有點相似。在邏輯模型中,一個概念模型實體對應一個邏輯模型實體,但是反之則不然。在這個邏輯模型中的實體如下:
①屬性:屬性的特點是名字和數(shù)據(jù)類型。
②記錄集:記錄集的特點是名字。
③名字:一個獨有的識別活動的。
④基本的活動:一個活動包含一組提供者把數(shù)據(jù)交給活動處理的輸入模式,和一組交給下一個數(shù)據(jù)消費者處理的輸出模式。一個活動只有一個輸入模式叫一元模式,一個活動有兩個輸入模式叫二元模式。常見的一元模式有轉換,選擇操作等等,而二元模式有聚合操作等。
輸入模式:一個有限個輸入模式從數(shù)據(jù)提供者獲得數(shù)據(jù)。
輸出模式:一組有限的輸出模型用把數(shù)據(jù)交給數(shù)據(jù)的消費者。
函數(shù):一組用來參與計算的屬性。
1.2.3 邏輯層
邏輯層主要是對實體層中實體進行實例化,來描述ETL邏輯過程。假定有向無環(huán)圖,只有有限個活動A,有限個記錄集RS,有限個提供關系者Pr。那個這個圖可以表示成C(V,E)。其中V=A和RS.E=Pr。RS的子集表示成RSs,這個子集包含圖的數(shù)據(jù)源記錄集。其他的記錄集表示成RSt,這個子集包含數(shù)據(jù)倉庫目標記錄集。G(V,E)是按照拓撲順序排序的。有執(zhí)行一個ETL工作流,必須對這個執(zhí)行順序分配唯一的標示,最后工作流中的所有活動有提供者和消費者。數(shù)據(jù)源記錄集只有輸出模式,而數(shù)據(jù)倉庫記錄集只有輸入模式。
1.2.4 例子
使用邏模型建模成工作流如圖4所示。
圖4 ETL邏輯模型工作流
2 映射算法
2.1 實體映射
將分析概念模型中的各個組成部分怎樣從概念模型中的實體轉換到邏輯模型中的實體即實體映射。進行從概念模型映射到邏輯模型,本文把概念模型中ETL層也看做成一個圖G(V,E)。其中V代表屬性和活動,E代表關系。概念模型中概念和屬性轉換成邏輯模型中的記錄集和屬性。概念模型中轉換和約束轉換成邏輯模型中的活動。
2.1.1 概念和屬性的映射
概念:在概念模型中一個主要任務是通過屬性來識別所有數(shù)據(jù)存儲信息。這個涉及到整個ETL過程。一個記錄集定義在邏輯模型中是由一個名字和組屬性組成是通過概念模型中的概念轉換而來的。屬性:概念模型中的屬性則和邏輯模型中的屬性一對一映射。
2.1.2 關系和轉換的映射
關系:在概念模型中關系包含很多種比如部分,提供關系等等。部分關系用來表示一個事實一個合適的概念由一組屬性組成。在概念模型和邏輯模型中有著相同的語義和特點。提供者關系代表著數(shù)據(jù)流在整個ETL過程。一個概念提供者關系在數(shù)據(jù)源和目標屬性設計到所有轉換這些被應用通過設計需求。在所有數(shù)據(jù)源到目標數(shù)據(jù)轉換中概念提供者關系能夠被映射到邏輯提供者關系。
轉換:在概念模型中,使用轉換主要是表示一些任務。在邏輯層次上,使用活動來代表同一任務。從概念模型到邏輯模型映射主要包括概念轉換到邏輯活動。
2.1.3 約束的映射
約束:約束常常用來表明對數(shù)據(jù)有不同的要求。對待ETL概念模型中約束就像其轉換一樣。他們映射成邏輯模型中的活動。
2.2 映射算法
在描述實體映射后,遇到下面三個問題需要解決:
①活動屬性問題,主要是一個轉換T在概念層次上被映射到邏輯層次上的一個活動。
②概念轉換的組合問題,主要是在轉換中存在多個組合轉換。
③邏輯模型中活動執(zhí)行順序問題,主要是執(zhí)行順序。
這三個問題是映射算法重點。下面分三個部分進行解決。
2.2.1 活動屬性問題
一個轉換T在概念層次上被映射到邏輯層次上的一個活動,這個主要體現(xiàn)在將整個ETL概念模型分解成不同的stages。Stages表示屬性概念等十分相近一個stage用一個正方形表示的,如圖2所示。在自增初始化為零。
這個算法應用在映射算法13行中。主要用來自動生成概念模型中stages。這個算法完成了下面任務:首先是找出了所有屬性。第二個是從提供者和消費者在轉換中不同的角度,將設計問題分解成不同stages。
數(shù)據(jù)源概念在stage()(Ln:5)。先從數(shù)據(jù)源概念的屬性開始,因為這個概念只有消費者操作。所有投影在同一個stage上(Ln:9)。通過對這些進行通過深度搜索求出的stages。最后stages中包含目標概念。算法最后返回所有stages通過stage[]數(shù)組。
2.2.2 組合問題
對于組合問題,就是有多個數(shù)據(jù)源和一個數(shù)據(jù)流中就會存在組合轉換。為了描述簡單,我們采用兩個數(shù)據(jù)源和一個目標數(shù)據(jù)。對于一個二元轉換Tb就是兩個提供者和一個消費者。對于這三個實體可以是概念或者轉換都依賴于Tb在工作流的位置。假定簡單一個目標數(shù)據(jù)dw的數(shù)據(jù)來源s1和s2.,通過聚合的轉換,和一個二元的轉換Tb。使用自增技巧來設計邏輯工作流。首先,計算了stages1從s1到dw和stages2,從s1到dw。這樣可以查找邏輯工作流中的二元轉換。最后,將兩個數(shù)據(jù)流通過一個連接點和一個活動他Tb.。
映射算法中(4-14)主要是解決組合問題。算法將代表概念設計的有向圖作為輸入。首先要檢查所有通過源數(shù)據(jù)和目標數(shù)據(jù)兩個概念建立的流(In:6)。通過前面直觀的分析,主要目標是找到每個流的分界線。只查找目標工作流。對于每個流,第一個概念是數(shù)據(jù)源,第二個概念目標(Ln:7)。如果不存在二元轉換的在工作流中,目標仍然是第二個概念。如果存在二元轉換,將有兩種方法到達的方法(Ln:9-12)。首先找到二元轉換Tb,把它加入叫visited_tb集合。在下一個轉換,第二個概念不在被考慮成當前流。在這個情況下,使用二元轉換Tb作為目標(Ln:10)。這是因為數(shù)據(jù)流從,Tb到第二概念之前。
當確定了目標數(shù)據(jù),修改了工作流邊界。這個邊界可以決定執(zhí)行邏輯活動的順序。將FS算法應用到選取的工作流中。FS算法的輸出時一個數(shù)組Satge[].。數(shù)組包含一些必須的信息。比如執(zhí)行順序。這些概念流中數(shù)組stage[]被存在另個數(shù)組LW[]中。
2.2.3 執(zhí)行順序問題。
假定兩個概念的轉換Ti和Tj,然后是活動Ai和Aj執(zhí)行順序在邏輯模型中。當Ti屬于stage標示符小于Tj的標識符,那么活動Ai執(zhí)行在Aj之前。同一stage的轉換執(zhí)行順序。我們把這個叫做stage相關轉換。如果所有的活動是stage相關轉換,這也就不存在順序問題了。
下面是關于活動的執(zhí)行順序可以交換的。在解決了兩個活動在工作流中執(zhí)行順序的優(yōu)先級。需要滿足下面的條件。
①活動A1和A2在圖的相連的。不失一般性,A1是A2的提供者。
②這兩個活動都是只有單一的輸入輸出模式。輸出模式只有一個消費者。
③函數(shù)模式A1,A2是輸入模式的一個子集。
④活動A1,A2的輸入模式是提供者的子集。
所有stage相關轉換能夠相連的。這對于各個的活動也是合理的。因此條件①滿足。stages被定義在兩個概念之間,一個單一stage所有轉換和對應的活動一樣,只有單一的輸入模式和輸出模式,因此條件②也滿足。屬于同一個stage的兩個轉換是否可以交換,主要是是否滿足條件③和條件④。
屬于同一個stage的轉換,和它在邏輯模型中對應活動是可以交換的。叫做順序相關轉換。在兩個順序相關轉換Ai和Aj中,滿足下面公式。
這些公式分別代表了條件③和條件④。在上面的公式代表了條件③和④。如果這些公式不滿足兩個stage相關轉換,就不能決定這些執(zhí)行順序,需要從用戶獲得一些額外的信息。
下面是活動執(zhí)行順序在映射算法(Ln:15-32)的描述。算法的這個過程主要處理所有stage轉換,比如數(shù)組Lw[]所有元素。每次發(fā)現(xiàn)新的節(jié)點,不論是每個數(shù)據(jù)存儲或者活動。把它添加到圖上,通過邊和其他優(yōu)先級的節(jié)點相連(Ln:20-24)。如果一個節(jié)點已經(jīng)被添加到圖上,然后兩個工作流相交處。當前工作流和連接這個節(jié)點的工作流(Ln:25)。區(qū)分兩種不同的情況:一種是節(jié)點是二元活動,或者是數(shù)據(jù)存儲。一種是已經(jīng)訪問過的二元活動情況是比較簡單的。只需要連接到優(yōu)先級的節(jié)點在當前的處理的二元活動(Ln:26)。第二種情況是聯(lián)合活動的使用,在各自的數(shù)據(jù)存儲。為了達到目的,首先刪除邊在數(shù)據(jù)存儲和工作流中最后一個節(jié)點的邊(Ln:28)。然后添加新的一節(jié)點來代表聯(lián)合活動(Ln:29)和連接兩條數(shù)據(jù)流和數(shù)據(jù)存儲(Ln:30)。最后映射算法返回代表邏輯設計的圖。
3 結束語
從兩種不同角度介紹了ETL過程的建模。概念建模主要研究整個ETL過程概念與屬性的內(nèi)在關系,而邏輯建模是研究ETL工作流。最后通過例子更加形象的說明兩個模型。
由于概念模型和邏輯模型是數(shù)據(jù)倉庫建設中不同時期的兩個模型,利用映射算法把概念模型應用到邏輯模型中,減輕ETL過程后期建設工作。將來的工作主要用在ETL優(yōu)化上。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:面向商業(yè)智能的ETL模型研究綜述
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1082056960.html