你真的了解ELT和ETL嗎?
大家好,我是一哥。
ETL 和 ELT 有很多共同點(diǎn),從本質(zhì)上講,每種集成方法都可以將數(shù)據(jù)從源端抽取到數(shù)據(jù)倉(cāng)庫(kù)中,兩者的區(qū)別在于數(shù)據(jù)在哪里進(jìn)行轉(zhuǎn)換。 接下來(lái),我們一起詳細(xì)地分析一下 ETL 和 ELT各自的優(yōu)缺點(diǎn),看看在你們現(xiàn)在的業(yè)務(wù)中用哪種方式處理數(shù)據(jù)比較合適。
1.ETL
ETL - 抽取、轉(zhuǎn)換、加載
從不同的數(shù)據(jù)源抽取信息,將其轉(zhuǎn)換為根據(jù)業(yè)務(wù)定義的格式,然后將其加載到其他數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中。另一種 ETL 集成方法是反向 ETL,它將結(jié)構(gòu)化數(shù)據(jù)從數(shù)據(jù)倉(cāng)庫(kù)中加載到業(yè)務(wù)數(shù)據(jù)庫(kù)中,如我們常用數(shù)據(jù)倉(cāng)庫(kù)加工好的報(bào)表,推送到報(bào)表系統(tǒng)的數(shù)據(jù)庫(kù)中。
2.ELT
ELT - 抽取、加載、轉(zhuǎn)換
同樣的從一個(gè)或多個(gè)數(shù)據(jù)源中抽取數(shù)據(jù),然后將其加載到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)中,此時(shí)不需要進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換。在 ELT 過(guò)程中,數(shù)據(jù)的轉(zhuǎn)換發(fā)生在目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)中。ELT 對(duì)遠(yuǎn)程資源的要求較少,只需要它們的原始數(shù)據(jù)即可。
3.ELT的演變
ELT 已經(jīng)存在了一段時(shí)間,但 Hadoop 等大數(shù)據(jù)技術(shù)出現(xiàn)后,更加活躍了。像以前轉(zhuǎn)換 PB 級(jí)原始數(shù)據(jù)這樣的大型任務(wù)無(wú)法處理,現(xiàn)在可以被分成小作業(yè),進(jìn)行處理,然后再加載到目標(biāo)數(shù)據(jù)庫(kù)中。同時(shí),處理能力也提高了,尤其是以私有云集群的方式,把處理、加工數(shù)據(jù)可以在一個(gè)數(shù)據(jù)倉(cāng)庫(kù)中完成了。
4.ELT的工作原理
與 ETL 不同,ELT是從多個(gè)數(shù)據(jù)源收集信息,將其加載到數(shù)據(jù)倉(cāng)庫(kù)(或者數(shù)據(jù)湖)中,然后將其轉(zhuǎn)換為可操作的商業(yè)智能的過(guò)程。
抽取——在ELT和ETL兩種數(shù)據(jù)管理方法中的原理相似。一般我們會(huì)采用增量抽取,對(duì)于一些維表數(shù)據(jù)量比較小的也會(huì)采用全量抽取。
加載——這是 ELT 和 ETL 開(kāi)始不同的地方了。ELT 不是在抽取大量原始數(shù)據(jù)的過(guò)程中將其轉(zhuǎn)換,而是將所有數(shù)據(jù)都加在到湖倉(cāng)中,然后統(tǒng)一進(jìn)行轉(zhuǎn)換,這樣做加快了抽取的效率,但也意味著數(shù)據(jù)變得有用之前還有很多工作要做。
轉(zhuǎn)換——數(shù)據(jù)湖或數(shù)據(jù)倉(cāng)庫(kù)對(duì)數(shù)據(jù)進(jìn)行規(guī)范化,將部分或全部數(shù)據(jù)保留在湖倉(cāng)中,并可用于定制報(bào)告。存儲(chǔ)海量數(shù)據(jù)的開(kāi)銷更高,但也是為了后續(xù)能夠更加快速的進(jìn)行數(shù)據(jù)挖掘和報(bào)表展現(xiàn),也就是我們常說(shuō)的用空間換時(shí)間。
5.什么時(shí)候我們選擇ELT
這取決于公司現(xiàn)有的網(wǎng)絡(luò)和技術(shù)架構(gòu)、預(yù)算以及它已經(jīng)利用云和大數(shù)據(jù)技術(shù)的程度。如果是有下面三個(gè)需求場(chǎng)景時(shí),那么ELT就是正確的選擇~
(1)當(dāng)抽取速度是第一選擇時(shí)
因?yàn)?ELT 不必等待數(shù)據(jù)在抽取過(guò)程中進(jìn)行轉(zhuǎn)換后再加載,那么抽取過(guò)程要快得多。
(2)當(dāng)需要隨時(shí)訪問(wèn)原始數(shù)據(jù)時(shí)
有很多場(chǎng)景,我們需要保留所有歷史數(shù)據(jù),分析師可以根據(jù)時(shí)間、銷售模式、季節(jié)性趨勢(shì)或任何對(duì)業(yè)務(wù)變得重要的新興指標(biāo)進(jìn)行挖掘。由于數(shù)據(jù)在加載之前未進(jìn)行轉(zhuǎn)換,因此您可以訪問(wèn)所有原始數(shù)據(jù)。比如,數(shù)據(jù)倉(cāng)庫(kù)一般都有一個(gè)原始數(shù)據(jù)層,很多數(shù)據(jù)科學(xué)家更喜歡訪問(wèn)原始數(shù)據(jù),而業(yè)務(wù)用戶更喜歡使用分析后的應(yīng)用層或者模型層數(shù)據(jù)。
(3)當(dāng)需要隨時(shí)可擴(kuò)展數(shù)據(jù)湖倉(cāng)時(shí)
當(dāng)您使用 Hadoop 或云數(shù)據(jù)倉(cāng)庫(kù)等數(shù)據(jù)處理引擎時(shí),ELT 可以利用本機(jī)處理能力實(shí)現(xiàn)更高的可擴(kuò)展性。
6.數(shù)據(jù)湖是不是很好的ELT落腳點(diǎn)
首先,我們思考一下數(shù)倉(cāng)為什么會(huì)出現(xiàn)?其實(shí)是數(shù)據(jù)量的飛速增長(zhǎng),以至于當(dāng)時(shí)的數(shù)據(jù)存儲(chǔ)計(jì)算引擎,不能很好的滿足分析需求;于是數(shù)倉(cāng)概念和經(jīng)典的理論出現(xiàn)了,很好的解決了當(dāng)時(shí)的問(wèn)題,用“規(guī)范+存儲(chǔ)”來(lái)解決了當(dāng)時(shí)的問(wèn)題。
那么現(xiàn)在大數(shù)據(jù)時(shí)代,隨著技術(shù)的不斷發(fā)展,很多新技術(shù)出現(xiàn)了,大批量的存儲(chǔ)和計(jì)算不再是那么難了,那么我們放棄數(shù)倉(cāng)那一套是否可行呢?從一哥現(xiàn)在處理的業(yè)務(wù)看,如果你的業(yè)務(wù)系統(tǒng)相對(duì)較單一,沒(méi)有幾十個(gè)業(yè)務(wù)系統(tǒng)每天往數(shù)倉(cāng)里灌數(shù)據(jù),那么數(shù)據(jù)湖可以滿足你的需求,并且對(duì)于“數(shù)據(jù)驅(qū)動(dòng)”更“敏捷”。如果一線的業(yè)務(wù)系統(tǒng)較復(fù)雜,那么現(xiàn)在使用數(shù)據(jù)湖也會(huì)一不小心會(huì)變成“數(shù)據(jù)沼澤”。
數(shù)據(jù)湖治理策略沒(méi)有明確前,還不要急著就上數(shù)據(jù)湖,并不是適用于每個(gè)公司的業(yè)務(wù)場(chǎng)景的!
7.結(jié)語(yǔ)
ELT和ETL都有各自的應(yīng)用場(chǎng)景,可以說(shuō)現(xiàn)在大數(shù)據(jù)環(huán)境下,很多已經(jīng)是ELT架構(gòu)了,所以這也是我近幾年一直不看好很多廠商在推“拖拉拽”的ETL工具或者平臺(tái),未來(lái)肯定是需要一種通用語(yǔ)言來(lái)實(shí)現(xiàn)所有的ELT過(guò)程。
同樣,數(shù)據(jù)湖是趨勢(shì),但現(xiàn)在依然不成熟,不要看網(wǎng)上很多一線大廠的技術(shù)文章中提到了很多數(shù)據(jù)湖的概念和技術(shù)應(yīng)用,但是請(qǐng)結(jié)合自己公司的業(yè)務(wù)場(chǎng)景,暫時(shí)先謹(jǐn)慎選擇!
本文轉(zhuǎn)載自微信公眾號(hào)「數(shù)據(jù)社」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系數(shù)據(jù)社公眾號(hào)。