更新時間:2021-06-08 來源:黑馬程序員 瀏覽量:
ETL是英文Extract-Transform-Load的縮寫,用來描述將數據從源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程,它能夠對各種分布的、異構的源數據(如關系數據)進行抽取,按照預先設計的規(guī)則將不完整數據、重復數據以及錯誤數據等“臟"數據內容進行清洗,得到符合要求的“干凈”數據,并加載到數據倉庫中進行存儲,這些“干凈”數據就成為了數據分析、數據挖掘的基石。
ETL是實現商務智能(Business Intelligence,BI)的核心。一般情況下,ETL會花費整個BI項目三分之一的時間,因此ETL設計得好壞直接影響B(tài)I項目的成敗。
企業(yè)中常用的ETL實現有多種方式,常見的方式如下。
(1)借助ETL工具(如Pentaho Kettle、Informatic等)。
(2)編寫SQL語句。
(3)將ETL工具和SQL語句結合起來使用。
上述3種實現方式各有利弊,其中第1種方式可以快速建立ETL工程,屏蔽復雜的編碼任務、加快速度和降低難度,但是缺少靈活性:第2種方式使用編寫SQL語句的方式優(yōu)占是靈活,可以提高ETL的運行效率,但是編碼復雜,對技術要求比較高;第3種方式綜合了前面兩種方法的優(yōu)點,可以極大地提高ETL的開發(fā)速度和效率。
ETL體系結構
ETL主要是用來實現異構數據源數據集成的。多種數據源的所有原始數據大部分未作修改就被載人ETL,因而,無論數據源在關系型數據庫、非關系型數據庫,還是在外部文件.集成后的數據都將被置于數據庫的數據表或數據倉庫的維度表中,以便在數據庫內或數據倉庫中作進一步轉換(因此,一般會將最終的數據存儲到數據庫或者數據倉庫中)。ETL的體系結構如圖下所示。
ETL體系結構
在上圖中,若數據源1和數據源2均為功能較強大的DBMS(數據庫管理系統(tǒng)),則可以使用SQL語句完成一部分數據清洗工作。但是,如果數據源為外部文件,就無法使用SQL語句進行數據清洗工作了,只能直接從數據源中抽取出來,然后在數據轉換的時候進行數據清洗的工作。因此,數據倉庫中的數據清洗工作主要還是在數據轉換的時候進行。清洗好的數據將保存到目標數據庫中,用于后續(xù)的數據分析、數據挖掘以及商業(yè)智能。
猜你喜歡: