數據虛擬化

數據虛擬化

數據虛擬化(data virtualization)是用來描述所有數據管理方法的涵蓋性術語,這些方法允許應用程式檢索並管理數據,且不需要數據相關的技術細節。

基本介紹

  • 中文名:數據虛擬化
  • 外文名:data virtualization
  • 定義:描述所有數據管理方法的術語
  • 數據虛擬案例:HealthNow公司
  • 用途:允許應用程式檢索並管理數據
定義,系統架構,套用層,數據虛擬化層,源數據層,研究問題,相關軟體,最佳實踐,案例,

定義

數據虛擬化(Data virtualization)– 數據整合的過程,以此獲得更多的數據信息,這個過程通常會引入其他技術,例如資料庫應用程式,檔案系統,網頁技術,大數據技術等等。
數據虛擬化概念圖如圖所示。
數據虛擬化
數據虛擬化(data virtualization)是用來描述所有數據管理方法的涵蓋性術語,這些方法允許應用程式檢索並管理數據,且不需要數據相關的技術細節,例如它格式化的方式或物理位置所在。
如果你在Facebook之類的社交網站存儲照片,你也許會對數據虛擬化(data virtualization)的概念很熟悉。當你從桌面電腦上傳照片到Facebook時,你必須告訴上傳工具這些照片的位置信息—照片的檔案路徑。但是一旦它們已經上傳到Facebook,你不需要知道新的檔案路徑就能檢索該照片。事實上,你絕對不會知道Facebook將你的照片存放在哪裡,因為Facebook軟體有一個抽象層來隱藏技術性信息。這個抽象層對於某些廠商來說,就是他們口中的數據虛擬化所指。
數據虛擬化(data virtualization)這個詞可能有點令人困惑,因為有些廠商互換地使用數據虛擬化和數據聯合(data federation)。但是兩者之間確實有些許不同。數據聯合技術的目的是從不同來源收集異構(heterogeneous)數據並以單點訪問的方式來訪問它。然而數據虛擬化一詞僅僅代表有關數據的技術性信息已經隱藏了。嚴格說來,這並不意味著數據是異構的或者可以通過單點訪問查看。

系統架構

從用戶套用的角度出發,我們認為數據虛擬化系統架構應該包含3層:套用層、數據虛擬化層和源數據層。其中,數據虛擬化層包括數據虛擬化平面和管理平面,二者相互結合執行全方位的查詢、處理、集成和管理功能。數據虛擬化系統架構如圖所示。
數據虛擬化

套用層

套用層主要是面向前端各種各樣的數據查詢訪問套用,將用戶的查詢請求傳遞到數據虛擬化層。系統為數據消費者的查詢請求提供多種訪問接口,用於訪問數據虛擬化系統,如某些數據消費者可以用JDBC/SQL接口訪問,另一些數據消費者可以採用MDX(multi-dimensionalexpressions)接口或基於SOAP(simple object access protocol)接口訪問相同的數據服務,對數據消費者而言可以根據自己確定的訪問方式發起查詢請求。

數據虛擬化層

