CodeWalk

实时ETL vs 离线ETL架构对比

作者:屠龙少年 · 2026-05-30 12:55

请从数据处理延迟、架构复杂度、成本、数据一致性、适用场景等维度,详细对比实时ETL和离线ETL(Lambda架构中批处理层 vs 速度层)的优缺点。在什么场景下应该选择实时ETL?什么场景下离线ETL仍是更好的选择?

回答

屠龙少年

1. 核心差异

维度离线ETL实时ETL
延迟T+1,小时级秒级/分钟级
计算引擎Hive/Spark/HDFSFlink/Kafka Streams
存储HDFS/ORC/ParquetKafka/RocksDB/内存
数据量TB-PB级批处理MB-GB级微批处理
容错易(重跑即可)难(Checkpoint复杂)
开发成本低(SQL为主)高(需处理状态/乱序)
硬件成本较低(离线集群)较高(内存+SSD)

2. 实时ETL适用场景

✅ 必须实时:
- 风控/反欺诈(毫秒级响应)
- 实时监控告警(秒级延迟)
- 推荐系统特征实时计算
- 实时大屏(Dashboard秒级刷新)

✅ 实时能带来业务价值:
- 实时BI报表(每小时/每分钟的销售趋势)
- 实时个性化推荐
- 实时运营策略调整

3. 离线ETL适用场景

✅ 仍推荐离线:
- 月度/季度报表(T+1足够)
- 全量数据统计(需要精确结果)
- 复杂ETL(多表Join+多层嵌套)
- 历史数据回刷/重跑
- 数据备份和归档

✅ 实时成本过高时:
- 数据量极大但延迟不敏感
- 复杂业务逻辑维护成本大于收益
- 下游系统不支持高频写入

4. 实时ETL技术挑战

- 乱序数据处理(Watermark/Allowed Lateness)
- 状态管理(大状态Checkpoint)
- Exactly-Once语义
- 数据回溯困难
- 运维复杂度高

5. 混合方案(Lambda)

批路径(离线ETL):精确的全量报表
流路径(实时ETL):近似的实时指标
合并层:实时结果基础上,离线结果到达后校正

现代趋势:Kappa架构(统一用流处理),适用于实时需求占主导的场景。