《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 本體驅(qū)動(dòng)ETL過(guò)程的設(shè)計(jì)研究
本體驅(qū)動(dòng)ETL過(guò)程的設(shè)計(jì)研究
來(lái)源:微型機(jī)與應(yīng)用2010年第22期
阮文娟1,,劉勇軍1,張五生2
(1.武漢理工大學(xué) 管理學(xué)院,,湖北 武漢430070,;2.廈門(mén)大學(xué) 信息科學(xué)與技術(shù)學(xué)院,福建 廈門(mén)3
摘要: 針對(duì)建立數(shù)據(jù)倉(cāng)庫(kù)時(shí)數(shù)據(jù)源存在結(jié)構(gòu)多樣性和語(yǔ)義異質(zhì)性的問(wèn)題,,提出了本體驅(qū)動(dòng)ETL過(guò)程的設(shè)計(jì)方法,。通過(guò)元數(shù)據(jù)抽象以及語(yǔ)義建立本體,并運(yùn)用OWL實(shí)現(xiàn)本體,;再根據(jù)局部本體與全局本體之間的關(guān)系建立本體映射,;最后運(yùn)用本體映射和本體推理驅(qū)動(dòng)ETL過(guò)程。該方法能有效解決數(shù)據(jù)源異構(gòu)問(wèn)題,,并實(shí)現(xiàn)ETL過(guò)程的部分自動(dòng)化,。
關(guān)鍵詞: ETL OWL 本體
Abstract:
Key words :

摘  要: 針對(duì)建立數(shù)據(jù)倉(cāng)庫(kù)時(shí)數(shù)據(jù)源存在結(jié)構(gòu)多樣性和語(yǔ)義異質(zhì)性的問(wèn)題,提出了本體驅(qū)動(dòng)ETL過(guò)程的設(shè)計(jì)方法,。通過(guò)元數(shù)據(jù)抽象以及語(yǔ)義建立本體,,并運(yùn)用OWL實(shí)現(xiàn)本體;再根據(jù)局部本體與全局本體之間的關(guān)系建立本體映射,;最后運(yùn)用本體映射和本體推理驅(qū)動(dòng)ETL過(guò)程,。該方法能有效解決數(shù)據(jù)源異構(gòu)問(wèn)題,并實(shí)現(xiàn)ETL過(guò)程的部分自動(dòng)化,。
關(guān)鍵詞: ETL,;OWL;本體

    隨著數(shù)據(jù)挖掘技術(shù)的不斷發(fā)展,,數(shù)據(jù)倉(cāng)庫(kù)已經(jīng)能夠有效地將數(shù)據(jù)集成到結(jié)構(gòu)一致的數(shù)據(jù)存儲(chǔ)環(huán)境中,,從而使分散、不一致的操作數(shù)據(jù)轉(zhuǎn)換為方便查詢(xún)和分析所需的信息,。但由于數(shù)據(jù)源具有異構(gòu)性,,企業(yè)需要一個(gè)能夠從所有平臺(tái)和環(huán)境中抽取數(shù)據(jù),再將數(shù)據(jù)轉(zhuǎn)換后加入目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的高效處理過(guò)程,,這個(gè)過(guò)程就是數(shù)據(jù)的抽取,、轉(zhuǎn)換、裝載,,即ETL(Extract-Transform-Load),。
    數(shù)據(jù)源異構(gòu)問(wèn)題主要表現(xiàn)在:(1)結(jié)構(gòu)的多樣性,如不同的數(shù)據(jù)庫(kù),,不同的數(shù)據(jù)類(lèi)型和不同的概要設(shè)計(jì)等,;(2)語(yǔ)義異質(zhì)性,,這包括不同的命名定義和不同的表示格式[1]。
    基于傳統(tǒng)的XML元數(shù)據(jù)編碼方法的ETL過(guò)程已經(jīng)不能很好地解決數(shù)據(jù)源異構(gòu)問(wèn)題,。首先,,XML在處理元數(shù)據(jù)語(yǔ)義上存在兩個(gè)問(wèn)題[2]:(1)同一概念有多種詞匯表示;(2)同一個(gè)詞有多種含義(概念)。因此XML無(wú)法對(duì)元數(shù)據(jù)進(jìn)行準(zhǔn)確的描述,,這會(huì)直接影響ETL過(guò)程的效果,。其次,必要的轉(zhuǎn)換和內(nèi)部模式映射依舊依賴(lài)手工操作,,這不僅費(fèi)時(shí)而且還容易出錯(cuò),。
    為此,本文提出了一種本體驅(qū)動(dòng)ETL過(guò)程的設(shè)計(jì)方法,。
1 ETL和本體論
1.1 ETL概念

    ETL是負(fù)責(zé)將數(shù)據(jù)從源加載到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程,,也是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要環(huán)節(jié)。ETL包括以下三個(gè)過(guò)程[3]:(1)抽取,,數(shù)據(jù)抽取是捕獲數(shù)據(jù)源的過(guò)程,,即將數(shù)據(jù)從各種原始的業(yè)務(wù)系統(tǒng)中讀取出來(lái),這是所有工作的前提,。(2)轉(zhuǎn)換,,按照預(yù)先設(shè)計(jì)的規(guī)則將抽取得到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,、清洗,,處理一些冗余、歧義,、不完整,、違反業(yè)務(wù)規(guī)則的數(shù)據(jù),統(tǒng)一數(shù)據(jù)的粒度,,使本來(lái)異構(gòu)的數(shù)據(jù)格式統(tǒng)一起來(lái),。(3)裝載,將轉(zhuǎn)換后的數(shù)據(jù)按照計(jì)劃增量全部導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)中,。
    ETL作為DW的核心和靈魂,,大約占整個(gè)DW項(xiàng)目60%~80%的時(shí)間。在現(xiàn)實(shí)應(yīng)用中ETL的執(zhí)行效率往往成為實(shí)施DW項(xiàng)目的瓶頸,,而ETL規(guī)則的設(shè)計(jì)和實(shí)施又是其中工作量最大的部分,。
