Back to Blog
ETL vs. ELT 優缺大 PK!
2021/06/22

現今在資料倉儲上常常聽到的兩個使用上的差異 ETL, 與 ELT 在這篇我們將解析這兩種不同的資料倉儲概念的差異以及我們兩者的各種優缺點,以及在 CannerFlow 我們會建議什麼樣的規模使用哪一種資料處理方式。

現在常見的資料倉儲系統有:

  1. Snowflake
  2. Teradata
  3. BigQuery
  4. Vertica
  5. Redshift
  6. Synapse 等等

首先我們來看 “ETL + Data Warehouse” 以及 “ELT + Data Warehouse” 的概念與優缺。

1. ETL + Data Warehouse

ETL + Data Warehouse

上圖是一般 ETL + Data Warehouse 架構,資料會儲存在針對不同應用場景方便接收地方可能是資料庫、檔案、資料湖等,資料接收進來會萃取與轉換在資料倉儲 (Data Warehouse) 中。

在資料倉儲中會做很多不同面向的數據轉換供應給各個應用單位,在公司或企業中應用單位非常多有業務、銷售、行銷、營運等等。

在 “ETL + Data Warehouse” 的架構中,我們會把數據轉換先在 ETL,的轉換階段就先做不同應用端所需要的數據面向。

優點:

  1. 數據轉換抽離:把所需要做數據呈現面向的資料再放入到 Data Warehouse 中,把數據轉換抽離。
  2. 資料倉儲功能單一:在此架構下資料倉儲的功能,就是把需要快速做大量運算出結果給數據應用的放入到資料倉儲裡面。
  3. 資料倉儲費用較低:由於只有需要變成應用端的數據才會進入到 Data Warehouse 中,所以資料倉儲與 License fee 能夠降低。

缺點:

  1. 維護數據轉換:由於他的優點也是他的缺點,抽離數據轉換至 ETL 中,會照成未來大量的維護成本,通常在大型企業數據轉換可能有數百或數千個 pipeline。
  2. 維護數據渠道:數據渠道指的是資料從源頭到、轉換、到匯入到應用端,整個應用流程都需要維護,只要上游數據 Schema 改變通常整個 pipeline 都需要多少做調整。
  3. 擴展性:因為 ETL 如處理到數據量跟更大量的數據時會遇到一個比較大的問題是擴展性,在處理小量與大量的數據 ETL 建置方式會是完全不一樣的方式。
  4. 數據異動:在此架構數據異動的 effort 是非常大的,因為他會牽動到 Data Mart, 以及 Data Warehouse 的架構,所以需要去調整異動的項目。
  5. 延遲性高:因為數據轉換是建置在 Data Warehouse 外部,所以延遲性會相對高許多。

2. ELT + Data Warehouse

另一個現在非常流行的另一個方法,與過去的 “ETL + Data Warehouse” 最大的不一樣就是先把資料 load 進資料倉儲裡面再做多階層的數據轉換,產生應用端數據。

ELT + Data Warehouse

可以看到為什麼 ELT 會比現在 ETL 來得受到青睞,因為在資料流程來看是單純非常多,資料先進到 Data Warehouse 中在做後面的數據轉換。

在 “ELT + Data Warehouse” 的架構中,我們會把數據轉換都在 ”進入到 Data Warehouse” 中之後再做不同數據應用面向的數據轉換。

優點:

  1. 維護數據轉換成本較低:因為可以借用在 Data Warehouse 本身在 analytics 上的效能做快速的轉換,所以在維護數據轉換的維護成本可以相對低很多。
  2. 減少維護數據渠道:由於在 ELT 的 extract 比起在 ETL 中的 extract 單純很多,他可以減少維護數據渠道的複雜度。
  3. 延遲性低:因為數據轉換是建置在 Data Warehouse 內部,所以數據處理就可以用 Data Warehouse 本身效能使用。

缺點:

  1. 費用高許多:由於所有的數據處理都仰賴 Data Warehouse 的效能,所以機台的運算能力以及 concurrecy usage 會高非常多,在這個情況下費用可能會高非常多。
  2. 數據處理彈性低:由於使用 ETL 可以有千變萬化的數據轉換在其中,但如果是在載入到 Data Warehouse 中有許多數據處理上的彈性就不會這麼高。
  3. 資料必須載入:不論大小各種不同的資料集,各個單位的數據或是檔案都需要上傳至資料倉儲中才能去做運算,然而在現實上並不會所有東西都給到中央統一去上傳在做資料分配,而是各單位自己獨立營運。
  4. 資料髒亂:當數據歷史拉得更長的話,會有許多資料是已經不需要使用,但已經有許多 view 或是 materialized view 混搭使用這些原始資料,造成未來有資料耦合性問題,造成數據難以維護、更新與刪除。

總結 ETL + Data Warehouse vs. ELT + Data Warehouse 的差異

最大的差異在於資料 轉換成不同的應用數據的時機點在什麼地方 ,是在資料進到資料倉儲之前呢?還是之後呢?每個不同的解決方案各有利弊。

想要了解 ETL 以及 ELT 和 Data Virtualization 的比較嗎?請查看這

No reproduction without permission, please indicate the source if authorized.

Share to your friends!

Follow Us
CannerFlow Platform
Connecting data lakes, databases, files, clouds as one data platform.
Learn More
Contact Us
Want to connect with us and talk to us? Contact us now!
Request Now