如果您接觸過數(shù)據(jù)倉庫, 您可能會使用 ETL (Extract、 Transform、 Load) 或 ELT ( Extract、Load、 Transform) 將您的數(shù)據(jù)從不同的來源提取到數(shù)據(jù)倉庫中。這些是移動數(shù)據(jù)或集成數(shù)據(jù)的常用方法, 以便您可以關(guān)聯(lián)來自不同來源的信息, 將數(shù)據(jù)安全地存儲在一個位置, 并使公司的成員能夠從不同業(yè)務(wù)部門查看綜合數(shù)據(jù)。ETL和ELT兩個術(shù)語的區(qū)別與過程的發(fā)生順序有關(guān)。這些方法都適合于不同的情況。
一、什么是ETL?
ETL是用來描述將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。ETL一詞較常用在數(shù)據(jù)倉庫,但其對象并不限于數(shù)據(jù)倉庫。
ETL是構(gòu)建數(shù)據(jù)倉庫的最重要的環(huán)節(jié),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預(yù)先定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫。
ETL架構(gòu)的特殊優(yōu)勢:
ETL可以分擔(dān)數(shù)據(jù)庫系統(tǒng)的負(fù)載,可采用單獨的硬件服務(wù)器部署
ETL相對ELT架構(gòu)可以實現(xiàn)更為復(fù)雜的數(shù)據(jù)轉(zhuǎn)化邏輯
ETL與底層的數(shù)據(jù)庫數(shù)據(jù)存儲無關(guān)
二、什么是ELT?
ELT只負(fù)責(zé)提供圖形化的界面來設(shè)計業(yè)務(wù)規(guī)則,數(shù)據(jù)的整個加工過程都在目標(biāo)和源的數(shù)據(jù)庫之間流動,ELT協(xié)調(diào)相關(guān)的數(shù)據(jù)庫系統(tǒng)來執(zhí)行相關(guān)的應(yīng)用,數(shù)據(jù)加工過程既可以在源數(shù)據(jù)庫端執(zhí)行,也可以在目標(biāo)數(shù)據(jù)倉庫端執(zhí)行(主要取決于系統(tǒng)的架構(gòu)設(shè)計和數(shù)據(jù)屬性)。當(dāng)ETL過程需要提高效率,則可以通過對相關(guān)數(shù)據(jù)庫進行調(diào)優(yōu),或者改變執(zhí)行加工的服務(wù)器就可以達到。ELT 通常發(fā)生在 NoSQL 數(shù)據(jù)庫中,具有處理非結(jié)構(gòu)化數(shù)據(jù)的能力。一般數(shù)據(jù)庫廠商會也會力推該種架構(gòu),像Oracle和Teradata都極力宣傳ELT架構(gòu)。
ELT架構(gòu)的特殊優(yōu)勢:
ELT主要通過數(shù)據(jù)庫引擎來實現(xiàn)系統(tǒng)的可擴展性
ELT可以保持所有的數(shù)據(jù)始終在數(shù)據(jù)庫當(dāng)中,避免數(shù)據(jù)的加載和導(dǎo)出,從而保證效率,提高系統(tǒng)的可監(jiān)控性。
ELT可以根據(jù)數(shù)據(jù)的分布情況進行并行處理優(yōu)化,并可以利用數(shù)據(jù)庫的固有功能優(yōu)化磁盤I/O。
ELT的可擴展性取決于數(shù)據(jù)庫引擎和其硬件服務(wù)器的可擴展性。
通過對相關(guān)數(shù)據(jù)庫進行性能調(diào)優(yōu),ELT過程獲得3到4倍的效率提升一般不是特別困難。
三、總結(jié)
經(jīng)過這些描述后可能會讓您懷疑哪種方法更好。事實上, 在不同的情況下, 這些方法中的每一種都有優(yōu)勢, 最好的解決方案取決于你的項目情況。ELT在以下情況中,配合ETL工具將會將會達到更好的效果:
1、當(dāng)您想要執(zhí)行復(fù)雜的計算時,ETL工具比數(shù)據(jù)倉庫或數(shù)據(jù)池更有效
2、如果要在加載到目標(biāo)存儲之前進行大量數(shù)據(jù)清理。ETL是一種更好的解決方案,因為您不會將不需要的數(shù)據(jù)移動到目標(biāo)。
3、當(dāng)您僅使用結(jié)構(gòu)化數(shù)據(jù)或傳統(tǒng)結(jié)構(gòu)化數(shù)據(jù)倉庫時。ETL工具通常最有效地將結(jié)構(gòu)化數(shù)據(jù)從一個環(huán)境移動到另一個環(huán)境。
4、當(dāng)你想要擴展補充數(shù)據(jù)時。如果要在將數(shù)據(jù)移動到目標(biāo)存儲時擴展補充數(shù)據(jù),則需要使用ETL工具。例如,添加時間戳。