數據分析你須要知道的操做:ETL和ELT

若是您接觸過數據倉庫, 您可能會使用 ETL (Extract、 Transform、 Load) 或 ELT ( Extract、Load、 Transform) 將您的數據從不一樣的來源提取到數據倉庫中。這些是移動數據或集成數據的經常使用方法, 以便您能夠關聯來自不一樣來源的信息, 將數據安全地存儲在一個位置, 並使公司的成員可以從不一樣業務部門查看綜合數據。ETL和ELT兩個術語的區別與過程的發生順序有關。這些方法都適合於不一樣的狀況。數據庫

1、什麼是ETL?

ETL是用來描述將數據歷來源端通過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL一詞較經常使用在數據倉庫,但其對象並不限於數據倉庫。安全

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

 

ETL架構的特殊優點:架構

ETL能夠分擔數據庫系統的負載,可採用單獨的硬件服務器部署工具

ETL相對ELT架構能夠實現更爲複雜的數據轉化邏輯性能

ETL與底層的數據庫數據存儲無關優化

2、什麼是ELT?

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

 

ELT架構的特殊優點:架構設計

ELT主要經過數據庫引擎來實現系統的可擴展性設計

ELT能夠保持全部的數據始終在數據庫當中,避免數據的加載和導出,從而保證效率,提升系統的可監控性。

ELT能夠根據數據的分佈狀況進行並行處理優化,並能夠利用數據庫的固有功能優化磁盤I/O。

ELT的可擴展性取決於數據庫引擎和其硬件服務器的可擴展性。

經過對相關數據庫進行性能調優,ELT過程得到3到4倍的效率提高通常不是特別困難。

3、總結

通過這些描述後可能會讓您懷疑哪一種方法更好。事實上, 在不一樣的狀況下, 這些方法中的每一種都有優點, 最好的解決方案取決於你的項目狀況。ELT在如下狀況中,配合ETL工具將會將會達到更好的效果:

一、當您想要執行復雜的計算時,ETL工具比數據倉庫或數據池更有效

二、若是要在加載到目標存儲以前進行大量數據清理。ETL是一種更好的解決方案,由於您不會將不須要的數據移動到目標。

三、當您僅使用結構化數據或傳統結構化數據倉庫時。ETL工具一般最有效地將結構化數據從一個環境移動到另外一個環境。

四、當你想要擴展補充數據時。若是要在將數據移動到目標存儲時擴展補充數據,則須要使用ETL工具。例如,添加時間戳。

相關文章
相關標籤/搜索