刁樹民,李美珊,張曉勇,金喜波
(1.佳木斯大學信息學院,黑龍江 佳木斯154007;2.黑龍江省政府信息中心,黑龍江 哈爾濱150030)
在裝備制造業(yè)高度信息化時代,產(chǎn)業(yè)協(xié)作鏈需要聚合協(xié)同設計和協(xié)作生產(chǎn)企業(yè)生產(chǎn)基礎數(shù)據(jù)資源.大多行業(yè)盟主企業(yè)經(jīng)過多年的發(fā)展,積累了豐富的生產(chǎn)和管理數(shù)據(jù),可以通過裝備制造業(yè)協(xié)作服務平臺供盟員企業(yè)共享.但是由于歷史發(fā)展不同,企業(yè)數(shù)據(jù)都按自有特征存放,存儲形式多樣化,大致為自定義的、異構分布數(shù)據(jù).因此,各種數(shù)據(jù)庫結構的差異,操作平臺的差異、概念和術語的差異等問題,為今天的大數(shù)據(jù)共享設置了障礙.面對這樣的異構數(shù)據(jù),信息服務平臺就要對來自不同的異構數(shù)據(jù)源的信息進行處理和集成,存儲于一個語義一致的數(shù)據(jù)庫中,使異構數(shù)據(jù)變成公認的同識數(shù)據(jù).本文依據(jù)數(shù)據(jù)處理方法結合實際經(jīng)驗,對分布于異地、跨平臺的異構數(shù)據(jù)源進行集成,按照某種數(shù)據(jù)轉換規(guī)則,最后把標準格式數(shù)據(jù)加載到目標數(shù)據(jù)庫中.
異構數(shù)據(jù)交換需要完成數(shù)據(jù)析取和轉換兩大功能.首先進行數(shù)據(jù)析取,主要是確定數(shù)據(jù)源和采集原始數(shù)據(jù)兩個作用.數(shù)據(jù)析取的實現(xiàn)設置一個數(shù)據(jù)接口完成,析取的數(shù)據(jù)分布于不同的外網(wǎng)、操作平臺、數(shù)據(jù)庫和數(shù)據(jù)文件.然后,通過分析不同的數(shù)據(jù)源,對各種元數(shù)據(jù)的分析,為后續(xù)的數(shù)據(jù)轉換過程奠定基礎.其次,數(shù)據(jù)轉換功能主要解決數(shù)據(jù)的規(guī)則定義和數(shù)據(jù)格式的轉換問題[1].
總之,完成異構數(shù)據(jù)交換主要需要以下四個步驟:
(1)連接異構數(shù)據(jù)源
首先確定源數(shù)據(jù)庫,然后進行連接操作;根據(jù)用戶定義的異構數(shù)據(jù)類型、數(shù)據(jù)傳遞方式和驗證信息,獲得準確的異構源數(shù)據(jù)的必要信息.連接后,可以執(zhí)行析取異地遠程數(shù)據(jù)功能;然后緩存到元數(shù)據(jù)庫中.
(2)設置析取規(guī)則
第一步設置過濾條件;依據(jù)用戶需求定義字段過濾條件表達式,編寫字段之間的內(nèi)在聯(lián)系,確定最終的過濾條件;然后分析和設定分組;給出分組表達式,把析取的關聯(lián)字段給予有序分組;最后設計排序規(guī)則;分析和編寫排序表達式,選擇相關字段為升序或降序序列.
(3)數(shù)據(jù)清洗
此功能是全面對異構元數(shù)據(jù)執(zhí)行有效性檢查,發(fā)現(xiàn)無效記錄、重復記錄、數(shù)據(jù)項不全的數(shù)據(jù)進行清理.在數(shù)據(jù)清洗與應用行業(yè)領域相關性很強,通用性受到局限,注重對重復記錄的清除和缺失數(shù)據(jù)的補充.
(4)轉換規(guī)則的制定
該功能是將析取的數(shù)據(jù)信息按照元數(shù)據(jù)庫中標準數(shù)據(jù)表信息轉換到目標數(shù)據(jù)庫,包含一些數(shù)據(jù)操作:過濾、合并、匯總、轉換等.數(shù)據(jù)加工必須遵循數(shù)據(jù)的確定性、可靠性和完整性,為后續(xù)過程保證正確支持[2].
按照上述分析,將異構數(shù)據(jù)交換系統(tǒng)分為3 個過程:源數(shù)據(jù)、轉換數(shù)據(jù)、目標數(shù)據(jù);重點是轉換數(shù)據(jù)部分(見圖1).
圖1 異構數(shù)據(jù)交換系統(tǒng)架構設計示意圖
系統(tǒng)架構圖中數(shù)據(jù)轉換模塊部分把源數(shù)據(jù)和目標數(shù)據(jù)隔離,即數(shù)據(jù)集成功能對圖1 中源數(shù)據(jù)庫進行數(shù)據(jù)析取操作,再由數(shù)據(jù)轉換模塊執(zhí)行數(shù)據(jù)轉換功能,然后把結果數(shù)據(jù)載入到目標數(shù)據(jù)庫中.在數(shù)據(jù)轉換三步曲中:抽取、轉換、加載,均有元數(shù)據(jù)庫的元數(shù)據(jù)作為重要參數(shù)介入轉換.用戶制定轉換要義,轉換過程可以從元數(shù)據(jù)模型得到目標數(shù)據(jù)庫的標準數(shù)據(jù)構造要素,用戶只需在定義界面上確定析取規(guī)則、轉換規(guī)則、裝載規(guī)則等規(guī)則,定義從源數(shù)據(jù)到目標數(shù)據(jù)的相關字段映射等內(nèi)涵關聯(lián),之后把系列規(guī)則和關系加到元數(shù)據(jù)管理模型中.通過用戶自定義若干規(guī)則和關系,與數(shù)據(jù)庫共同交互完成數(shù)據(jù)交換業(yè)務.
本系統(tǒng)異構數(shù)據(jù)集成流程(部分)設計如下見圖2:
數(shù)據(jù)轉換過程首先由系統(tǒng)驗證遠程源數(shù)據(jù)庫;確認后,馬上析取源數(shù)據(jù)庫和目標數(shù)據(jù)庫的映射數(shù)據(jù)表相關字段數(shù)據(jù),元數(shù)據(jù)的關鍵信息以直觀的用戶界面執(zhí)行對應顯示;在數(shù)據(jù)抽取步驟中,確切定義必要的析取規(guī)則來確定相關的析取數(shù)據(jù)特征;如定義投影字段、選擇過濾條件、選擇分組條件和選擇排序條件等;然后,將抽取數(shù)據(jù)暫存入元數(shù)據(jù)庫中,臨時集中等待處理;第三步由系統(tǒng)執(zhí)行轉換過程,此過程用戶通過設置程序算法、計算公式和轉換函數(shù)等相關衍生定義來完成有效的數(shù)據(jù)映射,涉及相關字段合并與拆分、若干字段的語義集合、內(nèi)涵關系、處置重復記錄、缺省值發(fā)現(xiàn)等處理操作;完成以上操作后就能獲得規(guī)范的、符合的標準數(shù)據(jù),也就是獲得了需要裝載的數(shù)據(jù).在標準數(shù)據(jù)加載過程中,通過系統(tǒng)設計的拖拽的技術建立源數(shù)據(jù)庫和目標數(shù)據(jù)庫之間的轉換規(guī)則,逐步轉換到最終數(shù)據(jù)庫中.
本系統(tǒng)以Web Services 作為基礎架構的數(shù)據(jù)傳輸技術,負載異構數(shù)據(jù)的數(shù)據(jù)集成.圖3 描述了本架構的數(shù)據(jù)集成模塊總體功能.本架構整體涵蓋了多個分布的異構子模塊和相關數(shù)據(jù)轉換模塊.遠程異構子模塊通過Web Services 服務器實現(xiàn)數(shù)據(jù)轉換功能,程序模塊隱藏了轉換過程全部細節(jié),僅提供接口參數(shù);它能執(zhí)行數(shù)據(jù)轉換操過程的請求、及時響應操作.由此可見,它是通過Web Services抽取數(shù)據(jù),然后向下一步的數(shù)據(jù)轉換過程提供源數(shù)據(jù).數(shù)據(jù)集成模塊構架如下圖圖3:
圖2 數(shù)據(jù)轉換流程圖
圖3 數(shù)據(jù)集成模塊構架示意圖
元數(shù)據(jù)含義是符合目標數(shù)據(jù)特征的中介數(shù)據(jù),關系標準數(shù)據(jù)的構造、內(nèi)涵、位置、狀態(tài)和其它屬性信息.元數(shù)據(jù)本身表達了數(shù)據(jù)的要素,對數(shù)據(jù)屬性進行了合理描述,即可完成對數(shù)據(jù)的快速定位與高效管理.
元數(shù)據(jù)管理業(yè)務流程如圖4 所示;首先通過用戶接口模塊連接元數(shù)據(jù)庫,用戶通過元數(shù)據(jù)讀取模塊功能訪問元數(shù)據(jù)庫,方便為抽取數(shù)據(jù)時提供企業(yè)數(shù)據(jù)庫的抽取數(shù)據(jù).得到數(shù)據(jù)樣本或者客戶端異構數(shù)據(jù)源返回的信息來進一步完善元數(shù)據(jù)的屬性要素,利用元數(shù)據(jù)配置和寫入模塊來完成元數(shù)據(jù)管理.
圖4 元數(shù)據(jù)管理模塊示意圖
元數(shù)據(jù)可以對裝備制造行業(yè)的分布式異構數(shù)據(jù)實施集中布局.首先元數(shù)據(jù)庫應用成熟的關系數(shù)據(jù)庫工具(Oracle,SQL Server,DB2 等)創(chuàng)建一個數(shù)據(jù)庫,存儲目標數(shù)據(jù)屬性信息;然后依據(jù)行業(yè)用戶元數(shù)據(jù)標準定義并且創(chuàng)建符合要求的數(shù)據(jù)表;產(chǎn)生的標志性目標數(shù)據(jù)表就是行業(yè)聯(lián)盟分布式異構數(shù)據(jù)的元數(shù)據(jù)信息表(DATA_SOURCE_INFO),涵蓋企業(yè)分布式異構數(shù)據(jù)構造的全部標準字段特征要點.系統(tǒng)元數(shù)據(jù)特征的描述貼近度可以波及行業(yè)用戶對元數(shù)據(jù)的認識程度,同時也羅列出對此元數(shù)據(jù)說明的數(shù)據(jù)與其他數(shù)據(jù)本質(zhì)區(qū)別特點[3].
開發(fā)環(huán)境配置:Java 語言:JavaSE6.0;開發(fā)工具:eclipse 4.1;應用服務器:Tomcat 6.0;開發(fā)框架:Struts 2.3 +Spring 3.1 +Hibernate 4.1.
服務器端配置的操作系統(tǒng):Windows7;數(shù)據(jù)庫:MySQL 6.1;應用服務器:Tomcat 6.0;運行支撐:JDK 6.
客戶端配有操作系統(tǒng):Windows7;IE 瀏覽器6.0 以上.
網(wǎng)絡平臺服務器端或用戶客戶端處于何種狀態(tài),WebServices 都能提供了一個與平臺無關的、面向消息的、基于分布式的作用,系統(tǒng)Web 功能定會發(fā)揮自定的方式連接遠程客戶端接口.并以Web技術方式設計的應用程序,足以創(chuàng)建功能更強大的Web 服務,并使用WebServices 應用程序作為整體功能作用.利用其功能特點,本模塊使用Web Services 來包裝行業(yè)群分布式異構數(shù)據(jù)源;本系統(tǒng)實際利用eclipse 4.1 開發(fā),JavaSE6.0 語言,MySQL 6.1作為元數(shù)據(jù)庫.
2.3.1 數(shù)據(jù)析取功能的實現(xiàn)
數(shù)據(jù)集成模塊是從各個外數(shù)據(jù)源中析取數(shù)據(jù),對這些數(shù)據(jù)進行規(guī)范,完成該功能的函數(shù):(1)合并字段函數(shù)public boolMerge():將源數(shù)據(jù)庫中的多個字段的值合并成一個字段的值加載到數(shù)據(jù)倉庫中;(2)字段拆分函數(shù)publicboolSplit():把源庫數(shù)據(jù)表中的對應字段屬性值分解出若干個字段值加載到目標數(shù)據(jù)庫中;(3)衍生變換函數(shù)publicboolCreateTable():依據(jù)析取規(guī)則將源庫數(shù)據(jù)表中的關鍵字段及其屬性值抽取出來創(chuàng)建新的數(shù)據(jù)表.
2.3.2 數(shù)據(jù)轉換功能的實現(xiàn)
系統(tǒng)數(shù)據(jù)集成是對行業(yè)企業(yè)群數(shù)據(jù)進行再轉換的過程,僅僅依靠系統(tǒng)需求按照定義轉換規(guī)則面對源庫中多個表、多個字段統(tǒng)一執(zhí)行操作,通過定義的引用來實現(xiàn)轉換規(guī)則的定制,從而達到用戶需求標準數(shù)據(jù)的狀態(tài)和規(guī)范.
具體工作是由用戶設置好投影條件、過濾條件、分組條件和排序條件,數(shù)據(jù)轉換功能實現(xiàn)函數(shù)是:public string GenaralQueryMysql(DataTypetheProjeet,DataTypetheFilter,DataType theGroupBy,Data-Typethesort);其中:theProjeet 參數(shù)設置了投影的字段,theFilter 參數(shù)設置了的過濾條件,theGroupBy 參數(shù)設置了分組條件,theSort 參數(shù)設置了排序條件.
2.3.3 數(shù)據(jù)裝載功能的實現(xiàn)
在選擇了源數(shù)據(jù)庫表字段和目標數(shù)據(jù)庫表字段后,而且設置好了它們之間轉換規(guī)則之后,源數(shù)據(jù)就可以轉換為目的數(shù)據(jù),執(zhí)行成功數(shù)據(jù)即可加載到目標數(shù)據(jù)庫中.其裝載接口函數(shù)的功能即可完成數(shù)據(jù)裝載,該函數(shù)Public BoolImportData()功能:實現(xiàn)源數(shù)據(jù)庫數(shù)據(jù)與目標數(shù)據(jù)庫數(shù)據(jù)的裝入與加載.
通過對異構數(shù)據(jù)交換技術的研究,加深了對Web Services 體系結構的了解和應用,對異構數(shù)據(jù)庫技術和元數(shù)據(jù)技術的開發(fā)應用及應用過程有了初步的運用.完成了基于Web Services 對SQL Server、Oracle、等數(shù)據(jù)庫的數(shù)據(jù)析取,基于本系統(tǒng)功能對源庫異構數(shù)據(jù)轉換的實施,創(chuàng)建了操作快捷、功能強大、界面清晰的數(shù)據(jù)集成轉換工具.
[1] 杜思峰.數(shù)據(jù)交換平臺中異構數(shù)據(jù)轉換技術的研究[D].西安:西安工業(yè)大學,2011.
[2] 洪東忍.基于水廠數(shù)據(jù)倉庫系統(tǒng)的ETL 技術研究[J].云南民族大學學報,2012,(05):365-369.
[3] 錢大君,吳健平,余柏莨,等.基于元數(shù)據(jù)和web Service 的分布式異構數(shù)據(jù)共享平臺的體系與實現(xiàn).中國科技論文在線:http://www.paper.edu.cn.