首页/数据/数据工程与 ETL 速查/ETL 与 ELT 对比与选型
本包目录(311 条)
管道基础52 条
Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条CDC 与同步53 条

ETL 与 ELT 对比与选型

ETL 先转换后加载、转换在独立引擎完成;ELT 先把原始数据装进目标库再转换,转换下推到数仓算力。选型看目标库算力、数据形态与团队 SQL 能力。

ETLExtract-Transform-Load,转换在独立引擎
ELTExtract-Load-Transform,转换在目标库
主流形态云数仓/湖仓上 ELT + 分层 SQL 较常见

对比维度

维度ETLELT
转换位置独立计算引擎(如 Spark 作业)目标数仓内(SQL 执行)
对目标库要求较低,只承接转换结果较高,需要充足算力与并发
原始数据常被过滤/聚合后丢弃原件先入 ODS,可追溯
典型工具DataX、Spark、Informaticadbt、Flink SQL、数仓内调度 SQL

两条路径示意

两条路径示意
ETL:源库 → 抽取并转换 → 入仓
ELT:源库 → 原样入 ODS → SQL 逐层加工 → ADS
ELT 不等于不需要转换设计:分层、口径、幂等仍要规划,只是执行位置后移。

易错点

  • 生产库直接做大范围 SELECT 会拖慢业务,走从库或限流分批
  • 把 ETL 任务写成全量覆盖,数据量上来后窗口会很快跑不完

数据来源与参考

  • Kimball《The Data Warehouse Toolkit》第 3 版 ETL 设计章节
  • dbt 官方文档:What is ELT
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