首页/数据/数据工程与 ETL 速查/CDC 落 Kafka 的主题设计
本包目录(311 条)
管道基础52 条Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条
CDC 与同步53 条

CDC 落 Kafka 的主题设计

CDC 落到 Kafka 常按一表一主题(Debezium 默认命名为 <topic.prefix>.<库>.<表>),消息 key 用主键保证同键分区有序;表多时可路由合并主题,高变更量表按峰值吞吐规划分区数,需要“每键最新值”语义的主题可评估 compact 清理策略。

主题与消息结构示意

主题与消息结构示意
topic: db1.app.orders
  key   = order_id
  partition = hash(key) % partitions
  value = { before, after, op, source }
命名topic.prefix + 库名 + 表名(可配置路由改写)
key表主键:同键消息落到同一分区,保持有序
分区数按峰值写入与下游并行度规划,避免频繁扩容
清理策略日志型 append;需要压缩留存时评估 compact
大库全表同步会产生大量小主题:先用白名单收敛范围,再规划分区与容量。

易错点

  • 按库单主题混放多表,下游解析复杂且主键有序性被稀释
  • 分区数估算过小,业务高峰时单分区成为吞吐瓶颈

数据来源与参考

  • Debezium 官方文档(Topic naming 与 routing)
  • Kafka 官方文档(Topic compaction)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