1.2 本體論和OWL
    Ontology概念起源于哲學(xué)領(lǐng)域,即“對(duì)世界上客觀存在物的系統(tǒng)描述”,。但其明確定義是在1991年由Neches[4]等人引入人工智能領(lǐng)域,。其后在1993年Gruber和1997年Borst也給出了Ontology的定義。直到1998年Studer[5]等人在前人基礎(chǔ)上給出了較為廣泛接受的概念,,即“Ontology是共享概念模型的明確的形式化規(guī)范說(shuō)明”,,并指出該定義包含四層含義:概念模型(conceptualization),、明確(explicit)、形式化(formal)和共享(share),。此外2001年Hendler[6]也試圖作出解釋,。
    W3C為本體的開(kāi)發(fā)提供了一種網(wǎng)絡(luò)本體語(yǔ)言O(shè)WL[7](Web Ontology Language),該語(yǔ)言包含了三種表達(dá)能力依次增強(qiáng)的子語(yǔ)言,,即OWL Lite,、OWL DL和OWL Full。OWL Lite支持只需要一個(gè)分類(lèi)層次和簡(jiǎn)單約束的用戶(hù),;OWL DL 支持需要最強(qiáng)表達(dá)能力的推理系統(tǒng)的用戶(hù),,且這個(gè)推理系統(tǒng)必須確保計(jì)算的完全性和可判定性,OWL DL包括了OWL語(yǔ)言的所有語(yǔ)言成分,,但使用時(shí)必須符合一定的約束,,受到一定的限制;OWL Full支持那些不需要可計(jì)算保證的,,但能在完全自由的RDF上進(jìn)行最強(qiáng)描述的用戶(hù),,包含OWL的全部語(yǔ)言成分并取消了OWL DL中的限制。
    相比于傳統(tǒng)XML,,OWL有更豐富的建模原語(yǔ),,能夠表達(dá)語(yǔ)義并描述復(fù)雜邏輯關(guān)系,可以解決XML無(wú)法對(duì)元數(shù)據(jù)進(jìn)行準(zhǔn)確描述的問(wèn)題,。而且本體語(yǔ)言還可以通過(guò)建立本體映射,,并運(yùn)用本體推理來(lái)實(shí)現(xiàn)部分必要轉(zhuǎn)換和內(nèi)部模式映射的自動(dòng)化。因此引入本體驅(qū)動(dòng)ETL過(guò)程能有效地解決數(shù)據(jù)源異構(gòu)問(wèn)題,,并實(shí)現(xiàn)ETL過(guò)程的部分自動(dòng)化,。
