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