實時數據集成

?

?

企業應用集成

面向服務的體系結構?(SOA) 目前應該是一個很受歡迎的名詞,中間件技術人員幾乎到了言必稱SOA的程度,數據集成當然也不例外,在Oracle openworld2008大會上,就推出了一堆數據集成的專場演講,其中和SOA結合最緊密的就是實時數據集成?real time data integration。我總結了一下,實時數據集成一般分為兩個處理過程:一是對數據按照SOA架構的需要進行整合加工形成可用的信息,二是將信息以符 合SOA規范的方式發布出去。具體的實時數據集成模式可以按照對這兩個處理過程的設計分為以下四種:

1.???????在中間件層上進行數據的加工整合,同時通過中間件層的標準接口將整合后的數據以標準接口發布。

2.???????數據源層負責數據的加工處理,然后將整合后的數據以標準的接口發布到中間件層,由中間件層負責數據的訪問。

3.???????將分散在數據層的數據先整合到ODS或者數據倉庫中進行整合加工,然后再將加工整理后的數據以標準接口發布到中間件層。

4.???????采用數據網格的方式將數據層的數據整合在中間層,形成數據網格,中間件負責數據的加工,整合,然后以標準的方式發布出去。

我們先看第一種模式,數據集成發生在中間件層,數據發布也發生在中間件層,如下圖所示:

?

?

?

?

在中間層上存在一個虛擬的數據服務層,該層通過JDBC,FILE 適配器、應用適配器等與數據層的各種數據源實現連接,將數據源中的各種數據實體映射成中間件的虛擬數據層的表,虛擬數據層中的表都只有元數據,而不存儲實 際的生產數據。用戶可以在虛擬數據層上采用可視化圖形界面定義數據映射關系,進行數據加工整合,這些數據加工邏輯一般會以文件或者數據庫方式存儲。定義好 的數據可以通過web service,JDBC,數據對象等多種方式發布出去。當用戶通過中間件訪問虛擬數據層的數據時,虛擬數據層會根據系統定義的邏輯首先將需要加工的細節 數據從各個數據源抽取到虛擬數據層,然后中間件根據設計時的數據加工邏輯對其進行加工,最后中間件將加工好的數據以調用接口要求的格式返回。

采用虛擬數據服務層的優勢為:

1.???????處理都在中間件服務器上,相對來講,對數據的處理會比較靈活,應用和底層的數據實現松耦合。

2.???????當一個請求涉及到多個底層數據源時,對底層的數據訪問可以采用并發方式進行。

3.???????借助中間件的靈活性,數據可以采用多種方式對外提供接口,從而大大方便各種應用的開發。

4.???????所有的數據都是實時從數據源取來,保證數據的時效性。

問題:

數據的處理在中間件層進行,一是帶來從數據源到中間件層的數據傳輸,二是中間件一般都是J2EE架構,其強項并不是數據處理,在數據量不大時并無大礙,當數據量非常大時,其實現機制就注定了效率會出現問題。

?

第二種模式的實現方法為:數據源層負責數據的加工處理,然后將整合后的數據以標準的接口發布到中間件層,中間件層只負責數據的接入訪問,如下圖所示:

?

?

?

?

這種處理方式一般是數據庫廠商或者ETL廠商推薦的方式,根據用戶的業務需求邏輯,首先在數據源層通過ETL工具設計數據轉化流程,然后將流程的轉化邏輯發布成web服務,同時將轉化后的數據也發布成web服務,然后將這些服務注冊到中間件層,當前端用戶需要數據服務時,它需要調用兩個web服務,第一個是轉化web服務,該web服務調用相應的ETL工具對數據進行整合加工,然后將整合的數據存儲在臨時表中。第二個服務是調用數據服務,直接從臨時表中取出加工后的數據,與第一種模式的區別在于,它將數據的加工處理放在了數據源層,其優勢在于:

1.???????ETL工具天生就是做數據整合的,而且適合大數據量的整合,所以針對大數據量效率會非常高。

2.???????在數據源層整合可以充分利用數據庫的處理能力,畢竟數據庫才是做數據處理的行家。

3.???????依靠E-LT工具的變化數據捕捉功能,可以進行增量數據的處理。

4.???????數據轉化和數據獲取松耦合,可以實現異步處理。

該模式的問題在于:

1.???????由于數據的加工處理依賴于數據庫的處理能力,因此在所有的數據源中,必須有一個為關系型數據庫系統,而第一種模式由中間件負責數據處理,數據源沒有限制。

2.???????在應用的流程設計中,需要調用兩次WEB服務,一次為轉化,一次為取數據讀取,數據量非常小的情況下,有點畫蛇添足的味道。

?

第三種模式其實是前兩種模式的組合,但其數據集成是基于數據倉庫的概念發展演化而來,象現在很多企業單位正在建的ODS系統。如下圖:

?

?

?

?

