大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
流处理与 Reverse ETL
批处理 ETL 满足 T+1 报表;实时管道支撑监控、推荐、CDC 同步。Reverse ETL 则把数仓 mart 推回业务系统(CRM、广告平台)。
学习目标
- 区分批处理、微批与真流处理
- 理解 CDC 与 Kafka 在实时同步中的位置
- 了解 Reverse ETL 的典型场景与工具
实时 vs 批处理
| 模式 | 延迟 | 技术示例 |
|---|---|---|
| 批处理 | 小时~天 | Airflow + SQL |
| 微批 | 秒~分钟 | Spark Structured Streaming |
| 流处理 | 毫秒~秒 | Flink, Kafka Streams |
选型问:业务能否接受 T+1? CodeRoadMap 课程统计日报用批即可;「在线学习人数大屏」才需流。
CDC(Change Data Capture)
捕获源库 INSERT/UPDATE/DELETE,避免全表扫描:
MySQL binlog
→ Debezium Connector
→ Kafka Topic: db.coderoadmap.cf_user_progress
→ Flink / ksqlDB
→ staging 表 MERGE
Kafka 分区、消费组、lag 见 /tracks/kafka-essentials,尤其 kafka-consumer 与 kafka-delivery。
流处理组件(概览)
| 工具 | 说明 |
|---|---|
| Kafka Streams | JVM 内嵌,轻量 |
| Flink | 低延迟、状态管理强 |
| Spark Streaming | 微批,与批 SQL 统一 |
| ksqlDB | Kafka 上 SQL 流 |
Exactly-once 与幂等 sink 是难点;起步可 at-least-once + 下游 dedup。
Reverse ETL
传统:业务库 → 数仓 → BI
Reverse ETL:数仓 mart → SaaS(Salesforce、HubSpot、Google Ads)
| 场景 | 数据方向 |
|---|---|
| 用户分群同步 | mart high_engagement_users → 邮件工具 |
| 广告受众 | 聚合特征 → Meta Custom Audience |
| 运营看板 | 仍 BI;Reverse ETL 是 动作 不是 看 |
工具:Hightouch、Census、自建 Airflow API Operator。
与 CodeRoadMap
主站 API 仍以 MySQL 为准;Kafka 实验见 kafka-practice。数据工程 track 不要求上线 CDC,但应 画得出 从 cf_lesson 变更到 mart 的实时链路。
与路线图的关系
- /roadmaps/data-engineer — Streaming / Reverse ETL 节点
- /tracks/kafka-essentials — 流式基础设施
- de-ingestion — 批处理对照
练习
- 画 CDC:MySQL → Kafka → staging 的三步图
- 举 1 个适合 Reverse ETL 的 CodeRoadMap 假想场景
- 说明 lag 持续增大时可能的三类原因
小结
CDC + Kafka 做实时同步,Reverse ETL 把 mart 推回业务动作;批仍是基础,流是增量能力。 下一课综合练习。