跳到主要内容
版本:3.x

变更数据捕获(CDC)

适用版本Cloud 功能TapData Cloud 为您提供了云端服务,适合需要快速部署、低前期投资场景,帮助您更好地专注于业务发展而非基础设施管理,注册账号即可领取免费的 Agent 实例,欢迎试用。企业版功能TapData Enterprise 可部署在您的本地数据中心,适合对数据敏感性或网络隔离有严格要求的场景,可服务于构建实时数仓,实现实时数据交换,数据迁移等场景。社区版功能TapData Community 是一个开源的数据集成平台,提供基础的数据同步和转换功能,可通过 Docker 一键部署,帮助您快速探索和实施数据集成项目。随着项目或企业发展,您可以平滑升级至 TapData Cloud 或 TapData Enterprise,以获得更多高级功能或服务支持。

变更数据捕获(Change Data Capture, CDC)是一种用于捕获并跟踪数据库中数据变化的方法,在数据同步和集成中起着关键作用,可用于实现增量数据同步。本文档将详细介绍 Tapdata 支持的各种 CDC 方法,帮助您了解其工作原理、优缺点,并提供具体的使用方法。

CDC 获取方法

获取 CDC

基于数据库日志 API 解析的 CDC 是一种常用的数据变更捕获技术,它通过读取和解析数据库的事务日志来捕获数据的增量变化。该日志是数据库管理系统用来确保数据完整性和恢复能力的关键组成部分,每个数据库的详细操作都会被记录在这些日志中。

以 MySQL 数据库为例,管理员可以通过修改数据库配置文件(mysql.cnf)来启用 Binlog,从而记录数据修改的所有操作,捕获数据的变化详情。

server_id         = 223344
log_bin = mysql-bin
expire_logs_days = 7
binlog_format = row
binlog_row_image = full

完成权限授予和数据源连接后,在 TapData 的任务配置中将其作为数据源即可实现全量+增量数据同步(默认)。

选择数据同步类型

CDC 方案对比

类别数据库日志 API数据库日志文件字段轮询触发器
可区分插入/更新操作
可监测删除操作
可实时采集✅(超高性能)
业务侵入性🟢 低🟢 低🔴 高🟡 中
DBA 运维成本🟡 中🔴 高(需额外部署组件)🟢 低🔴 高(触发器管理复杂)
系统开销成本🟢 低🟢 低🔴 高🔴 高

常见问题

  • 问:TapData 哪些数据源支持获取 CDC?

    答:具体见支持的数据源中的各表格,作为数据源时如支持增量则支持获取 CDC 信息。

  • 问:如果我的数据源支持获取 CDC,如何选择 CDC 的采集方式?

    答:为最大化提升兼容性和采集性能,TapData 支持下述 CDC 采集方式:

    • 基于数据库日志 API 解析:默认采集方式,绝大部分数据库均支持,受限于权限限制无法放开日志或某些 SaaS 类数据源,可选择字段轮询方式。
    • 基于数据库日志解析:目前仅 Oracle 和 Db2 数据源支持。
    • 字段轮询:可在 TapData 中配置数据转换任务时,为源节点设置增量同步方式。