1.3 本體驅(qū)動(dòng)ETL的一般步驟
    運(yùn)用本體理論指導(dǎo)ETL過(guò)程的一般步驟為確定領(lǐng)域本體、尋找本體映射以及選擇適當(dāng)?shù)谋倔w推理規(guī)則,。具體過(guò)程為:
    (1)用本體論的理論知識(shí)指導(dǎo)元數(shù)據(jù)的確立,,然后運(yùn)用本體語(yǔ)言建立本體。
    (2)建立局部本體到全局本體之間的關(guān)系,,即本體映射,。包括一個(gè)領(lǐng)域基本概念之間的層次關(guān)系,同時(shí)要滿(mǎn)足不同局部本體之間的相互查詢(xún)需求,。目前有很多種本體映射的方法,,如GLUE[8]方法是一種利用概念的實(shí)例作為計(jì)算概念間相似度的依據(jù),然后通過(guò)機(jī)器學(xué)習(xí)技術(shù)尋找單獨(dú)分開(kāi)存儲(chǔ)的概念與自治本體之間的語(yǔ)義映射,;SF(Similarity Flooding)[9]是一種基于相鄰概念節(jié)點(diǎn)之間的相似傳遞性的算法,;H-MATCH[10]是一種動(dòng)態(tài)分布式本體匹配的算法。
    (3)本體推理,即通過(guò)一定的規(guī)則推理出本體內(nèi)部或是局部本體與全局本體之間的關(guān)系,,來(lái)幫助確立映射關(guān)系,。KAON2[11]是一個(gè)OWL推理機(jī)制,帶SWRL子集DLsafe擴(kuò)展,;Pellet[12]是一個(gè)用Java構(gòu)建的推理機(jī)制,,專(zhuān)門(mén)為OWL推理設(shè)計(jì)的,這兩種工具都可以用來(lái)推理,。
    (4)將本體推理所得到的映射轉(zhuǎn)化為熟悉的ETL過(guò)程,。
2 基于本體的ETL架構(gòu)設(shè)計(jì)
    在對(duì)本體論和ETL過(guò)程研究的基礎(chǔ)上,本文提出了基于本體的ETL架構(gòu)設(shè)計(jì),,這一架構(gòu)包括三個(gè)主要階段:(1)元數(shù)據(jù)抽象階段:任務(wù)是從數(shù)據(jù)源中抽取元數(shù)據(jù),,然后將元數(shù)據(jù)抽象為本體。它包括局部本體和全局本體的定義,。(2)本體映射階段:目的就是找到局部本體和全局本體內(nèi)部以及它們之間的語(yǔ)義關(guān)聯(lián),,解決不同本體間的知識(shí)共享和重用使使用者更好地認(rèn)識(shí)結(jié)構(gòu)和語(yǔ)義領(lǐng)域的異構(gòu)。本體映射的方法之一是計(jì)算兩個(gè)本體的相似性,。(3)基于ETL規(guī)則的本體推理階段:即根據(jù)ETL的一般規(guī)則來(lái)制定本體推理規(guī)則,,幫助從映射關(guān)系中找到隱含的與相沖突的之間的關(guān)系。如果數(shù)據(jù)源更傾向于用自動(dòng)化過(guò)程開(kāi)發(fā),,則對(duì)映射階段進(jìn)行描述的推理至關(guān)重要,,特別是ETL過(guò)程。從數(shù)據(jù)源到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的ETL過(guò)程如圖1所示,。

