ETL的兩種架構(ETL架構和ELT架構)


 ETL

ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL一詞較常用在數據倉庫,但其對象並不限於數據倉庫。

ETL是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。

ETL在轉化的過程中,主要體現在以下幾方面:

  1. 空值處理:可捕獲字段空值,進行加載或替換為其他含義數據,並可根據字段空值實現分流加載到不同目標庫。
  2. 規范化數據格式:可實現字段格式約束定義,對於數據源中時間、數值、字符等數據,可自定義加載格式。
  3. 拆分數據:依據業務需求對字段可進行分解。例,主叫號 861082585313-8148,可進行區域碼和電話號碼分解。
  4. 驗證數據正確性:可利用Lookup及拆分功能進行數據驗證。例如,主叫號861082585313-8148,進行區域碼和電話號碼分解后,可利用Lookup返回主叫網關或交換機記載的主叫地區,進行數據驗證。
  5. 數據替換:對於因業務因素,可實現無效數據、缺失數據的替換。
  6. Lookup:查獲丟失數據 Lookup實現子查詢,並返回用其他手段獲取的缺失字段,保證字段完整性。
  7. 建立ETL過程的主外鍵約束:對無依賴性的非法數據,可替換或導出到錯誤數據文件中,保證主鍵唯一記錄的加載。

ETL架構的優勢:

  1. ETL可以分擔數據庫系統的負載(采用單獨的硬件服務器)
  2. ETL相對於EL-T架構可以實現更為復雜的數據轉化邏輯
  3. ETL采用單獨的硬件服務器。.
  4. ETL與底層的數據庫數據存儲無關.

ELT

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

 

ELT架構的優勢:

  1. ELT主要通過數據庫引擎來實現系統的可擴展性(尤其是當數據加工過程在晚上時,可以充分利用數據庫引擎的資源)
  2. ELT可以保持所有的數據始終在數據庫當中,避免數據的加載和導出,從而保證效率,提高系統的可監控性。
  3. ELT可以根據數據的分布情況進行並行處理優化,並可以利用數據庫的固有功能優化磁盤I/O。
  4. ELT的可擴展性取決於數據庫引擎和其硬件服務器的可擴展性。
  5. 通過對相關數據庫進行性能調優,ETL過程獲得3到4倍的效率提升一般不是特別困難。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM