數據集成
出自 MBA智库百科(https://wiki.mbalib.com/)
數據集成(Data Integration)
目錄 |
數據集成概述[1]
就大型企業和政府部門的信息化而言,信息系統建設通常具有階段性和分佈性的特點,這就導致“信息孤島”現象的存在。“信息孤島”是指不同軟體間,尤其是不同部門間的數據信息不能共用,造成系統中存在大量冗餘數據、垃圾數據,無法保證數據的一致性,嚴重地阻礙了企業信息化建設的整體進程。為解決這一問題,人們開始關註數據集成研究。
數據集成就是將若幹個分散的數據源中的數據,邏輯地或物理地集成到一個統一的數據集合中。數據集成的核心任務是要將互相關聯的分散式異構數據源集成到一起,使用戶能夠以透明的方式訪問這些數據源。集成是指維護數據源整體上的數據一致性、提高信息共用利用的效率;透明的方式是指用戶無需關心如何實現對異構數據源數據的訪問,只關心以何種方式訪問何種數據。實現數據集成的系統稱作數據集成系統(見下圖),它為用戶提供統一的數據源訪問介面,執行用戶對數據源的訪問請求。
數據集成的數據源主要指DBMS,廣義上也包括各類XML文檔、HTML文檔、電子郵件、普通文件等結構化、半結構化信息。數據集成是信息系統集成的基礎和關鍵。好的數據集成系統要保證用戶以低代價、高效率使用異構的數據。要實現這個目標,必須解決數據集成中的~些難題。
數據集成的難點可以歸納為以下主要方面:
1)異構性。被集成的數據源通常是獨立開發的,數據模型異構,給集成帶來很大困難。這些異構性主要表現在:數據語義、相同語義數據的表達形式、數據源的使用環境等。
2)分佈性。數據源是異地分佈的,依賴網路傳輸數據,這就存在網路傳輸的性能和安全性等問題。
3)自治性。各個數據源有很強的自治性,它們可以在不通知集成系統的前提下改變自身的結構和數據,給數據集成系統的魯棒性提出挑戰。
數據源的異構性一直是困擾很多數據集成系統的核心問題,也是人們在數據集成方面研究的熱點。異構性的難點主要表現在語法異構和語義異構上。語法異構一般指源數據和目的數據之間命名規則及數據類型存在不同。對資料庫而言,命名規則指表名和欄位名。語法異構相對簡單,只要實現欄位到欄位、記錄到記錄的映射,解決其中的名字衝突和數據類型衝突。這種映射都很直接,比較容易實現。因此,語法異構無需關心數據的內容和含義,只要知道數據結構信息,完成源數據結構到目的數據結構之間的映射就可以了。
當數據集成要考慮數據的內容和含義時,就進入到語義異構的層次上。語義異構要比語法異構複雜的多,它往往是需要破壞欄位的原子性,即需要直接處理數據內容。常見的語義異構包括以下一些方式:欄位拆分、欄位合併、欄位數據格式變換、記錄間欄位轉移等。語法異構和語義異構的區別可以追溯到數據源建模時的差異:當數據源的實體關係模型相同,只是命名規則不同時,造成的只是數據源之間的語法異構;當數據源構建實體模型時,若採用不同的粒度劃分、不同的實體間關係以及不同的欄位數據語義表示,必然會造成數據源間的語義異構,給數據集成帶來很大麻煩。
事實上,現實中數據集成系統的語法異構現象是普遍存在的。上面提到的幾種語法異構屬於較為規則的語法異構,可以用特定的映射方法解決這些問題。還有一些不常見或不易被髮現的語法異構,例如數據源在構建時隱含了一些約束信息,在數據集成時,這些約束不易被髮現,往往會造成錯誤的產生。如某個數據項用來定義月份,隱含著其值只能在1~12之間,而集成時如果忽略了這一約束,很可能造成荒謬的結果。此外,複雜的關係模型也會造成很多語義異構現象。
數據集成的分類[2]
數據集成可以分為下述4個層次。
- 1.基本數據集成
基本數據集成面臨的問題很多。
通用標識符問題是數據集成時遇到的最難的問題之一。由於同一業務實體存在於多個系統源中,並且沒有明確的辦法確認這些實體是同一實體時,就會產生這類問題。處理該問題的辦法如下。
(1)隔離。保證實體的每次出現都指派一個唯一標識符。
(2)調和。確認哪些實體是相同的,並且將該實體的各次出現合併起來。
當目標元素有多個來源時,指定某一系統在衝突時占主導地位。
數據丟失問題是最常見的問題之一,一般解決的辦法是為丟失的數據產生一個非常接近實際的估計值來進行處理。
- 2.多級視圖集成
多級視圖機制有助於對數據源之間的關係進行集成:底層數據表示方式為局部模型的局部格式,如關係和文件;中間數據表示為公共模式格式,如擴展關係模型或對象模型;高級數據表示為綜合模型格式。
視圖的集成化過程為兩級映射:
(1)數據從局部資料庫中,經過數據翻譯、轉換並集成為符合公共模型格式的中間視圖。
(2)進行語義衝突消除、數據集成和數據導出處理,將中間視圖集成為綜合視圖。
- 3.模式集成
模型合併屬於資料庫設計問題,其設計的好壞常視設計者的經驗而定,在實際應用中很少有成熟的理論指導。
實際應用中,數據源的模式集成和資料庫設計仍有相當的差距,如模式集成時出現的命名、單位、結構和抽象層次等衝突問題,就無法照搬模式設計的經驗。
在眾多互操作系統中,模式集成的基本框架如屬性等價、關聯等價和類等價可最終歸於屬性等價。
- 4.多粒度數據集成
多粒度數據集成是異構數據集成中最難處理的問題,理想的多粒度數據集成模式是自動逐步抽象。
數據綜合(或數據抽象)指由高精度數據經過抽象形成精度較低、但是粒度較大的數據。其作用過程為從多個較高精度的局部數據中,獲得較低精度的全局數據。在這個過程中,要對各局域中的數據進行綜合,提取其主要特征。數據綜合集成的過程實際上是特征提取和歸併的過程。
數據細化指通過由一定精度的數據獲取精度較高的數據,實現該過程的主要途徑有:時空轉換,相關分析或者由綜合中數據變動的記錄進行恢復。數據集成是最終實現數據共用和輔助決策的基礎。
常見數據集成方法[1]
- 1.聯邦資料庫
聯邦資料庫是早期人們採用的一種模式集成方法。模式集成是人們最早採用的數據集成方法。其基本思想是,在構建集成系統時將各數據源的數據視圖集成為全局模式,使用戶能夠按照全局模式透明地訪問各數據源的數據。全局模式描述了數據源共用數據的結構、語義及操作等。用戶直接在全局模式的基礎上提交請求,由數據集成系統處理這些請求,轉換成各個數據源在本地數據視圖基礎上能夠執行的請求。模式集成方法的特點是直接為用戶提供透明的數據訪問方法。由於用戶使用的全局模式是虛擬的數據源視圖,一些學者也把模式集成方法稱為虛擬視圖集成方法。模式集成要解決兩個基本問題:構建全局模式與數據源數據視圖間的映射關係;處理用戶在全局模式基礎上的查詢請求。
模式集成過程需要將原來異構的數據模式作適當的轉換,消除數據源間的異構性,映射成全局模式。全局模式與數據源數據視圖問映射的構建方法有兩種:全局視圖法和局部視圖法。全局視圖法中的全局模式是在數據源數據視圖基礎上建立的,。它由一系列元素組成,每個元素對應一個數據源,表示相應數據源的數據結構和操作;局部視圖法先構建全局模式,數據源的數據視圖則是在全局模式基礎上定義,由全局模式按一定的規則推理得到。用戶在全局模式基礎上查詢請求需要被映射成各個數據源能夠執行的查詢請求。
在聯邦資料庫中,數據源之間共用自己的一部分數據模式,形成一個聯邦模式(見圖)。聯邦資料庫系統按集成度可分為兩類:採用緊密耦合聯邦資料庫系統和採用鬆散耦合聯邦資料庫系統。緊密耦合聯邦資料庫系統使用統一的全局模式,將各數據源的數據模式映射到全局數據模式上,解決了數據源間的異構性。這種方法集成度較高,用戶參與少;缺點是構建一個全局數據模式的演算法複雜,擴展性差。鬆散耦合聯邦資料庫系統比較特殊,沒有全局模式,採用聯邦模式。該方法提供統一的查詢語言,將很多異梅性問題交給用戶自己去解決。鬆散耦合方法對數據的集成度不高,但其數據源的自治性強、動態性能好,集成系統不需要維護一個全局模式。
- 2.中間件集成方法
中間件集成方法是目前比較流行的數據集成方法,中間件模式通過統一的全局數據模型來訪問異構的資料庫、遺留系統、Web資源等。中間件位於異構數據源系統(數據層)和應用程式(應用層)之間,向下協調各數據源系統,向上為訪問集成數據的應用提供統’一數據模式和數據訪問的通用介面。各數據源的應用仍然完成它們的任務,中間件系統則主要集中為異構數據源提供一個高層次檢索服務。它同樣使用全局數據模式,通過在中間層提供一個統一的數據邏輯視圖來隱藏底層的數據細節,使得用戶可以把集成數據源看為一個統一的整體。這種模型下的關鍵問題是如何構造這個邏輯視圖並使得不同數據源之間能映射到這個中間層。
G.Wiederhold最早給出了基於中間件的集成方法的構架。與聯邦資料庫不同,中間件系統不僅能夠集成結構化的數據源信息,還可以集成半結構化或非結構化數據源中的信息,如Web信息。美國斯坦福大學Garcia—Molina等人在1994年開發了TSIMMIS系統,就是一個典型的中間件集成系統。
典型的基於中間件的數據集成系統,如下圖所示,主要包括中間件和封裝器,其中每個數據源對應一個封裝器,中間件通過封裝器和各個數據源交互。用戶在全局數據模式的基礎上向中間件發出查詢請求。中間件處理用戶請求,將其轉換成各個數據源能夠處理的子查詢請求,並對此過程進行優化,以提高查詢處理的併發性,減少響應時間。封裝器對特定數據源進行了封裝,將其數據模型轉換為系統所採用的通用模型,並提供一致的訪問機制。中間件將各個子查詢請求發送給封裝器,由封裝器來和其封裝的數據源交互,執行子查詢請求,並將結果返回給中間件。
中間件註重於全局查詢的處理和優化,相對於聯邦資料庫系統的優勢在於:它能夠集成非資料庫形式的數據源,有很好的查詢性能,自治性強;中間件集成的缺點在於它通常是只讀的,而聯邦資料庫對讀寫都支持。
- 3.數據倉庫方法
數據倉庫方法是一種典型的數據複製方法。該方法將各個數據源的數據複製到同一處,即數據倉庫。用戶則像訪問普通資料庫一樣直接訪問數據倉庫,如圖所示。
數據倉庫是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源和決策需要而產生的。目前,大部分數據倉庫還是用關係資料庫管理系統來管理的,但它決不是所謂的“大型資料庫”。數據倉庫方案建設的目的,是將前端查詢和分析作為基礎,由於有較大的冗餘,所以需要的存儲容量也較大。數據倉庫是一個環境,而不是一件產品,提供用戶用於決策支持的當前和歷史數據,這些數據在傳統的操作型資料庫中很難或不能得到。
數據倉庫技術是為了有效地把操作型數據集成到統一的環境中以提供決策型數據訪問的各種技術和模塊的總稱。所做的一切都是為了讓用戶更快、更方便地查詢所需要的信息,提供決策支持。
簡而言之,從內容和設計的原則來講,傳統的操作型資料庫是面向事務設計的,資料庫中通常存儲線上交易數據,設計時儘量避免冗餘,一般採用符合範式的規則來設計。而數據倉庫是面向主題設計的,數據倉庫中存儲的一般是歷史數據,在設計時有意引入冗餘,採用反範式的方式來設計。
另一方面,從設計的目的來講,資料庫是為捕獲數據而設計,而數據倉庫是為分析數據而設計,它的兩個基本的元素是維表和事實表。維是看問題的角度,例如時間、部門,維表中存放的就是這些角度的定義;事實表裡放著要查詢的數據,同時有維的ID。
數據集成對於企業信息系統的作用
數據集成的出現使企業能夠將後端的ERP信息遷移到Internet上。數據集成產品在一個公司的Internet電腦與SAP、Oracle和PeopleSoft等公司的後端系統之間提供“高速緩存”或數據分級。
數據集成提供了在一個企業主電腦上存儲的後端信息的一幅鏡像。當一個Internet客戶需要檢查一項訂單的狀態時,這項查詢就被轉移到數據集成軟體。因此,並非總需要訪問該企業的主電腦。數據集成軟體擁有足夠的智能,知道什麼時候與主電腦保持同步以便使數據不斷更新。為電子商務應用集成ERP數據是通過數據分級和直接訪問ERP數據這兩者的結合來完成的,它包括使用一個數據伺服器和一些數據高速緩存器。數據集成軟體以智能方式將直接實時的和分批的數據存取方法混和起來,以便從一個ERP系統中抽取數據。
數據從一個或多個源前進到一個或多個目標表以及信息類型(如XML),數據移動的步驟包括確定應該從中抽取數據的源、數據應當進行的轉換以及向什麼地方發送數據。用戶通過一個圖形用戶介面來指定數據映射和轉換。
由用戶定義的程式控制每一塊數據的移動並確定這種移動之間的內部相關性。例如,如果一個目標表依靠其他目標表的值,則使用一些程式來指定一個數據伺服器應當按什麼次序來管理這些目標表中的單個數據移動。數據移動可以被設計來以批量方式或實時方式運行,並由管理員來創建和管理,以控制ERP、電子商務、客戶關係管理、供應鏈管理以及通信應用之間的數據移動。數據移動使用分散式查詢優化、多線程、存儲器內數據轉換和並行流水線操作來提供很高的數據通過量和可伸縮性。例如,要管理抽取程式並從SAP軟體中來執行批量數據抽取,可使用優化的ABAP代碼(SAP的專有編程語言),不需要開發和維護定製的ABAP代碼。