為了保證為企業提供一個全局的數據視圖,我們可以通過建立一個全局的操作型數據庫ODS(operational data storage),該數據庫與企業內的其它數據源通過變化數據捕捉(change data capture)方式保持實時同步,當數據源內的數據發生變化時,CDC會捕捉到變化的數據并通過ETL工具或者其它手段(如主數據管理工具)同步到ODS數據庫中。ODS數庫內存儲的數據可以分為三層,如下圖所示:

?

?

?

接口數據層:主要負責接收從各個實時系統收集到的臨時變化數據。

統一模型層:針對企業共享數據的要求建立的企業級統一數據模型,接口數據層的數據通過加工整合然后進入統一模型層。統一模型層是ODS對外提供數據供應的主要數據源

匯總數據層:根據用戶的業務需要,在ODS上 建立一些統計、匯總,提供一些全局的數據報表。從接口層到統一模型層以及從統一模型層到匯總層數據都可以采用異步的方式完成,很多企業目前采用的方式是從 接口層到統一模型層采用準實時的方式完成,而從統一模型層到匯總層一般在晚上或者其它時間窗口完成,一方面避免對生產系統的影響,另一方面也可以充分利用 機器的處理能力,當客戶需要訪問一些匯總數據時,可以從匯總表直接取已經匯總好的數據,從而加快系統的響應時間。

最后一點就是數據的發布格式,在該模式中,中間件層負責數據的接入訪問,ODS里的數據可以封裝成WEB服務發布在中間件層。當前端業務流程需要集成的數據時,可以直接訪問ODS內的數據,如果數據集成比較復雜,我們可以根據用戶的業務需要,通過ETL工具或者其它工具(第二種模式)對統一模型層的數據進行加工放到匯總數據層,然后再從匯總數據層訪問數據。

第四種模式是采用數據網格的技術來實現實時數據集成,它和第一種方式非常相似,數據的整合加工和發布都在中間件層上,唯一不同的是我們采用數據網格技術在中間層增加了一層對象緩存層,如下圖示:

?

?

?

數據的整合加工和訪 問接入都發生在中間件層,當客戶端訪問數據時,所有的流程方式都和第一種模式沒什么區別,但需要訪問的數據都通過數據網格層緩存在了中間件層,因此減少了 數據源訪問和網絡傳輸的時間,訪問速度會大大加快,從而可以在一定程度上解決第一種模式的不足,但數據處理仍然發生在中間件層,如果中間件處理能力有限, 系統的效率還會受到局限。

在這里需要說明的是數據網格并不是專門來做數據集成的,從上面的示意圖中我們也可以看到,數據集成只是數據網格的一個副產品而已,關于數據網格的定義及功能,我們會在其它文章中解釋。

該模式的優勢:

1.???????系統擴展性好,數據網格層的擴展性決定了整個系統的擴展性。

2.???????當機器的處理能力不足時,通過集群方式可以大大提高性能。

3.???????真正實現了前臺數據與后臺數據源的松耦合。數據網格負責與各種后臺數據源的交互。

問題

1.???????中間件層數據的加工整理過程仍然存在。

2.???????如果應用已經上線,需要針對數據網格提供的接口修改應用。

?

總結

以上四個模式各有自己的應用范圍,從總體上看,數據的處理越靠近底層,效率越高,靈活性越差;越往上走,效率越低(網絡傳輸和J2EE語言的擅長點不在數據處理),靈活性越好;其實各種數據集成模式無所謂好壞,關鍵是看業務需求,只要能夠滿足業務需求就夠了。

?

轉載于:https://www.cnblogs.com/lcword/p/5632569.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271474.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271474.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271474.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea 中代碼大小寫切換快捷鍵

idea用使用 CTRL SHIFT U 使用前: 使用后:

nginx做服務器入口_Nginx實現http反向代理

什么是反向代理?反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器…

操作系統基礎:進程知識筆記(二)

一、管程 1、管道概念概念 管道是用于連接一個讀進程和一個寫進程。用來實現它們之間通信的共享文件。 2、管程的概念 管程是由一些共享數據、一組能為并發進程所執行的作用在共享數據上的操作集合、初始代碼、以及存取權組成。管程提供了一種可以允許多線程安全、有效地共享抽…

怎樣保護計算機連接線,一根網線把電腦燒了:雷雨天如何保護家電?

記得在小時候,每逢遇到雷雨天氣,爸媽總會讓我們關掉電視機、電腦等家電,雖然很不情愿,但為了避免電器遭受雷擊造成損壞,我們還是會照做。現在長大了,除了知其然,還更要知其所以然,那…

HDU5697 刷題計劃 dp+最小乘積生成樹

分析:就是不斷遞歸尋找靠近邊界的最優解 學習博客(必須先看這個): 1:http://www.cnblogs.com/autsky-jadek/p/3959446.html 2:http://blog.csdn.net/u013849646/article/details/51524748 注:這…

pos加盟申請php_ThinkPHP萬能表單程序源碼 報名預約加盟申請調查表單程序源碼

