← AI 术语表

AI 术语表 · 进阶 · 数据工程

CDC

CDC(Change Data Capture,变更数据捕获)是一种从数据库中只挑出新增、修改或删除的数据,并立即传递给其他系统的技术。它不必每次都整体复制全部数据,而是只追踪“发生变化的部分”。

关于这个术语
难度
进阶 · 需要了解内部原理的专业术语
加入时间
2026-10-09
通俗解释 这类似于不必每天从头抄写一遍银行存折,而是只看新打印出的收支记录来更新记账本。不过,就像存折记录顺序错乱或有遗漏时记账本也会出错一样,CDC 也必须按顺序、无遗漏地接收变更记录。

工作原理

大多数数据库为应对故障,会保留按顺序记录所有变更的日志(事务日志)。基于日志的 CDC 读取这一日志,将其转换为“新增了这一行、这个值被修改、这一行被删除”之类的变更事件并输出。事件通常经由消息队列或事件流,传递到数据仓库、搜索索引、缓存等多个地方。无法使用日志时,也会采用定期查询“最后修改时间”列或设置触发器的方式,但容易漏掉删除操作,或给源数据库带来负担。

基于日志的 CDC 流程服务应用 → 运营数据库(写入); 运营数据库 → 事务日志(记录); 事务日志 → CDC 连接器(读取); CDC 连接器 → 事件流; 事件流 → 数据仓库; 事件流 → 搜索索引; 事件流 → 缓存、向量数据库服务应用下单、修改、删除运营数据库事务日志按顺序记录变更CDC 连接器日志 → 变更事件事件流数据仓库搜索索引缓存、向量数据库写入记录读取
基于日志的 CDC 流程 读取源数据库的变更日志并转换为事件,再经由事件流分发到多个目标系统。

为什么重要

要把运营数据库的内容快速反映到分析、检索、AI 系统中,每次整体复制的方式既慢又成本高。使用 CDC 只迁移变化的部分,对源数据库的负担小,分析数据也不会延迟数小时,而是几乎实时跟进。在 RAG 系统中,文档被修改时只对相应部分重新嵌入并更新向量数据库,用的也是同样的原理。归根结底,它起到“让多个系统看到同一份最新数据”的纽带作用。

注意事项

源表的结构(模式)发生变化时,接收端也需要随之调整,因此需要数据契约之类的约定。事件可能重复或乱序到达,因此接收端的设计要保证同一事件处理两次结果也相同。首次连接时,需要先将现有数据整体复制一次(快照),再接上此后的变更。包含个人信息的变更也会原样流转,因此在传递环节要一并考虑去标识化和权限管理。

CDC 方式比较

基于日志读取事务日志

  • 对源数据库负担小
  • 连删除也能无遗漏捕获
  • 需针对各数据库配置

基于查询定期查询修改时间列

  • 配置简单
  • 容易漏掉删除
  • 查询频繁时增加数据库负担

基于触发器变更时执行触发器

  • 在数据库内部直接捕获
  • 影响写入性能

공통 都是只迁移“变化部分”的方法

优缺点取决于从哪里获知变更。

示例

给网上商城的订单数据库接入 CDC 后,每当顾客下单或配送状态发生变化,这些变更都会流入事件流。接收这些事件,可以几乎实时地更新数据仓库中的销售仪表盘,同时让商品搜索索引和客服聊天机器人参考的数据也保持最新。开源连接器或云端的数据复制服务被广泛用于这类用途。

相关术语