3 本體驅(qū)動(dòng)的ETL過(guò)程
    假設(shè)有兩個(gè)主要實(shí)體,,即客戶(hù)和訂單,整個(gè)設(shè)置如表1所示,。一個(gè)客戶(hù)有一個(gè)名字(包括他/她的姓和名)和相應(yīng)的地址(其中包括他/她的國(guó)家,、城市和街道)。一個(gè)訂單包括一個(gè)特定的日期,,其格式可以為“日/月/年”或“月/日/年”。訂單的價(jià)格有美元和人民幣兩種貨幣表現(xiàn)形式,。還有購(gòu)貨數(shù)量,,其訂貨形式為“零售”或“批發(fā)”。而且有兩個(gè)數(shù)據(jù)源分別是以O(shè)racle數(shù)據(jù)庫(kù)和SQL Server 2005存儲(chǔ)客戶(hù)購(gòu)買(mǎi)商品的資料,。

3.1 本體建立
3.1.1 建立局部本體

    在構(gòu)建局部本體前,,先用本體理論指導(dǎo)理清字段間的關(guān)系,需明確以下關(guān)系:字段“country”,、“city”和“street”是字段“address”的一部分,;字段“mmddyy”和“ddmmyy”是字段“date”的不同類(lèi)型;字段“retail”和“wolesale”是字段“amount”的兩種售出形式。
    在明確了上述關(guān)系的基礎(chǔ)上,,開(kāi)始建立局部本體,。以表1中數(shù)據(jù)源1(DS1)為例進(jìn)行說(shuō)明,采用數(shù)據(jù)源的名字作為局部本體owl名,,每個(gè)表對(duì)應(yīng)一個(gè)類(lèi)(概念),,實(shí)例數(shù)據(jù)源1的DBMS為Oracle,以下是為DS1建立局部本體的主要OWL語(yǔ)句,。
<owl:Class rdf:ID="#s_customer"/>//定義客戶(hù)類(lèi)中的元素
<owl:DatatypeProperty rdf:ID="s_table">
    <rdfs:range rdf:resource="http://www.w3.org/2001/
XMLSchema#string"/>
    <rdfs:domain rdf:resource="#s_customer"/>
</owl:DatatypeProperty>
<owl:Class rdf:ID="cid">
    <rdfs:subClassOf rdf:resource="#s_customer"/>
    </owl:Class>
3.1.2 建立全局本體
    全局本體可以通過(guò)集成各個(gè)數(shù)據(jù)源所包括的領(lǐng)域信息而得到,。它就像一個(gè)共享的詞匯庫(kù),建立了數(shù)據(jù)源領(lǐng)域的知識(shí)模型,,且為數(shù)據(jù)源提供了公共的語(yǔ)義描述,,從而做到將系統(tǒng)的全局視圖進(jìn)行語(yǔ)義化描述,從而解決不同局部本體之間的語(yǔ)義異構(gòu)性,。
    對(duì)于全局本體元素的定義基本可以借鑒對(duì)DS1元素的定義,。建立全局本體還有一個(gè)重要的任務(wù)就是確定術(shù)語(yǔ),從而對(duì)數(shù)據(jù)源有一個(gè)全局的把握,。本例的術(shù)語(yǔ)有:客戶(hù),、訂單、地址,、名字,、數(shù)額、價(jià)格和日期,。
3.2 本體映射
    本體映射有多種方法,,在實(shí)際應(yīng)用中,可以將這些方法結(jié)合起來(lái)使用,。因此發(fā)現(xiàn)以下關(guān)系:
<owl:Class rdf:ID="city">        //表明city與street是
不相交的關(guān)系,。
<rdfs:subClassOf rdf:resource="# s_customer "/>
   <owl:disjointWith>
   <owl:Class rdf:ID="street">
    </owl:disjointWith>  