數據虛擬化層是整個數據虛擬化系統的核心,包括2個平面:數據虛擬化平面和管理平面。其中,數據虛擬化平面包含4個層次的內容,完成數據的抽象、元數據建模、數據源映射、查詢驅動與回響等功能;管理平面進行系統配置、管理、監測、安全、數據檢查與維護等工作。下面對數據虛擬化平面及管理平面分別進行介紹。
數據虛擬化平面
  1. 查詢回響層。該層針對用戶的查詢需求,主要任務是制定最佳的查詢處理策略和性能最佳化措施。其中處理策略是數據虛擬化系統根據用戶查詢請求對目標數據的訪問方式給出執行方案與流程;最佳化器是系統確定數據訪問方式之後,對查詢過程作出最佳化以提高查詢效率。
  2. 數據服務層。數據虛擬化系統面向用戶會創建各種數據服務。數據服務的最常用對象是數據視圖或虛擬表。整體上看,數據虛擬化系統中會定義2種類型的表:即虛擬表和數據封裝表。由於不同的數據源所有者會開放全部或部分的數據給虛擬化系統,這些開放數據可能是原始數據,更多的是加工後的數據。封裝表對應於不同的數據源,實現對開放源數據的接口封裝,並作為這些數據源的代理供虛擬化系統調用。在數據服務層進行數據視圖/虛擬表的定義、認證和授權;數據服務的封裝、發布與組合。視圖/虛擬表的定義是建立在封裝表或其他虛擬表之上,虛擬表之間可以進行組合與嵌套,虛擬表在定義之後可以作為一種數據服務發布出去。數據服務更多關注數據資源的獲取與集成方式,而虛擬表的定義關注的是數據本身,因此數據虛擬化系統可以以虛擬表的方式呈現數據服務所需的底層數據。
  3. 元數據組織層。數據虛擬化系統不會存儲數據源的物理數據,但是針對不同的數據源開放數據,需要對開放數據源的元數據進行組織存儲與管理,並面向數據服務層作為其定義數據視圖或虛擬表的基礎。針對用戶的查詢請求,高性能的元數據組織、存儲與快速查找是保證用戶獲取所需數據資源的關鍵。該層主要包括2個方面的內容:元數據的抽取、存儲與元數據組織模型。
  4. 數據映射層。數據映射層實現虛擬表到數據源的映射,從而保證數據虛擬化平台向數據消費者交付正確的數據。在此應該理清虛擬表、映射與封裝表三者之間的關係。虛擬表是建立在封裝表基礎之上,而封裝表是以數據源為基礎的。封裝表與數據源之間是多對一的關係,根據一個數據源可以定義一個或多個封裝表。定義虛擬表的過程也是定義映射的過程,在封裝表基礎上定義虛擬表。映射對於虛擬表而言相當於查詢定義,包含虛擬表的結構(行、列選擇;列轉換;表名稱改變;分組等)、數據如何被轉換為虛擬表的內容等。如果沒有映射,虛擬表就是一個沒有內容的空表。因此,要保證正確的映射,必須正確分析封裝表中數據間關係,保證從數據源到封裝表再到虛擬表的定義是準確的。數據虛擬化系統中也允許少量虛擬表在起初不定義映射,它們是從數據消費者角度來定義的(自頂向下),因此定義時只關心數據消費需求而不考慮數據源表中數據類型、列間關係等,但是在後期必需執行映射的再定義。
總結來說,當用戶發起一個查詢請求,查詢引擎確定查詢策略並進行查詢結果計算、最佳化及結果回響。若數據服務層沒有預先定義該查詢對應的虛擬表,則元數據組織層需根據系統存儲的元數據信息對查詢所需的相關元數據進行組織,生成對應的臨時虛擬表。數據映射層實施相應虛擬表與封裝表的映射,進而訪問底層數據源。
管理平面
管理平面的目標是通過配置、監測、管理控制等手段支撐整個虛擬化系統的安全、可靠、高效運行。通過對數據虛擬化系統的配置,完成生產、備份、故障切換等任務。數據虛擬化平台中的整合管理工具支持軟體供應,對源數據訪問的授權,與LDAP(light weight directory access protocol)的整合以及其他安全工具等。系統管理工具管理伺服器會話、數據服務、元數據等。
針對數據虛擬化平面的4個層次,管理平面也要完成對應的管理功能。對於數據映射層而言,要實現每個套用所需數據的映射,管理層必須實現對封裝表、源數據、源數據間關係的管理;在元數據組織層,管理環境要實施對元數據的清洗、一致性檢測等任務,保證元數據快取的高效性;在數據服務層,管理環境要完成對虛擬表或數據服務組合、更新過程的維護等,部署管理器完成對數據服務的擴展部署,確保其持續可用;針對查詢回響層,控制器、監測器、管理器等共同作用保證整個查詢過程的正確實施。

源數據層

源數據層針對各個數據所有者提供的多源異構數據源進行統一的接口管理,實現數據虛擬化系統中各種不同數據源的訪問細節對用戶進行禁止。通過ODBC/JDBC,JSON,API等接口,實現源數據的獲取和傳輸,最終完成用戶所需數據資源的交付。
特別注意:源數據層只是對各種物理數據源的訪問接口管理,並不需要了解具體的物理源數據的組織、存儲及管理方式;物理數據源由所有者管理,並根據自身策略來開放全部或部分源數據的視圖給數據虛擬化系統。

研究問題

