工具應用
目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS、Beeload、Kettle……
開源的工具有eclipse的etl插件。cloveretl.
數據集成:快速實現ETL
ETL的質量問題具體表現為正确性、完整性、一緻性、完備性、有效性、時效性和可獲取性等幾個特性。而影響質量問題的原因有很多,由系統集成和曆史數據造成的原因主要包括:業務系統不同時期系統之間數據模型不一緻;業務系統不同時期業務過程有變化;舊系統模塊在運營、人事、财務、辦公系統等相關信息的不一緻;遺留系統和新業務、管理系統數據集成不完備帶來的不一緻性。
實現ETL,首先要實現ETL轉換的過程。它可以集中地體現為以下幾個方面:
1、空值處理:可捕獲字段空值,進行加載或替換為其他含義數據,并可根據字段空值實現分流加載到不同目标庫。
2、規範化數據格式:可實現字段格式約束定義,對于數據源中時間、數值、字符等數據,可自定義加載格式。
3、拆分數據:依據業務需求對字段可進行分解。例,主叫号861082585313-8148,可進行區域碼和電話号碼分解。
4、驗證數據正确性:可利用Lookup及拆分功能進行數據驗證。例如,主叫号861082585313-8148,進行區域碼和電話号碼分解後,可利用Lookup返回主叫網關或交換機記載的主叫地區,進行數據驗證。
5、數據替換:對于因業務因素,可實現無效數據、缺失數據的替換。
6、Lookup:查獲丢失數據Lookup實現子查詢,并返回用其他手段獲取的缺失字段,保證字段完整性。
7、建立ETL過程的主外鍵約束:對無依賴性的非法數據,可替換或導出到錯誤數據文件中,保證主鍵唯一記錄的加載。
注意事項
為了能更好地實現ETL,筆者建議用戶在實施ETL過程中應注意以下幾點:
第一,如果條件允許,可利用數據中轉區對運營數據進行預處理,保證集成與加載的高效性;
第二,如果ETL的過程是主動“拉取”,而不是從内部“推送”,其可控性将大為增強;
第三,ETL之前應制定流程化的配置管理和标準協議;
第四,關鍵數據标準至關重要。目前,ETL面臨的最大挑戰是當接收數據時其各源數據的異構性和低質量。以電信為例,A系統按照統計代碼管理數據,B系統按照賬目數字管理,C系統按照語音ID管理。當ETL需要對這三個系統進行集成以獲得對客戶的全面視角時,這一過程需要複雜的匹配規則、名稱/地址正常化與标準化。而ETL在處理過程中會定義一個關鍵數據标準,并在此基礎上,制定相應的數據接口标準。
特色功能
ETL過程在很大程度上受企業對源數據的理解程度的影響,也就是說從業務的角度看數據集成非常重要。一個優秀的ETL設計應該具有如下功能:
管理簡單
采用元數據方法,集中進行管理;接口、數據格式、傳輸有嚴格的規範;盡量不在外部數據源安裝軟件;數據抽取系統流程自動化,并有自動調度功能;抽取的數據及時、準确、完整;可以提供同各種數據系統的接口,系統适應性強;提供軟件框架系統,系統功能改變時,應用程序很少改變便可适應變化;可擴展性強。
标準定義數據
合理的業務模型設計對ETL至關重要。數據倉庫是企業唯一、真實、可靠的綜合數據平台。數據倉庫的設計建模一般都依照三範式、星型模型、雪花模型,無論哪種設計思想,都應該最大化地涵蓋關鍵業務數據,把運營環境中雜亂無序的數據結構統一成為合理的、關聯的、分析型的新結構,而ETL則會依照模型的定義去提取數據源,進行轉換、清洗,并最終加載到目标數據倉庫中。
模型的重要之處在于對數據做标準化定義,實現統一的編碼、統一的分類和組織。标準化定義的内容包括:标準代碼統一、業務術語統一。ETL依照模型進行初始加載、增量加載、緩慢增長維、慢速變化維、事實表加載等數據集成,并根據業務需求制定相應的加載策略、刷新策略、彙總策略、維護策略。
拓展新型應用
對業務數據本身及其運行環境的描述與定義的數據,稱之為元數據(metadata)。元數據是描述數據的數據。從某種意義上說,業務數據主要用于支持業務系統應用的數據,而元數據則是企業信息門戶、客戶關系管理、數據倉庫、決策支持和B2B等新型應用所不可或缺的内容。
元數據的典型表現為對象的描述,即對數據庫、表、列、列屬性(類型、格式、約束等)以及主鍵/外部鍵關聯等等的描述。特别是現行應用的異構性與分布性越來越普遍的情況下,統一的元數據就愈發重要了。“信息孤島”曾經是很多企業對其應用現狀的一種抱怨和概括,而合理的元數據則會有效地描繪出信息的關聯性。
而元數據對于ETL的集中表現為:定義數據源的位置及數據源的屬性、确定從源數據到目标數據的對應規則、确定相關的業務邏輯、在數據實際加載前的其他必要的準備工作,等等,它一般貫穿整個數據倉庫項目,而ETL的所有過程必須最大化地參照元數據,這樣才能快速實現ETL。
體系結構
下圖為ETL體系結構,它體現了主流ETL産品框架的主要組成部分。ETL是指從源系統中提取數據,轉換數據為一個标準的格式,并加載數據到目标數據存儲區,通常是數據倉庫。
ETL體系結構圖
Design manager提供一個圖形化的映射環境,讓開發者定義從源到目标的映射關系、轉換、處理流程。設計過程的各對象的邏輯定義存儲在一個元數據資料庫中。
Meta data management提供一個關于ETL設計和運行處理等相關定義、管理信息的元數據資料庫。ETL引擎在運行時和其它應用都可參考此資料庫中的元數據。
Extract通過接口提取源數據,例如鳚ODBC、專用數據庫接口和平面文件提取器,并參照元數據來決定數據的提取及其提取方式。
Transform開發者将提取的數據,按照業務需要轉換為目标數據結構,并實現彙總。
Load加載經轉換和彙總的數據到目标數據倉庫中,可實現SQL或批量加載。
Transport services利用網絡協議或文件協議,在源和目标系統之間移動數據,利用内存在ETL處理的各組件中移動數據。
Administration and operation可讓管理員基于事件和時間進行調度、運行、監測ETL作業、管理錯誤信息、從失敗中恢複和調節從源系統的輸出。