CDC同步技术

Dcr 1年前 ⋅ 1175 阅读

概念-CDC(Change Data Capture)变化数据捕捉

变更数据捕获只会捕获数据中的变化,这是复制数据的 ETL 模式之一。它是一种确定我们感兴趣的数据的机制,即跟踪源数据库中的更改并将其应用于目标数据库或数据仓库。并且在目标数据库或数据仓库中,我们可以进行所有类型的分析、报告生成等,甚至不会影响源数据库的性能。 CDC 的本质——通过捕获数据操作语言 (DML) 更改(插入/更新/删除)的事实和更改的数据本身来为用户表提供历史更改信息。CDC 以可以在上游数据系统中复制的形式提取它们。

CDC变化数据捕获的方法

  • 时间戳方法:需要源系统有相应的数据列表示最后的数据变化。

  • 快照方法:可以使用数据库系统自带的机制实现,如Oracle的物化视图技术,也可以自己实现相关逻辑,但会比较复杂。

  • 触发器方式:是关系数据库系统具有的特性,源表上建立的触发器会在对该表执行insert、update、delete等语句时被触发,触发器中的逻辑用于捕获数据的变化。

  • 日志方式:可以使用应用日志或系统日志,这种方式对源系统不具有侵入性,但需要额外的日志解析工作。

分类

基于时间戳,触发器,快照的CDC具有侵入性 基于日志的CDC无侵入性

例子

MySQL+Elasticsearch的组合架构,Elasticsearch的数据通过MySQL的binlog来同步,binlog就是MySQL的CDC技术。

全部评论: 0

    我有话说: