ETL數據庫
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據歷來源端通過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL一詞較經常使用在數據倉庫,但其對象並不限於數據倉庫。服務器
ETL是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,通過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。架構
ETL在轉化的過程當中,主要體如今如下幾方面:性能
- 空值處理:可捕獲字段空值,進行加載或替換爲其餘含義數據,並可根據字段空值實現分流加載到不一樣目標庫。
- 規範化數據格式:可實現字段格式約束定義,對於數據源中時間、數值、字符等數據,可自定義加載格式。
- 拆分數據:依據業務需求對字段可進行分解。例,主叫號 861082585313-8148,可進行區域碼和電話號碼分解。
- 驗證數據正確性:可利用Lookup及拆分功能進行數據驗證。例如,主叫號861082585313-8148,進行區域碼和電話號碼分解後,可利用Lookup返回主叫網關或交換機記載的主叫地區,進行數據驗證。
- 數據替換:對於因業務因素,可實現無效數據、缺失數據的替換。
- Lookup:查獲丟失數據 Lookup實現子查詢,並返回用其餘手段獲取的缺失字段,保證字段完整性。
- 創建ETL過程的主外鍵約束:對無依賴性的非法數據,可替換或導出到錯誤數據文件中,保證主鍵惟一記錄的加載。
ETL架構的優點:優化
- ETL能夠分擔數據庫系統的負載(採用單獨的硬件服務器)
- ETL相對於EL-T架構能夠實現更爲複雜的數據轉化邏輯
- ETL採用單獨的硬件服務器。.
- ETL與底層的數據庫數據存儲無關.
ELTspa
在ELT架構中,ELT只負責提供圖形化的界面來設計業務規則,數據的整個加工過程都在目標和源的數據庫之間流動,ELT協調相關的數據庫系統來執行相關的應用,數據加工過程既能夠在源數據庫端執行,也能夠在目標數據倉庫端執行(主要取決於系統的架構設計和數據屬性)。當ETL過程須要提升效率,則能夠經過對相關數據庫進行調優,或者改變執行加工的服務器就能夠達到。通常數據庫廠商會力推該種架構,像Oracle和Teradata都極力宣傳ELT架構。架構設計
ELT架構的優點:設計
- ELT主要經過數據庫引擎來實現系統的可擴展性(尤爲是當數據加工過程在晚上時,能夠充分利用數據庫引擎的資源)
- ELT能夠保持全部的數據始終在數據庫當中,避免數據的加載和導出,從而保證效率,提升系統的可監控性。
- ELT能夠根據數據的分佈狀況進行並行處理優化,並能夠利用數據庫的固有功能優化磁盤I/O。
- ELT的可擴展性取決於數據庫引擎和其硬件服務器的可擴展性。
- 經過對相關數據庫進行性能調優,ETL過程得到3到4倍的效率提高通常不是特別困難。