</owl:Class>
    以上是運(yùn)用OWL DL描述映射關(guān)系包括層次、等價(jià),、交集,、并集、互補(bǔ)和不相交關(guān)系,。在此運(yùn)用OWL DL提供的rdfs:用subClassOf聲明一個(gè)類(lèi)是通過(guò)另一個(gè)或多個(gè)類(lèi)的子類(lèi)創(chuàng)建層次關(guān)系,,用equivalentProperty以描述本體中屬性間的等價(jià)關(guān)系,用disjointWith描述了類(lèi)之間不相交關(guān)系,。
3.3 基于ETL規(guī)則的本體推理
    通過(guò)單純的本體映射,,只是找出了本體之間存在的一般關(guān)系。還需要運(yùn)用基于適當(dāng)規(guī)則的本體推理進(jìn)一步指導(dǎo)ETL過(guò)程,,即基于ETL規(guī)則的本體推理,。
    通過(guò)本體推理,可以找出每一個(gè)數(shù)據(jù)和數(shù)據(jù)倉(cāng)庫(kù)之間的關(guān)系,例如:等價(jià)關(guān)系,、包含關(guān)系,、父子關(guān)系、兄弟關(guān)系,。對(duì)于本例,,通過(guò)本體推理可以發(fā)現(xiàn)如下關(guān)系:(1)等價(jià)關(guān)系。id1字段等價(jià)于id2字段,,并且有相同的關(guān)系,,從而推出字段id1與字段tid等價(jià)。(2)包含關(guān)系,。字段cus_address與字段country,、 city和street是包含關(guān)系,因字段cus_address與字段address等價(jià),,從而可以推導(dǎo)出字段address也包含字段country,、city和street 。(3)兄弟關(guān)系,。很容易發(fā)現(xiàn)每個(gè)類(lèi)下面的屬性之間都是兄弟關(guān)系,,即互不相交。
    在已經(jīng)明確以上關(guān)系的情況下,,還需要用ETL規(guī)則指導(dǎo)本體推理,。為了完成ETL過(guò)程,需要把DS1中的city,、street和country字段通過(guò)一定的規(guī)則加載成為DW中的address字段,。因city、 street和country三個(gè)字段是互不相交的,,可知DS1中的city,、street和country字段可以構(gòu)成DW中的address字段。在ETL規(guī)則和推理規(guī)則的指導(dǎo)下可知city,、street和country三個(gè)字段必須先組合在一起,,然后再加載到目標(biāo)數(shù)據(jù)庫(kù)中。
    同理,,可以推導(dǎo)出從name字段中抽取出firstname和lastname兩個(gè)字段,。為了完成數(shù)據(jù)源字段name加載到目標(biāo)數(shù)據(jù)庫(kù),根據(jù)ETL規(guī)則需要將字段name拆分成字段firstname和字段lastname,,然后再加載到目標(biāo)數(shù)據(jù)庫(kù)。
    因price字段有兩種貨幣形式,,在把該字段從數(shù)據(jù)源加載到目標(biāo)數(shù)據(jù)庫(kù)的過(guò)程中需要注意將數(shù)據(jù)源的貨幣先轉(zhuǎn)換成對(duì)應(yīng)目標(biāo)數(shù)據(jù)庫(kù)的字段或是對(duì)應(yīng)的中間字段,,然后再加載到目標(biāo)數(shù)據(jù)庫(kù)。在實(shí)際ETL過(guò)程中先將該字段過(guò)濾,然后對(duì)格式與目標(biāo)數(shù)據(jù)庫(kù)不一致的price字段進(jìn)行格式轉(zhuǎn)換,。
