etl[數據倉庫技術]

etl[數據倉庫技術]
etl[數據倉庫技術]
更多義項 ▼ 收起列表 ▲

ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、互動轉換(transform)、載入(load)至目的端的過程。ETL一詞較常用在數據倉庫,但其對象並不限於數據倉庫。 ETL是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據載入到數據倉庫中去。 信息是現代企業的重要資源,是企業運用科學管理、決策分析的基礎。目前,大多數企業花費大量的資金和時間來構建在線上事務處理OLTP的業務系統和辦公自動化系統,用來記錄事務處理的各種相關數據。據統計,數據量每2~3年時間就會成倍增長,這些數據蘊含著巨大的商業價值,而企業所關注的通常只占在總數據量的2%~4%左右。因此,企業仍然沒有最大化地利用已存在的數據資源,以至於浪費了更多的時間和資金,也失去制定關鍵商業決策的最佳契機。於是,企業如何通過各種技術手段,並把數據轉換為信息、知識,已經成了提高其核心競爭力的主要瓶頸。而ETL則是主要的一個技術手段。

基本信息

工具套用

ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS、Beeload、Kettle等等……

開源的工具有eclipse的etl外掛程式:cloveretl

ETL的質量問題具體表現為正確性、完整性、一致性、完備性、有效性、時效性和可獲取性等幾個特性。而影響質量問題的原因有很多,由系統集成和歷史數據造成的原因主要包括:業務系統不同時期系統之間數據模型不一致;業務系統不同時期業務過程有變化;舊系統模組在運營、人事、財務、辦公系統等相關信息的不一致;遺留系統和新業務、管理系統數據集成不完備帶來的不一致性。

實現ETL,首先要實現ETL轉換的過程。體現為以下幾個方面:

1、空值處理:可捕獲欄位空值,進行載入或替換為其他含義數據,並可根據欄位空值實現分流載入到不同目標庫。

2、規範化數據格式:可實現欄位格式約束定義,對於數據源中時間、數值、字元等數據,可自定義載入格式。

3、拆分數據:依據業務需求對欄位可進行分解。例,主叫號 861082585313-8148,可進行區域碼和電話號碼分解。

4、驗證數據正確性:可利用Lookup及拆分功能進行數據驗證。例如,主叫號861082585313-8148,進行區域碼和電話號碼分解後,可利用Lookup返回主叫網關或交換機記載的主叫地區,進行數據驗證。

5、數據替換:對於因業務因素,可實現無效數據、缺失數據的替換。

6、Lookup:查獲丟失數據 Lookup實現子查詢,並返回用其他手段獲取的缺失欄位,保證欄位完整性。

7、建立ETL過程的主外鍵約束:對無依賴性的非法數據,可替換或導出到錯誤數據檔案中,保證主鍵唯一記錄的載入。

體系結構

ETL工具目前有兩種技術架構——ETL架構和ELT架構,不仔細看好像沒什麼不同之處,那么這兩種架構到底有什麼區別呢?

ETL架構

etl[數據倉庫技術] etl[數據倉庫技術]

在ETL架構中,數據的流向是從源數據流到ETL工具,ETL工具是一個單獨的數據處理引擎,一般會在單獨的硬體伺服器上,實現所有數據轉化的工作,然後將數據載入到目標數據倉庫中,如果要增加整個ETL過程的效率,則只能增強ETL工具伺服器的配置,最佳化系統處理流程(一般可調的東西非常少)。IBM的datastage和Informatica的powercenter原來都是採用的這種架構。

ETL架構的優勢:

ETL可以分擔資料庫系統的負載(採用單獨的硬體伺服器)

ETL相對於EL-T架構可以實現更為複雜的數據轉化邏輯

ETL採用單獨的硬體伺服器。.

ETL與底層的資料庫數據存儲無關。

1.

ETL可以分擔資料庫系統的負載(採用單獨的硬體伺服器)

2.

ETL相對於EL-T架構可以實現更為複雜的數據轉化邏輯

3.

ETL採用單獨的硬體伺服器。.

4.

ETL與底層的資料庫數據存儲無關。

ELT架構

etl[數據倉庫技術] etl[數據倉庫技術]

在ELT架構中,ELT只負責提供圖形化的界面來設計業務規則,數據的整個加工過程都在目標和源的資料庫之間流動,ELT協調相關的資料庫系統來執行相關的套用,數據加工過程既可以在源資料庫端執行,也可以在目標數據倉庫端執行(主要取決於系統的架構設計和數據屬性)。當ELT過程需要提高效率,則可以通過對相關資料庫進行調優,或者改變執行加工的伺服器就可以達到。一般資料庫廠商會力推該種架構,像Oracle和Teradata都極力宣傳ELT架構。

ELT架構的優勢:

ELT主要通過資料庫引擎來實現系統的可擴展性(尤其是當數據加工過程在晚上時,可以充分利用資料庫引擎的資源)