一個完整的數據虛擬化系統應具備創建視圖/虛擬表、提供數據服務、最佳化聯合查詢、數據快取、以及細粒度的安全性等能力,使用戶在不同數據源中發現數據、檢索與訪問數據。雖然數據虛擬化會在很大程度上能夠提高數據集成的靈活性和敏捷性,如用戶通過單一接入點訪問不同數據源的數據、數據服務面向所有的數據消費者、避免數據物理轉移、提高數據使用率等,但是仍然存在一些問題與挑戰需要研究解決。
異構數據源的集成
不同數據源的數據可能採用不同結構的數據,包括結構化、半結構化與混合結構數據。如有的數據集採用關係數據模式,有的採用HTML/XML檔案,有的採用日誌格式檔案等。這些異構的數據源是數據統一集成中必然存在的巨大挑戰。一些研究者從不同角度出發進行研究,例如,改進和擴展查詢語言,將查詢請求劃分為多個子查詢,基於語義相似性對元數據融合等。數據虛擬化面向的是多種不同套用,若對每類套用的查詢,分別最佳化其查詢語言則會影響整個數據虛擬化平台的效率,因此數據虛擬化平台提供多種訪問接口對來自不同數據源的數據進行統一存取或訪問。例如,對於關係資料庫SQLServer,Oracle,Access,Excel等利用ODBC接口通過SQL語言訪問;對於web應用程式則可以用REST或JSON接口等,以便禁止數據源數據模型的異構性,提供對數據的統一訪問。解決數據源的異構性是保證數據服務的基礎,但是由於數據源的多樣性及複雜性,可能需要開發和改善更多種訪問接口,所以對於數據源的異構性問題不容小覷。
大數據技術的創新及DaaS模式的發展不僅促進了數據服務的潮流還推動了組合數據服務的研究,即多個基本數據服務通過關聯可以組合成滿足業務需求的複合數據服務。針對DaaS組合服務中存在的數據結構的不兼容、數據隱私問題進行了研究,並提出了相應的解決方法。數據虛擬化系統同樣支持數據服務間的組合,在組合過程中,由於不同數據服務中數據屬性、數據隱私程度、數據結構等的不同,也存在數據結構的不兼容、數據質量下降、數據訪問許可權差異等問題,目前數據虛擬化方案對這方面的研究較少,大都是用戶在利用相應的分析組合工具進行處理,這增加了用戶的負擔。由於數據虛擬化系統創建的主要對象是數據服務,未來的研究中可以將數據虛擬化系統與DaaS模式融合,將數據虛擬化系統創建的數據服務作為基本服務,通過DaaS將基本數據服務模式進行合併、刪除、排序、數據結構調整等,組合成新的數據服務,在減少用戶操作的同時保證組合數據服務的質量。另外,對於非關係資料庫,非結構化的數據內容而言,如何創建數據服務,能否以虛擬表的形式呈現各種底層數據源的查詢,這也是創建數據服務中的一個重要問題。為了保證數據服務的持續可用,數據虛擬化系統需要對虛擬表進行更新,涉及到虛擬表如何根據底層數據源的變化進行自動即時更新。針對數據服務生成的虛擬表,如何保證更新的一致性及效率問題都是需要研究的重要問題。
查詢最佳化
查詢最佳化的目標是提高用戶獲取所需數據資源的效率,也是數據虛擬化系統中的關鍵問題。一些研究利用中間件思想,將查詢最佳化建立在數據模型基礎上。通過對數據的分析挖掘提取出能夠表示數據屬性、數據間關係的最少元數據,通過訪問元數據縮小數據的查詢範圍從而減少查詢回響時間,最佳化查詢,這也從另一個角度說明了元數據的質量及組織模型的重要性。也有一些研究通過最佳化查詢系統的性能,提高查詢效率,如文獻通過在存儲系統中加入一組豐富的硬體加速引擎來提高對存儲數據的並行處理能力。一些企業如Cisco,Composite利用基於規則或成本的最佳化器對每個查詢請求制定最佳查詢方案,並利用掃描多路技術、約束傳播技術、並行處理技術等最佳化網路資源和資料庫,從而保證目標數據及時快捷地交付。目前數據虛擬化系統常用的一些查詢最佳化技術有Querysubstitution,SQLpushdown,Parallelprocessing,Distributedjoins,Shipjoins,SQLoverride等。這些技術針對不同的套用場景,在某些方面也存在一定的限制,如Querysubstitution主要套用於嵌套虛擬表的查詢;SQLpushdown不能用於底層數據源為序列檔案或XMLWeb服務;Shipjoins一般用於合併2個不同的數據源。由於套用的多樣性,沒有一種查詢策略能夠適用於所有的套用場景。此外在提高查詢效率方面,除了套用這些最佳化技術,對於一些特定的查詢套用,有時需要將查詢請求轉化為另一種查詢語言。從另外一個角度來看,套用快取技術對於提高系統查詢性能有極大的裨益。數據虛擬化系統通過提供靈活可擴展的快取機制,針對底層數據源進行相關數據的快取,對於查詢而言,可以從快取中查找數據,加速查詢並減小底層數據源的查詢負載。此外,為了保證快取數據的一致性和新鮮度,還必須根據底層數據的變化即時更新快取,這會涉及到數據一致性、更新效率問題。
系統擴展性
數據虛擬化系統作為一種平台,新的數據源、套用請求、數據結構等會持續加入,系統必須具備良好的擴展性。新的數據所有者會開放數據源並註冊到系統平台,原有的開放數據源也會全部或部分註銷,這樣會引起系統內的元數據組織、虛擬表定義、數據映射、數據快取等等面臨重構問題,系統必須具備線上添加、修改、更新能力,如何提高系統的擴展性與伸縮性是一個重要問題。由於用戶的套用查詢需求是無法預測的,要保證數據查詢的性能,尤其是在處理一些大容量數據時,必須考慮到系統規模擴展後帶來的性能挑戰。在設計與開發數據虛擬化系統的早期階段,就需注意考慮數據查詢處理過程的性能與相關解決方案的可擴展性,以提高數據虛擬化系統的擴展性及查詢性能。另外,在數據源不斷地更新與數據消費者訪問規模增長的情況下,如何確保數據源、封裝表與虛擬表的同步性、數據一致性,並保證所有數據消費者的QoE體驗,這也是數據虛擬化系統需要考慮的重要課題。
數據安全
數據安全包括數據的認證、授權和加密,認證和授權主要是針對用戶而言的,而加密則是從數據本身考慮的,數據只有在安全的基礎上實現有效的共享才會產生更大的價值。數據虛擬化系統針對不同套用的相同數據服務實行不同的認證和授權機制,這一特性對數據安全又有新的要求,如查詢與數據源間的安全通信、跨平台/跨系統訪問的數據安全等。當用戶進行數據請求訪問時,數據虛擬化系統會對用戶憑證(如用戶ID、密碼等)進行檢測。不同的用戶即便是對相同的數據元素的訪問許可權也是不同的,如對於一個虛擬表,有些用戶可能只具有該表部分內容的訪問許可權。需特別注意的是數據虛擬化系統只執行數據消費者許可權的檢測,確定用戶對數據的訪問權利,而源數據訪問的授權工作則是由底層數據源的所有者決定的,二者的訪問許可權必須區分開。有些底層數據源有自己的安全訪問機制,對數據消費者而言,要實施對源數據的訪問需要具備虛擬表與底層數據源的兩層訪問許可權;也有一些底層數據存儲沒有定義安全機制,對上層數據訪問是完全公開的,用戶只執行虛擬表的訪問許可權。因此,用戶憑證的安全保存機制、合適的授權機制、安全認證性能等都是需要考慮的問題。針對數據服務訪問許可權的定義也在一定程度上限制了用戶查詢數據的範圍,因此在定義數據服務時也需要考慮相應的安全機制。但是從另外一方面來說,過於複雜的安全機制也會影響虛擬化系統在查詢、處理數據時的性能。因此在設計數據服務時如何進行安全與性能的折衷將是一個挑戰。
系統管理
數據虛擬化系統實質上也是一個數據共享的平台,它以一種更簡單敏捷的架構提供數據服務,也必需提供對整個數據虛擬化環境的良好管理,解決由誰負責共享的基礎架構,誰負責共享的數據服務等問題。數據虛擬化管理平面需要多種系統管理工具,對系統運行過程實施管理、監控,如監測查詢的數量、查詢性能、系統的可用性、快取的使用、快取更新的速率等,這些都是需要考慮的問題。