平臺聲明:本商品由平臺商家發布,如果本商品源碼侵犯了您的利益請在上方價格右側或聯系平臺客服舉報。微信表單-實現各行業的報名、預約、加盟申請、問卷調查等應用01.自定義表單模型(自定義字段支持字符串、數字、單選、多選、下拉、日歷、時間、郵件、省…

分析Java中的三種不同變量的區別

1、首先分析Java中的三種不同變量的區別,如下表所示 概念默認值其他類變量 也叫靜態變量,是類中獨立于方法之外的變量 用static 修飾 有默認初始值,系統自動初始化。 如boolean默認為false. 可以被public,protect,pr…

分享我常用的5個免費的在線 SQL 數據庫環境,簡直太方便了!

大今天給大家分享幾個在線的免費 SQL 運行環境,也就是在線數據庫。這些網站可以幫助我們快速運行一些 SQL 語句的測試或者驗證,同時還可以在網絡上進行分享,關鍵不需要自己安裝數據庫。SQL FiddleSQL Fiddle 提供了 MySQL、Oracle、PostgreSQ…

python刷題用leet_GitHub - Yolymaker/leetcode-python: 利用python分類刷leetcode題目

leetcode分類高效刷題 leetcode是一個很好的學習算法的一個online judge的網站,通過刷題能夠快速提升自己的算法能力。但是令大家都頭疼的就是,怎么能夠高效的通過leetcode刷題掌握算法的做題技巧,并且順利通過面試。 刷題的時候千萬不要懷疑…

36歲 計算機博士,36歲考博士

博士生在學習期間,須在國內外核心期刊上正式發表與學位論文緊密相關(構成學位論文的主要組成部分)的學術論文且積分必須在6分(含6分)以上方可申請授予學位。以上發表的論文應以**大學商學院為第一署名單位,博士生為第一作者或導師為第一作者、博士生為第…

OPTIMIZE TABLE

INNODB 不支持mysql> OPTIMIZE TABLE t; ----------------------------------------------------------------------------------------------- | Table | Op | Msg_type | Msg_text | ------------------…

r語言 面板數據回歸_R語言_018回歸

回歸分析是統計學的核心。它其實是一個廣義的概念,指那些用一個或多個預測變量來預測響應變量的方法。通常,回歸分析可以用來挑選與響應變量相關的解釋變量,可以描述兩者的關系,也可以生成一個等式,通過解釋變量來預測…

Integer對象范圍(-128-127)之間(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用 Integer. valueOf()可以將基本類型int轉換為包裝類型Integer,或者將String轉換成Integer,String如果為Null或“”都會報錯 看下面代碼示例 取值為127時 取值為128時 為什么會是這樣呢? 首先,我們…

操作系統基礎:進程知識筆記(三)

1、死鎖概念知識 計算機中存在許多互斥資源(打印機)、軟件資源(進程表、臨界區)如果兩個進程同時調用打印機,或同時進入臨界區必然會出現問題。 死鎖:指兩個以上的進程互相要求對方已經占有的資源導致無法繼…

垂直梯形校正畫質損失多少_梯形校正功能是怎么實現的?其中可大有學問

梯形校正這個概念,想必大部分投影儀用戶早已耳熟能詳。所謂的梯形校正,指的是當我們的投影儀位置擺放不正時,投射出來的畫面會是一個梯形,這時候需要通過投影儀的梯形校正功能將畫面調整為可以正常觀看的矩形。雖然目前市場上的大…

操作系統基礎:存儲管理知識筆記(一)

1、存儲器基礎知識 存儲器管理的對象是主存或內存,存儲器是計算機系統中非常關鍵的資源,用來存放各種信息的主要場所。存 儲器管理功能主要包括:主存空間的分配和回收、提供主存利用率、擴充主存、主存信息的保護。 2、存儲器結構 存儲器結構…

asp點擊按鈕sql列求和_助你2020晉級互聯網大數據陣營(一):輕輕松松學SQL

毫不負責任的說,你和數據科學家最大的鴻溝,就差一個SQL語言:)入門后,后面的事情就簡單了為了幫大家盡快入門Hive SQL、學會提數和分析,實現在大數據領域大干一場的愿望,幫你準備好了數據,準備好…

冪等和高并發在電商系統中的使用

在Java web項目開發中,經常會聽到在做訂單系統中生成訂單的時候,要做冪等性控制和并發控制,特對此部分內容作出總結,在高并發場景下,代碼層面需要實現并發控制;但是冪等性,其實更多的是系統的接…

@transactional注解失效情況

先來了解一下Transactional注解事務的特性吧,可以更好排查問題 1、service類標簽(一般不建議在接口上)上添加Transactional,可以將整個類納入spring事務管理,在每個業務方法執行時都會開啟一個事務,不過這些事務采用相同的管理方…

計算機c盤隱藏了怎么辦,win7怎么隱藏c盤 win7c盤被隱藏了怎么解除

很多的電腦用戶擔心其他用戶在使用電腦時修改c盤中的重要文件,所以會將c盤設置為隱藏,那么大家知道在win7系統中怎么隱藏c盤嗎?方法很簡單,下面小編為大家帶來win7隱藏c盤的詳細教程,不知道怎么隱藏的朋友可以查看下面的教程學習…