ELT可以保持所有的數據始終在資料庫當中,避免數據的載入和導出,從而保證效率,提高系統的可監控性。

ELT可以根據數據的分布情況進行並行處理最佳化,並可以利用資料庫的固有功能最佳化磁碟I/O。

ELT的可擴展性取決於資料庫引擎和其硬體伺服器的可擴展性。

通過對相關資料庫進行性能調優,ETL過程獲得3到4倍的效率提升一般不是特別困難。

1.

ELT主要通過資料庫引擎來實現系統的可擴展性(尤其是當數據加工過程在晚上時,可以充分利用資料庫引擎的資源)

2.

ELT可以保持所有的數據始終在資料庫當中,避免數據的載入和導出,從而保證效率,提高系統的可監控性。

3.

ELT可以根據數據的分布情況進行並行處理最佳化,並可以利用資料庫的固有功能最佳化磁碟I/O。

4.

ELT的可擴展性取決於資料庫引擎和其硬體伺服器的可擴展性。

5.

通過對相關資料庫進行性能調優,ETL過程獲得3到4倍的效率提升一般不是特別困難。

注意事項

為了能更好地實現ETL,用戶在實施ETL過程中應注意以下幾點:

第一,如果條件允許,可利用數據中轉區對運營數據進行預處理,保證集成與載入的高效性;

第二,如果ETL的過程是主動“拉取”,而不是從內部“推送”,其可控性將大為增強;

第三,ETL之前應制定流程化的配置管理和標準協定;

第四,關鍵數據標準至關重要。ETL面臨的最大挑戰是當接收數據時其各源數據的異構性和低質量。以電信為例,A系統按照統計代碼管理數據,B系統按照賬目數字管理,C系統按照語音ID管理。當ETL需要對這三個系統進行集成以獲得對客戶的全面視角時,這一過程需要複雜的匹配規則、名稱/地址正常化與標準化。而ETL在處理過程中會定義一個關鍵數據標準,並在此基礎上,制定相應的數據接口標準。

第五,將數據載入到個體數據集時。在沒有一個集中化的資料庫情況下,擁有數據模板是非常重要的。它們是標準化的接口,每一個個體或者部門數據集市都能夠填充。確保你的ETL工具有這樣的功能,能夠擴展到一個數據倉庫平台,將信息從一個數據集市流動到下一個。

特色功能

ETL過程在很大程度上受企業對源數據的理解程度的影響,也就是說從業務的角度看數據集成非常重要。一個優秀的ETL設計應該具有如下功能:

管理簡單

採用元數據方法,集中進行管理;接口、數據格式、傳輸有嚴格的規範;儘量不在外部數據源安裝軟體;數據抽取系統流程自動化,並有自動調度功能;抽取的數據及時、準確、完整;可以提供同各種數據系統的接口,系統適應性強;提供軟體框架系統,系統功能改變時,應用程式很少改變便可適應變化;可擴展性強。

標準定義數據

合理的業務模型設計對ETL至關重要。數據倉庫是企業唯一、真實、可靠的綜合數據平台。數據倉庫的設計建模一般都依照三範式、星型模型、雪花模型,無論哪種設計思想,都應該最大化地涵蓋關鍵業務數據,把運營環境中雜亂無序的數據結構統一成為合理的、關聯的、分析型的新結構,而ETL則會依照模型的定義去提取數據源,進行轉換、清洗,並最終載入到目標數據倉庫中。

模型的重要之處在於對數據做標準化定義,實現統一的編碼、統一的分類和組織。標準化定義的內容包括:標準代碼統一、業務術語統一。ETL依照模型進行初始載入、增量載入、緩慢增長維、慢速變化維、事實表載入等數據集成,並根據業務需求制定相應的載入策略、刷新策略、匯總策略、維護策略。

拓展新型套用

對業務數據本身及其運行環境的描述與定義的數據,稱之為元數據(metadata)。元數據是描述數據的數據。從某種意義上說,業務數據主要用於支持業務系統套用的數據,而元數據則是企業信息門戶、客戶關係管理、數據倉庫、決策支持和B2B等新型套用所不可或缺的內容。

元數據的典型表現為對象的描述,即對資料庫、表、列、列屬性(類型、格式、約束等)以及主鍵/外部鍵關聯等等的描述。特別是現行套用的異構性與分布性越來越普遍的情況下,統一的元數據就愈發重要了。“信息孤島”曾經是很多企業對其套用現狀的一種抱怨和概括,而合理的元數據則會有效地描繪出信息的關聯性。

而元數據對於ETL的集中表現為:定義數據源的位置及數據源的屬性、確定從源數據到目標數據的對應規則、確定相關的業務邏輯、在數據實際載入前的其他必要的準備工作,等等,它一般貫穿整個數據倉庫項目,而ETL的所有過程必須最大化地參照元數據,這樣才能快速實現ETL。

相關詞條

相關搜尋

熱門詞條

聯絡我們