ETL的定義

 
ETL就是Extract、Transfrom、Load即抽取、轉換、加載三個英文單詞首字母的集合。抽取:就是從源系統抽取需要的數據,這些源系統可以是同構也可以是異構的:比如源系統可能是Excel電子表格、XML文件、關係型 數據庫 ,而目標系統通常都是關係型的數據倉庫
轉換:源系統的數據按照分析目的,轉換成目標系統要求的格式。其實這個名詞並沒有完全表達出這個步驟的目的,更準確的說法應該是數據清洗和數據加工。
加載:把轉換後的數據裝載到目標數據庫。作爲聯機分析、數據挖掘的基礎。
 
整個ETL過程就像是在源系統和目標系統之間構建一個管道,數據在這個管道里源源不斷的流動。而設計一個ETL架構就是要建起起這個管道。這個管道的部署構建就涉及到三個環節,或者說三個位置。分別是Source、Stagearea、Target。對應關係如下:
 
E——————>   T ——————> L
Source————> Stagearea——> Target
 
E:抽取,這個活動毫無疑問發生在數據源上,這個節點也就叫做Souce。
T: 轉換,轉換活動通常是ETL中最具伸縮性的環節,換句話說,這個環節的活動可繁可簡。最簡單的情形下,源系統的數據不需要任何轉換,就直接進入目標,這時 這個T實際就是沒有的。而複雜的情形就多了,比如數據格式轉化、數據精度轉換、數據清洗、缺失數據補齊、異常數據排除等等。在這種情形下,通常會專門準備 一個臨時系統,提供足夠的軟硬件資源來支持這種轉換。這個臨時系統就叫做Stagearea,也叫做數據登臺區,即數據到達終點之前的區域。
L:加載,這個活動毫無懸念的發生在目標數據庫中,這個目標數據庫叫做Target。
 
我 們明白了什麼是ETL,那麼ELT就好理解了。ELT也是同樣三個單詞的首字母組合,只不過是把T、L顛倒了下順序而已。可就是這個順序的顛倒,差異就出 來了。ETL強調的是先進性數據轉換,然後再加載到目標。這個轉換過程可能發生在任何地方,可以在原系統進行,也可以在Stagearea進行,也可以在 目標系統進行。而ELT是把數據加載到數據倉庫後再進行轉化,發生的地點只能是目標系統。
這兩種方式各有優缺點,如果源系統有多個,比如一個國際型公司,起源數據可能來自世界各地,這時就可以通過部署多箇中間節點,從而分散數據轉換的壓力,有點類似分佈式計算的味道,可以提高數據加載效率。因此,ETL非常適用於多個數據源對一個目標的拓撲結構。
而 ELT把數據加載到數據倉庫在進行轉換,通常數據倉庫都會部署在高性能主機上,顯而易見,這種設計是要充分的利用目標系統的處理能力,大樹底下好乘涼嗎。 ELT的另一個優點是可以充分利用產品的內置能力,如果ETL的源、目標都是相同的產品,比如都是Oracle數據庫,現在RDBMS內置的數據處理引擎 越來越強大,ELT能夠充分利用這些內置引擎。
所以,ETL還是ELT其實並沒有絕對的差異,也沒有孰優孰劣,最終還是要根據現實環境選擇最適合的。
 
ETL工具的選擇ITPUB個人空間#qyR pB _'lf
  在數據倉庫項目中該如何選擇ETL工具呢?一般來說需要考慮以下幾個方面:ITPUB個人空間&j!i oIC8G(~uM
  (1)對平臺的支持程度。
s,[PY p.oDuoEF22708224   (2)對數據源的支持程度。
k)@['x(i!p22708224   (3)抽取和裝載的性能是不是較高,且對業務系統的性能影響大不大,侵入性高不高。ITPUB個人空間/4oP-SN v
  (4)數據轉換和加工的功能強不強。ITPUB個人空間 ^BD1B1?
  (5)是否具有 管理 和調度功能。ITPUB個人空間+Gmr5KEi1x
  (6)是否具有良好的集成性和開放性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章