相關軟體

什麼是數據虛擬化軟體?
數據虛擬化技術會建立中間件,或者服務,IT架構層中數據可以從不同來源被聚集、查看並分析。該技術希望從傳統集成方法(比如ETL還有資料庫整合)中節省時間和費用,因為實際數據從未被從源系統中物理移動。
但是Myers認為Informatica的數據服務在某些領域也有待提升。首先,他希望看到隨著時間推移軟體變得更加用戶友好。那樣HealthNow公司業務分析師們就更容易映射數據源並依據從虛擬數據集市中揀選的信息創建簡單報表。
Myers還希望Informatica與來自競爭對手的企業服務匯流排(ESB)技術能無縫連線操作。ESB技術是面向服務架構的支柱,它對服務提供一致的視圖並隱藏了底層應用程式的複雜性。
Myers說:“你要能與訊息佇列互動。我知道Informatica已經在做一些佇列功能,但是IBMMQ在ESB領域份額占據較大,另外還有其它競爭對手也在做。我不認為這是Informatica應該努力競爭的地方。我認為這會沖淡他們其它方面的工作成果。”

最佳實踐

1.將數據虛擬化方面的責任集中起來。這么做的一個主要優點就是,能夠迅速推動這項工作,並且著手處理更宏大的概念,比如定義通用規範和實施智慧型存儲組件。
2.約定和實施一種通用數據模型。這將確保一致性、高質量的數據,讓業務用戶對於數據更有信心,並且提高IT工作人員的靈活性和生產力。
3.確定一種治理方法。這需要考慮到如何管理數據虛擬化環境。關鍵問題是誰負責共享的基礎架構,誰負責共享的服務。
4.對業務用戶進行教育,讓他們認識到數據虛擬化的優點。抽出時間與業務用戶進行交流,確保他們明白數據。日常多開展工作,讓數據虛擬化能夠為企業的其餘部門所接受。
5.注意性能調整和可擴展性。在開發過程的早期階段,就要調整性能、測試解決方案的可擴展性。要考慮引入大規模並行處理功能,以便處理大容量數據方面的查詢性能。要兼顧這個事實:用戶在專門查詢和報告方面是無法預測的。
6.分階段實施數據虛擬化。先對數據源進行抽象處理,然後將商業智慧型應用程式放到上面,最後逐步實施數據虛擬化的更高級的聯合功能。

