流处理与 Reverse ETL
实时管道、CDC、reverse ETL 场景。
30 分钟
流处理与 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 实验见 。数据工程 track 不要求上线 CDC,但应 从 变更到 mart 的实时链路。