擷取、轉換、載入 是什麼?

ETL:擷取、轉換、載入 的完整解釋

資料工程核心流程,將原始資料從來源系統擷取(Extract)、清洗轉換(Transform)後,載入(Load)至目標資料倉儲或 AI 訓練管線的三段式架構。

ETL(Extract, Transform, Load)是資料工程領域歷史最悠久也最核心的架構模式,在 AI 時代的重要性不減反增。隨著大型語言模型(LLM)與機器學習系統對資料品質的依賴程度提升,ETL 管線的設計成為決定 AI 系統上限的關鍵因素之一。

Extract(擷取)階段

Extract 是 ETL 的第一個步驟,負責從多個異質資料來源收集原始資料。資料來源可能包括:關聯式資料庫(MySQL、PostgreSQL)、NoSQL 資料庫(MongoDB、Cassandra)、REST API 與 GraphQL 端點、CSV 或 Excel 等平面檔案、雲端物件儲存(S3、GCS)、即時資料流(Kafka、Kinesis)、網頁爬蟲資料、感測器與 IoT 裝置日誌,以及企業 ERP、CRM 等業務系統。Extraction 的挑戰在於處理各來源的異質性:不同的認證方式、資料格式、更新頻率與資料量。全量擷取(Full Extraction)每次拉取全部資料,適合小型或不常變動的資料集;增量擷取(Incremental Extraction)只抓取自上次執行以來新增或修改的資料,透過時間戳記或變更資料捕獲(CDC,Change Data Capture)實現,適合大型持續更新的資料集。

Transform(轉換)階段

Transform 是 ETL 管線中最複雜也最關鍵的階段,決定了進入 AI 系統的資料品質。常見的轉換操作包括以下幾類。資料清洗(Data Cleaning):處理缺失值(填充均值/中位數/眾數,或用預測模型填補)、移除重複記錄、修正格式錯誤(如日期格式不一致、大小寫混用)、過濾異常值(Outlier Detection)。格式標準化(Normalization):統一編碼格式(UTF-8)、統一單位(如將溫度統一為攝氏)、統一類別值的表述(如「台灣」「Taiwan」「TW」統一為同一值)。特徵工程(Feature Engineering):從原始欄位衍生新特徵(如從訂單時間衍生「星期幾」「是否週末」「距上次購買天數」)、文字欄位向量化(TF-IDF 或 BERT Embedding)、類別變數編碼(One-Hot Encoding 或 Target Encoding)。資料驗證(Data Validation):確認資料範圍合法(如年齡不超過 150)、必填欄位不為空、外鍵關聯一致性,並記錄資料品質指標(完整率、準確率、一致性)。

Load(載入)階段

Load 階段將轉換後的資料寫入目標系統。目標系統通常是資料倉儲(Data Warehouse,如 BigQuery、Snowflake、Redshift)、資料湖(Data Lake,如 S3 + Delta Lake 或 Apache Iceberg)、特徵儲存(Feature Store,如 Feast、Vertex AI Feature Store),或向量資料庫(Vector Database,如 Pinecone、Weaviate、pgvector)。載入策略分為完全替換(Full Replace,每次全量覆寫目標)、增量附加(Append Only,只新增不刪改,適合事件日誌)、Upsert(根據主鍵更新已存在的記錄或新增不存在的記錄),以及 Slowly Changing Dimension(SCD,追蹤歷史變更,常用於維度表)。

ETL 與 ELT 的區別

傳統 ETL 先在中間層(ETL 伺服器)轉換後再載入目標系統,適合轉換計算量大且目標系統儲存成本高的時代。現代雲端資料倉儲(如 BigQuery、Snowflake)儲存廉價、計算彈性強,催生了 ELT(Extract, Load, Transform)模式:先將原始資料直接載入資料倉儲,再在倉儲內以 SQL 或 dbt(Data Build Tool)進行轉換。ELT 的優勢是保留原始資料便於回溯,轉換邏輯以 SQL 版本控制,擴充性更強。

在 AI 管線中的角色

ETL 是 MLOps 管線的上游基礎。在模型訓練階段,ETL 管線負責將散佈在各系統的訓練資料彙整、清洗並格式化為模型訓練所需的格式(如 Parquet、TFRecord)。在 RAG(Retrieval-Augmented Generation)架構中,ETL 負責將知識庫文件擷取、分段、向量化後載入向量資料庫,供 LLM 即時檢索。在模型監控階段,ETL 持續從生產系統收集預測日誌、用戶反饋與資料飄移指標,觸發模型再訓練。ETL 管線的健壯性直接決定了整個 AI 系統的資料鮮度與可靠性。

在 iPAS 考試中的考點

ETL 在 iPAS AI 應用規劃師初級與中級考試中均有出現,考點集中在理解 ETL 三個階段的職責分工、識別常見資料品質問題(缺失值、重複值、格式錯誤)及其對應的 Transform 處理策略,以及了解 ETL 在 AI 資料管線中的位置(位於資料收集與模型訓練之間)。考生還需理解 ETL 失敗對下游模型品質的影響,即「Garbage in, Garbage out」的具體含義。

常用工具

在實務工具選型上,批次 ETL 常用 Apache Airflow(工作流排程)+ dbt(轉換)+ Fivetran/Airbyte(連接器)。串流 ETL 常用 Apache Kafka + Apache Flink 或 Spark Streaming。雲端原生方案有 AWS Glue、Google Dataflow、Azure Data Factory。在 AI 管線中,Hugging Face Datasets、LangChain Document Loaders 與 LlamaIndex 的 Data Connectors 扮演了輕量 ETL 的角色,專門處理 LLM 所需的文字資料載入與分段。

常見問題