3.4 本體驅(qū)動(dòng)的ETL過(guò)程
    經(jīng)過(guò)本體映射和推理,,得到了一系列的相關(guān)關(guān)系。然后在上述基礎(chǔ)上完成本例的數(shù)據(jù)從數(shù)據(jù)源到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的加載過(guò)程,,具體步驟為:
    (1)確定簡(jiǎn)單操作及可以直接從源到目標(biāo)的操作,。
    (2)從源節(jié)點(diǎn)開(kāi)始引進(jìn)ETL數(shù)據(jù)轉(zhuǎn)換操作,對(duì)相對(duì)復(fù)雜的轉(zhuǎn)化過(guò)程引入中間節(jié)點(diǎn),;然后從中間節(jié)點(diǎn)出發(fā),,繼續(xù)采取額外的轉(zhuǎn)換直至到達(dá)目標(biāo)節(jié)點(diǎn)。
    (3)結(jié)合ETL規(guī)則做最后的規(guī)范,,如圖2所示,。

    說(shuō)明:對(duì)于數(shù)據(jù)源中的“customer”、“order”,、“firstname”和“lastname”等字段可以直接從源加載到目標(biāo),。字段“street”、“country”和“city”三者合在一起可以構(gòu)成目標(biāo)字段“address”,。而“date”字段需通過(guò)轉(zhuǎn)換,,“name”字段需要拆分,“amount”字段需要過(guò)濾,。對(duì)于“price”字段,,首先過(guò)濾,然后轉(zhuǎn)換,。最后用ETL規(guī)則規(guī)范整個(gè)過(guò)程,。
    本文提出了一個(gè)本體驅(qū)動(dòng)的ETL過(guò)程的架構(gòu)模型;在此基礎(chǔ)上,,建立了本體,、找出了本體間的映射并在ETL規(guī)則的基礎(chǔ)上進(jìn)行了本體推理;最后通過(guò)實(shí)例圖表的方式展現(xiàn)了本體驅(qū)動(dòng)ETL過(guò)程,。本體的應(yīng)用使ETL過(guò)程更加靈活,、高效,并且架構(gòu)中的ETL過(guò)程可以部分實(shí)現(xiàn)自動(dòng)化,,從而解決了數(shù)據(jù)源結(jié)構(gòu)異構(gòu)和語(yǔ)義異構(gòu)的集成問(wèn)題,。

參考文獻(xiàn)
[1] ZHANG Zhuo Lun,WANG Su Fen.A framework model  study for ontology-driven ETL processes[C].IEEE International Conference on Wireless Communications, Networking and Mobile computing, 2008.
[2] 鄧志鴻,唐世渭,張銘,等.Ontology研究綜述[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,38(5):730-737.
[3] 張忠平,趙瑞珍.基于元數(shù)據(jù)驅(qū)動(dòng)的ETL架構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(6):61-63.
[4] NECHES R, FIKES R E, GRUBER T R, et al. Enabling  technology for knowledge sharing[J]. Artificial Intelligence,1991,12(3):36-56.
[5] STUDER R, BENJAMINS V R, FENSEL D. Knowledge engineering: principles and methods[J]. Data and Knowledge Engineering, 1998, 25:161-197.
[6] HENDLER J A. Agents and the semantic web[J]. IEEE Intelligent Systems, 2001,16(2):30-37.
[7] W3C Candidate Recommendation.OWL Web Ontology Language Guide[EB/OL].[2003-08-18].http://www.w3.org/TR/2003/CR-owl-guide-20030818/.
[8] ANHAI D, JAYANT M, PEDRO D, et al. Learning to map between ontologies on the semantic web[C].Proceedings of the Eleventh International World Wide Web Conference, 2002.
[9] MELNIK S,,GARCIA-MOLINA H,,RAHM E. Similarity  flooding: a versatile garph matching algorithm[C]. On Data Engineering(ICDE),2002.
[10] CASTANO S, FERRARA A, MONTANELLI S. An algorithm for dynamically matching ontologies in peer based systems Berlin[C]. Proc of the 1st Workshop on Semantic Web and Databases,2003,231-250.
[11] KAON2[EB/OL].[2008-01-14].http://kaon2.semanticweb.org/.
[12] Pellet:OWL 2 Reasoner for Java[EB/OL].[2008-10-27]. http://clarkparsia.com/pellet.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。