邵桐 朱明東


摘要:數據交換系統是服務數據交換需求的重要工具。在分析數據交換過程的基礎上,提煉了異構數據交換的元數據模型,并以這些元數據模型為基礎,設計實現了基于元數據的數據交換系統,大大提高了系統的適應性、靈活性、通用性和可擴展性,為大規模數據遷移和數據集成提供了基礎支撐。
關鍵詞關鍵詞:元數據;數據交換;異構數據
DOIDOI:10.11907/rjdk.161328
中圖分類號:TP392文獻標識碼:A文章編號文章編號:16727800(2016)007015803
0引言
隨著信息技術的發展,業務領域的變化頻率越來越高,業務流程再造的速度越來越快,數據模型不斷升級,導致數據遷移需求不斷增加,跨部門業務融合也導致數據交換的需求持續增加。因此,建設一個數據交換平臺迫在眉睫。該平臺不僅可以提供點到點的系統間數據交換,還能實現點到面的跨部門、跨業務的數據集成,對整體數據資產提供有力支撐。
目前,主流的數據庫產品大多提供了數據遷移工具,但這些工具一般只適用于數據的導入、導出,并且只能支持一個或幾個特定類型的數據庫。現在的問題是用戶使用的數據庫產品種類眾多,比如格式化的數據庫有Oracle、SQL Server、DB2、MySQL、Access、Sqlite、達夢、金倉等;半結構化的數據格式有xls、csv、json、xml等;NoSQL類型的數據庫有MongoDB、Redis、 HBase等。無論是數據遷移還是數據集成,均需要在它們之間交換共享數據。如果工具只支持一對一的數據轉換,就可能需要開發、維護、學習使用一批這樣的工具。因此一個通用的數據交換系統是實現數據遷移和數據集成重要的基礎工具。
1數據交換過程
一個典型的數據交換過程包括以下幾個步驟:數據抽取、數據轉換、數據加載,為了順利實現數據交換,還需要對以上幾個過程加以控制,這就是人們常說的ETL(Extract Transform Load),這里加上了控制(Control),簡稱為ETLC,如圖1所示。
數據抽取,就是從數據源中獲取數據。進行數據抽取是進行數據交換的首要步驟,它是指從異構的數據源中獲取需要的數據。這里的異構數據源既包括傳統的結構化數據庫(支持SQL標準)、半結構化數據文件(如XML文件、JSON文件、XLS文件等),還包括不斷涌現的NoSQL數據庫(如:MongoDB、Memcached、HBase等)。建立一個通用的數據訪問接口是獲取不同數據源數據的關鍵。
數據轉換,就是根據目標數據源的要求轉換數據,實現異構數據源之間的數據轉換是進行數據交換的重點。完成從異構數據庫中提取數據之后,為了滿足目標數據庫對數據的要求,需要對其進行相應的轉換。建立一系列數據轉換規則是滿足不同數據轉換要求的關鍵。
數據加載,就是將數據加載到目標數據源。進行數據加載是達成數據交換目標的最后一環,它需要按照事先制定的加載策略,將經過轉換的、符合要求的數據有針對性地加載到目標數據庫中。
過程控制,就是啟動、記錄數據抽取過程。對數據交換過程進行控制是數據交換的有效保障。針對不同的數據交換需求,應能夠自動地啟動交換任務,收集、記錄交換過程中的日志和異常信息,為掌握交換事務,及時發現和處理各種異常提供支撐。
2數據交換元數據
通過對數據交換過程的分析可以看出,進行數據交換的基礎是對數據源及其映射關系進行描述,數據交換過程需要對數據抽取、數據轉換、數據加載、過程控制進行描述。元數據是對數據資源的規范化描述,對于數據交換過程中涉及到的數據源以及交換行為,可以抽象為以下幾類元數據。
2.1數據源描述元數據
數據交換實質就是數據從一個數據源通過抽取、轉換、加載到另一個數據源,因此,數據交換的基礎就是要對數據源進行詳盡描述。
數據源按其類型不同,可概括為結構化數據庫、半結構化數據文件、NoSQL數據庫。無論何種類型的數據源,在進行數據交換時,首先都要知道如何訪問,這就需要描述數據源所屬的數據庫類型、數據庫版本、數據庫名稱、數據庫的URL、訪問數據庫的用戶名與密碼等信息。
數據庫邏輯上是由數據表組成,在進行數據交換時,要知道需要交換的數據在哪張表里,因此需要描述數據表信息,包括表的名稱、表的語義描述、表所屬的數據庫等。
數據表是由一系列字段構成的,在進行數據交換時,最小的粒度是數據從源端的某張表的一個字段至目標端一張表的某個字段,因此對表字段的描述至關重要。字段的描述信息包括:字段的名稱、字段的語義描述、字段所屬的數據表、字段類型、字段的約束信息等。
通過以上分析,對數據源的描述可以歸納為三元組,記為D(Db,Dt,Df),其中Db為數據庫描述信息,Dt為數據表的描述,Df為數據字段的描述,其邏輯關系如圖2所示。
2.2數據映射元數據
數據交換是不同數據源之間的數據轉換,最終反映的是數據字段之間的映射關系。對于異構數據的交換,這種映射關系不僅包括不同數據要素之間的對應關系,還包括字段之間的轉換規則。因此對于數據映射的描述,可以用四元組表示,記為R(Rd,Rt,Rf,Rc),其中Rd為源端數據源與目標端數據源的對應關系,Rt為源端數據表與目標端數據表的對應關系,Rf為源端數據字段與目標端數據字段的對應關系,Rc為源端數據字段與目標端數據字段的轉換規則,其邏輯關系如圖3所示。
2.3交換操作元數據
實現異構數據交換的核心功能是進行ETL,即抽取、轉換和加載,為了提高整個ETL過程的可控性、靈活性、通用性,需要對每個操作過程加以控制,因此交換操作元數據由數據抽取元數據、數據轉換元數據、數據加載元數據和操作控制元數據組成。2.3.1數據抽取元數據
數據抽取就是按照事先制定的抽取策略將需要的數據從源端數據源抽取出來,對于數據抽取元數據的描述可用三元組表示,記為E(Ed,Es,Ep)。其中Ed為源端數據源,包括數據源連接信息和結構信息,Es為數據抽取范圍,包括需要抽取的表及字段信息的集合和每張表內需要抽取的內容范圍,Ep為抽取策略,分為手動抽取、定時抽取、準實時抽取等。2.3.2數據轉換元數據
數據轉換就是根據目標數據結構與源數據結構的映射關系,按照轉換規則,將從源端數據庫抽取出來的數據轉換為與目標數據庫相適應的數據,描述數據轉換元數據可用四元組表示,記為T(Ts,Td,Te,Tr)。其中Ts為源端數據庫,包括數據結構信息,Td為目標數據庫,包括目標數據庫結構信息,Te為需要轉換的數據,是數據抽取結果的實例,Tr為源端數據結構與目標端數據結構的映射關系,是數據映射的實例。2.3.3數據加載元數據
數據加載就是將特定的、經過轉換的數據加載到目標數據庫中,描述數據加載元數據可用三元組表示,記為L(Ld,Lt,Lp)。其中Ld為目標數據庫,包括數據庫連接信息和結構信息,Lt為需要加載的數據,是數據轉換結果的實例,Lp為數據加載策略,分為先清空后加載、增量加載、直接追加轉載等。2.3.4操作控制元數據
數據交換需求,可以抽象為一個交換任務,一個交換任務是由若干個數據交換操作過程來實現的,為了使數據交換的各部分有機協調工作,需要操作元數據控制整個數據交換過程,描述操作元數據可用五元組表示,記為C(Ct,Cd,Cs,Cr,Cl)。Ct為與一次交換任務相關的信息,Cd為當前交換操作的目標數據庫,Cs為當前交換操作的源數據庫,Cr為當前交換操作關聯的數據映射集合,Cl為當前交換操作過程產生的日志信息結合。3設計實現
3.1系統邏輯
基于以上數據交換元數據,一個通用的數據交換系統框架由5層結構組成,分別是數據源層、數據訪問層、元數據層、交換功能層和應用層,如圖4所示。
數據源層:需要進行數據交換的所有數據源,能夠支持數據源動態地加入或退出。
數據訪問層:功能模塊訪問數據源的統一接口,它為上層的功能應用屏蔽了異構數據源訪問差異,其核心是為不同類型的數據源建立相應的適配器。
元數據層:存儲數據交換功能的元數據,它是數據交換功能的驅動源。
交換功能層:由實現數據抽取轉換的各功能模塊組成,包括數據抽取功能、數據轉換功能、數據、數據加載功能和過程控制功能等。
應用層:提供數據源注冊管理、數據映射編輯、數據交換策略管理、交換任務管理、交換任務執行、交換日志管理等用戶交互操作界面。
3.2系統應用流程
數據交換系統應用流程包括:
(1)注冊數據源。按照數據源描述元數據的要求,將需要進行數據交換的數據源加入到交換系統中,詳細描述數據源相關信息,包括連接信息和數據結構信息。
(2)編輯數據映射。根據數據交換需求,針對參與交換的源數據庫和目標數據庫的結構差異,建立字段級數據映射關系,選擇相應的數據轉換函數。
(3)數據交換任務管理。創建數據交換任務,設置交換策略。選擇源數據庫和目標數據庫,確定任務啟動方式(手動或自動)、啟動時間、間隔周期等參數;根據數據抽取、數據轉換和數據加載元數據要求,描述數據抽取范圍、數據抽取策略、數據加載策略等。
(4)數據交換任務執行。根據交換任務啟動策略,啟動一個交換任務。系統完成數據抽取、數據轉換、數據加載等動作,并記錄任務執行過程中的相關日志信息。
(5)數據交換日志管理。查看相關任務執行過程中的日志信息。
4結語
本文通過分析數據交換過程,提煉出數據交換的元數據模型,基于這些元數據模型構建了通用的數據交換系統。實踐表明,基于元數據驅動的數據交換系統,屏蔽了異構數據源的差異,適應了數據映射規則的多樣可擴展特性,滿足了交換策略的靈活可定制要求。通過該系統,可以集中管理異構數據源,進行異構數據之間的轉換,具有良好的適應性、靈活性、通用性和可擴展性,為進行大規模的數據遷移和數據集成提供了基礎支撐。
參考文獻:
張朝暉,徐立臻,董逸生.一種基于SOA的企業集成平臺[J].計算機工程,2011,37(5):115119.
鄧新莉,張四平,劉 珊,等.基于中間件平臺的異構數據交換與集成[J].四川兵工學報 ,2011,32(3):2628.
鄒衛國,郭建勝,王毅.基于XML的異構數據交換研究 [J]. 中國管理信息化,2009,12(24):184189.
王盼卿,劉增良,陶源.基于元數據的ETL工具集成研究 [J]. 2009,25(12):5861.
李慶陽,彭宏.面向數據質量的ETL框架的設計與實現[J]. 2010,31(9):6670.
責任編輯(責任編輯:杜能鋼)