ETL, Extract, Transform and Load
ETL 是一種資料整合流程,代表:
- Extract(擷取)
- Transform(轉換)
- Load(載入)
它的核心目的是:
把來自不同來源的原始資料整理成可分析、可查詢、可支援商業決策的形式。
ETL 是資料倉儲(data warehouse)、報表分析與 BI 系統常見的基礎流程。

三個核心步驟
| 階段 | 意義 |
|---|---|
| Extract | 從資料來源擷取資料 |
| Transform | 清理、轉換、整合資料 |
| Load | 載入資料到目標系統 |
1. Extract(擷取)
Extract 是先把資料從來源系統抓出來。
資料來源可能包括:
- 資料庫
- API
- 檔案系統
- SaaS 平台
- log / event stream
常見擷取方式:
全量擷取
- 將資料來源中的整份資料重新抓出來
- 做法簡單
- 但資料量大時,成本高、速度慢
增量擷取
- 只擷取自上次處理後新增、修改或刪除的資料
- 可降低對來源系統的負擔
- 更適合持續同步的場景
常見增量方式:
- 時間戳(timestamp)
- 根據更新時間判斷哪些資料需要擷取
- 觸發器(trigger)
- 在資料變動時即時記錄或同步
2. Transform(轉換)
Transform 是 ETL 中最關鍵,也往往最耗時的階段。
目的是把原始資料整理成一致、乾淨、可用的形式。
常見工作包括:
- Data Cleaning (數據清洗)
- 格式轉換
- 欄位合併
- 單位統一
- 缺失值處理
- 異常值處理
- 資料整合
- 特徵衍生
這一步的目標是提升資料的:
- 準確性
- 一致性
- 可用性
3. Load(載入)
Load 是把處理好的資料載入到目標系統。
常見目標包括:
- Data Warehouse
- Data Lake
- Dataset / Mart
- 分析資料庫
- 搜尋引擎(如 Elasticsearch):適合需要全文搜尋、近實時查詢的場景
載入後,資料才能被:
- 查詢
- 報表化
- 分析
- 提供給 BI / ML 系統使用
ETL 與 ELT 的差異
ETL 和 ELT 都是資料整合方法,差異主要在於:
資料轉換發生在載入前還是載入後
| 方法 | 流程 | 特點 |
|---|---|---|
| ETL | Extract -> Transform -> Load | 先整理好再載入 |
| ELT | Extract -> Load -> Transform | 先載入原始資料,再在目標系統內轉換 |
- ETL:適合需要先清理、先控管品質再進倉的情境
- ELT:適合雲端資料平台或運算能力強的資料倉儲環境

Data Lake 與 Data Warehouse
在 ETL / ELT 脈絡中,常見兩種目標:
- Data Lake
- 可以先存放較原始、格式較多元的資料
- Data Warehouse
- 偏向結構化、整理後、適合分析與報表的資料
簡化理解:
- Data Lake:先收進來
- Data Warehouse:整理後拿來分析
為什麼 ETL 重要
ETL 的價值在於:
- 把分散資料來源整合起來
- 降低資料品質問題
- 讓下游分析結果更可信
- 提供 BI、dashboard、機器學習的穩定輸入
如果沒有 ETL,組織通常會面臨:
- 資料格式不一致
- 欄位定義混亂
- 報表口徑不一致
- 分析結果難以信任
小結
Summary
ETL 是資料整合的標準流程:
- Extract:把資料取出
- Transform:把資料清理、整理、轉換
- Load:把資料載入目標系統
它的核心目的,是把原始資料轉成可分析、可決策、可被 BI / ML 使用的資料資產。
參考資料:
什麼是 ETL?| Google Cloud
fanruan.com/zh-tw/blog/what-is-ETL