啥是ETL、ELT
?
?
ETL就是Extract、Transfrom、Load即抽取、轉(zhuǎn)換、加載三個英文單詞首字母的集合。抽取:就是從源系統(tǒng)抽取需要的數(shù)據(jù),這些源系統(tǒng)可以是同構(gòu)也可以是異構(gòu)的:比如源系統(tǒng)可能是Excel電子表格、XML文件、關(guān)系型數(shù)據(jù)庫,而目標(biāo)系統(tǒng)通常都是關(guān)系型的數(shù)據(jù)倉庫。 轉(zhuǎn)換:源系統(tǒng)的數(shù)據(jù)按照分析目的,轉(zhuǎn)換成目標(biāo)系統(tǒng)要求的格式。其實這個名詞并沒有完全表達出這個步驟的目的,更準(zhǔn)確的說法應(yīng)該是數(shù)據(jù)清洗和數(shù)據(jù)加工。 加載:把轉(zhuǎn)換后的數(shù)據(jù)裝載到目標(biāo)數(shù)據(jù)庫。作為聯(lián)機分析、數(shù)據(jù)挖掘的基礎(chǔ)。 整個ETL過程就像是在源系統(tǒng)和目標(biāo)系統(tǒng)之間構(gòu)建一個管道,數(shù)據(jù)在這個管道里源源不斷的流動。而設(shè)計一個ETL架構(gòu)就是要建起起這個管道。這個管道的部署構(gòu)建就涉及到三個環(huán)節(jié),或者說三個位置。分別是Source、Stagearea、Target。對應(yīng)關(guān)系如下: E——————> ? T ——————> L Source————> Stagearea——> Target E:抽取,這個活動毫無疑問發(fā)生在數(shù)據(jù)源上,這個節(jié)點也就叫做Souce。 T:轉(zhuǎn)換,轉(zhuǎn)換活動通常是ETL中最具伸縮性的環(huán)節(jié),換句話說,這個環(huán)節(jié)的活動可繁可簡。最簡單的情形下,源系統(tǒng)的數(shù)據(jù)不需要任何轉(zhuǎn)換,就直接進入目標(biāo),這時這個T實際就是沒有的。而復(fù)雜的情形就多了,比如數(shù)據(jù)格式轉(zhuǎn)化、數(shù)據(jù)精度轉(zhuǎn)換、數(shù)據(jù)清洗、缺失數(shù)據(jù)補齊、異常數(shù)據(jù)排除等等。在這種情形下,通常會專門準(zhǔn)備一個臨時系統(tǒng),提供足夠的軟硬件資源來支持這種轉(zhuǎn)換。這個臨時系統(tǒng)就叫做Stagearea,也叫做數(shù)據(jù)登臺區(qū),即數(shù)據(jù)到達終點之前的區(qū)域。 L:加載,這個活動毫無懸念的發(fā)生在目標(biāo)數(shù)據(jù)庫中,這個目標(biāo)數(shù)據(jù)庫叫做Target。 我們明白了什么是ETL,那么ELT就好理解了。ELT也是同樣三個單詞的首字母組合,只不過是把T、L顛倒了下順序而已??删褪沁@個順序的顛倒,差異就出來了。ETL強調(diào)的是先進性數(shù)據(jù)轉(zhuǎn)換,然后再加載到目標(biāo)。這個轉(zhuǎn)換過程可能發(fā)生在任何地方,可以在原系統(tǒng)進行,也可以在Stagearea進行,也可以在目標(biāo)系統(tǒng)進行。而ELT是把數(shù)據(jù)加載到數(shù)據(jù)倉庫后再進行轉(zhuǎn)化,發(fā)生的地點只能是目標(biāo)系統(tǒng)。 這兩種方式各有優(yōu)缺點,如果源系統(tǒng)有多個,比如一個國際型公司,起源數(shù)據(jù)可能來自世界各地,這時就可以通過部署多個中間節(jié)點,從而分散數(shù)據(jù)轉(zhuǎn)換的壓力,有點類似分布式計算的味道,可以提高數(shù)據(jù)加載效率。因此,ETL非常適用于多個數(shù)據(jù)源對一個目標(biāo)的拓撲結(jié)構(gòu)。 而ELT把數(shù)據(jù)加載到數(shù)據(jù)倉庫在進行轉(zhuǎn)換,通常數(shù)據(jù)倉庫都會部署在高性能主機上,顯而易見,這種設(shè)計是要充分的利用目標(biāo)系統(tǒng)的處理能力,大樹底下好乘涼嗎。ELT的另一個優(yōu)點是可以充分利用產(chǎn)品的內(nèi)置能力,如果ETL的源、目標(biāo)都是相同的產(chǎn)品,比如都是Oracle數(shù)據(jù)庫,現(xiàn)在RDBMS內(nèi)置的數(shù)據(jù)處理引擎越來越強大,ELT能夠充分利用這些內(nèi)置引擎。 所以,ETL還是ELT其實并沒有絕對的差異,也沒有孰優(yōu)孰劣,最終還是要根據(jù)現(xiàn)實環(huán)境選擇最適合的。 ETL工具的選擇 在數(shù)據(jù)倉庫項目中該如何選擇ETL工具呢?一般來說需要考慮以下幾個方面: (1)對平臺的支持程度。 (2)對數(shù)據(jù)源的支持程度。 (3)抽取和裝載的性能是不是較高,且對業(yè)務(wù)系統(tǒng)的性能影響大不大,侵入性高不高。 (4)數(shù)據(jù)轉(zhuǎn)換和加工的功能強不強。 (5)是否具有管理和調(diào)度功能。 (6)是否具有良好的集成性和開放性。轉(zhuǎn)載于:https://www.cnblogs.com/sthinker/p/5941462.html
總結(jié)
- 上一篇: 激光摄像机的原理及应用
- 下一篇: svn分支合并