案例

HealthNow公司是藍盾保險供應商,支撐紐約州西部大約80萬會員。該公司擁有約2500名員工,其中包括一個30人組成的超級數據管理團隊。
HealthNow公司的IT部門主要運行IBM的DB2,微軟公司SQL Server和Sybase資料庫管理軟體。該公司還運行IBM的Cognos商業智慧型(BI)和TriZetto的Facets健康計畫管理軟體
Myers說:“三年前的這個時候我加入了HealthNow公司,那時公司還在使用傳統的ETL,沒有做數據服務的概念。說實話,那時候沒有SOA架構,也沒有參考架構。”
所有這些在大約一年半之前開始改變了,那時Myers和他的團隊開始評估數據聯邦和數據虛擬化技術,顯著成果之一就是他們比過去能更快地提取可用信息給業務分析師。
當時,Informatica還在零售Composite軟體,這是原始設備製造商協定的一部分,剛剛自助開發了Informatica數據服務產品。Myers說,Informatica數據服務的路線圖看起來前途無量,但是決定因素主要與Informatica公司使用數據質量規則的能力有關係。
Myers說:“Informatica告訴我們,我們不只可以聯合數據,我們還可以附送質量規則。我們可以配置數據和那些規則,使他們正確映射。開發人員可以編寫虛擬的數據模型映射。他們可以在每一步中看到和配置數據。”
使HealthNow公司的Informatica勝過IBM和Composite的另一個重要因素集中在公司提供質量維護和支持的能力上。HealthNow公司與Informatica談判協定規定,所有的服務調用都要直接讓大家知道。
這家保險公司大約一年前使用了Informatica數據服務,Myers說該軟體的主要益處可以用一個關鍵字來描述:速度。
該公司現在有能力創建“虛擬化數據集市”,從不同的數據源提取數據,它可以很容易被業務用戶訪問到。Myers說,創建數據集市的過程可能只需要花兩天時間。而在過去,為業務分析師整理數據可能需要幾個月時間才能完成。
HealthNow公司面臨數據虛擬化挑戰
Forrester研究機構最近的一份研究報告指出,數據虛擬化軟體包常常遭到終端用戶組織的質疑,他們關注如何確保敏感信息的安全。
但是安全還不是HealthNow公司面臨的主要問題,這要感謝該公司高度強健的IT架構。該公司在Informatica數據服務的前面運行著IBM的WebSphere DataPower套用,它給系統提供了一層安全保護。
Myers說:“能真正接觸到數據服務層的人是其他套用開發人員。而且如果我們讓終端用戶通過Cognos接觸它,我們就在其上擁有了Cognos安全層。”
對Myers來說,更大的挑戰是說服HealthNow公司的數據集成團隊,讓他們相信Informatica數據服務是一套穩定的環境。Myers通過執行一些小的數據虛擬化項目並產生實效克服了這一障礙。
他說:“這表明環境是穩定的,也表明數據服務是可重用組件,事實證明它可以給業務方面提交正確的數據。這些組件可以被在延續業務線的許多新項目中重用。”
Myers說,儘管HealthNow公司在數據虛擬化方面的經驗不足帶來了一些小問題,Informatica數據服務實施也基本沒什麼痛苦。該公司在兩個月內已經安裝配置了該系統,並通過了概念測試驗證。
Myers說:“你當然可以做的更快。但是我認為,與任何具備良好架構的團隊一樣,我們花了很多時間先要評估某種技術的最佳用法和我們向要發展的方向。”

相關詞條

熱門詞條

聯絡我們