由于各系統架構不一致,所以目前采取的方式主要是數據集成。但是,在實施數據集成的過程當中,由于不同用戶提供的數據可能來自不同的途徑,其數據內容、數據格式和數據質量千差萬別,有時甚至會遇到數據格式不能轉換或數據轉換格式后丟失信息等棘手問題,嚴重阻礙了數據在各部門和各軟件系統中的流動與共享。
數據集成可以分為兩種,實時性的和非實時的。目前大多數據集成產品是非實時的,對于需要整合的數據,先由一個系統定時導出并生成xml格式的數據,然后由另一個系統定時來處理。非實時的系統的優點是比較容易實現,缺點是不能實現各系統數據的實時集成。實時數據集成系統可以采用數據庫層的直接集成或者通過面向服務架構(SOA)來實現,由于數據庫廠商一般難以接受開放數據庫接口給其他廠商,所以未來發展的趨勢主要還是利用SOA來實現數據集成。
什么是SOA
SOA,即面向服務的架構,它是一個組件模型,將應用程序的不同功能單元進行拆分,并通過這些服務之間以中立的方式定義的接口和協議聯系起來。它獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行交互。
實時數據集成方法
實時數據集成一般分為兩個處理過程:一是對數據按照SOA架構的需要進行整合加工形成可用的信息,二是將信息以符合SOA規范的方式發布出去。具體的實時數據集成可以分為以下三種:
首先看第一種,我們知道,在業務系統中間層上存在一個虛擬數據層,用戶可以通過JDBC,FILE適配器、應用適配器等方式向數據庫發出請求,數據庫會將數據映射到虛擬數據層,相當于將數據臨時存儲到虛擬數據層,然后按照一定標準對數據加工整合,用戶就可以通過可視化方式獲取這些處理好的數據。處理好的數據可以通過web service,JDBC,數據對象等多種方式發布出去。當用戶通過中間件訪問虛擬數據層的數據時,虛擬數據層會根據系統定義的邏輯首先將需要加工的細節數據從各個數據源抽取到虛擬數據層,然后中間件根據設計時的數據加工邏輯對其進行加工,最后中間件將加工好的數據以調用接口要求的格式返回。
采用虛擬數據服務層的優勢為:
-
對數據的處理會比較靈活,應用和底層的數據實現松耦合。
-
支持并發方式訪問數據。
-
數據可以采用多種方式對外提供接口。
-
確保數據的時效性。
但是,這樣做的問題一是數據傳輸速率不夠快,二是當數據量非常大時,效率會變低。
第二種是在數據庫底層就對數據進行加工處理,然后將處理好的數據以標準的接口發布到中間件層,用戶通過中間件層訪問數據。此方法流程如下,首先根據用戶的業務需求,在數據庫底層設計數據轉化流程,然后將數據轉化的流程與數據通過web服務,注冊到中間件層,當前端用戶需要數據服務時,直接調用web服務,數據庫就會先對數據進行整合加工,存儲在臨時表中,用戶從臨時表中取出加工后的數據,與第一種模式的區別在于,它將數據的加工處理放在了數據源層,其優勢在于:
-
對大數據量效率會非常高。
-
可以充分利用數據庫的處理能力。
-
可以進行增量數據的處理。
-
數據轉化和數據獲取松耦合,可以實現異步處理。
該模式的問題在于:
-
過于依賴數據庫的處理能力,因此必須針對所有數據源,搭建一個數據庫關系系統。
-
需要調用兩次WEB服務中,一次為轉化,一次為數據讀取,數據量非常小的情況下,效率不夠高。
第三種是將分散在數據層的數據先整合到ODS或者數據倉庫中進行整合加工,然后再將加工整理后的數據以標準接口發布到中間件層。為了保證為企業提供一個全局的數據視圖,我們可以通過建立一個全局的操作型數據庫ODS,當數據源內的數據發生變化時,CDC會捕捉到變化的數據并通過ETL工具或者其它手段同步到ODS數據庫。在該模式中,ODS里的數據可以封裝成WEB服務發布在中間件層,中間件層負責數據的接入訪問。當前端業務流程需要集成的數據時,可以直接訪問ODS內的數據,如果數據集成比較復雜,可以根據用戶的業務需要,通過ETL工具或者其它工具對統一模型層的數據進行加工放到匯總數據層,然后再從匯總數據層訪問數據。
睿治數據集成管理是億信華辰自研的數據集成系統,可實現跨部門數據的傳輸、加載、清洗、轉換和整合,支持自定義調度和圖形化監控,實現統一調度、統一監控,滿足運維可視化需求,提高運維管理工作效率。功能架構如圖所示。