它是如何工作的? cdc是什么意思?


它是如何工作的? cdc是什么意思?

文章插图


从广泛意义上说 , 全球许多企业每天都需要通过频繁的数据批量处理与加载 , 来定期将数据从一个数据库迁移到另一个数据库(或数据仓库) 。这类定期批量加载的工作 , 往往既耗费时间 , 又会消耗原始系统的大量处理能力 。因此 , 管理员只能在业务运行的间歇期间运行数据的批量传输与复制作业 , 否则会产生严重的效率影响 。而显然 , 这与24x7的不间断业务需求是背道而驰的 。
近年来 , 变更数据捕获(Change Data Capture , CDC)已成为了在高速数据流通环境中 , 各种关系型数据库、云端数据库、以及数据仓库之间 , 进行低延迟、高可靠性且可扩展式数据复制的理想化解决方案 。
什么是变更数据捕获? CDC是指从源数据库捕获到数据和数据结构(也称为模式)的增量变更 , 近乎实时地将这些变更 , 传播到其他数据库或应用程序之处 。通过这种方式 , CDC能够向数据仓库提供高效、低延迟的数据传输 , 以便信息被及时转换并交付给专供分析的应用程序 。
在数据不断变化 , 且无法中断与在线数据库连接的情况下 , 对于各种时间敏感(time-sensitive)类信息的复制 , 往往也是云端迁移的重要组成部分 。与批量复制相比 , 变更数据的捕获通常具有如下三项基本优势:
  • CDC通过仅发送增量的变更 , 来降低通过网络传输数据的成本 。
  • CDC可以帮助用户根据最新的数据做出更快、更准确的决策 。例如 , CDC会将事务直接传输到专供分析的应用上 。
  • CDC最大限度地减少了对于生产环境网络流量的干扰 。
变更数据捕获的方法 目前 , 业界有多种CDC方法 , 可用于跟踪和传输变更的数据 , 您可以根据应用程序的实际要求 , 及其对于性能下降的容忍度 , 从中进行选取 。下面 , 我将向您介绍四种不同的CDC方法所涉及到的技术、工作原理、以及它们各自的优缺点 。
时间戳或版本号跟踪 数据库设计者可以在需要跟踪的数据表中 , 设定某一列来代表最后被修改的时间戳或版本号 。例如 , 我们通常可以将这些列命名为:LAST_UPDATE、DATE_MODIFIED、以及VERSION_NUMBER等 。那些在上一次数据捕获之后 , 增加了时间戳的任何行 , 都将被视为发生了修改 。而在基于版本号的跟踪方法中 , 变更一旦发生 , 所有具有最新版本号的数据 , 都被视为发生了修改 。
在实际应用中 , 您可以结合版本和时间戳两个维度 , 来跟踪数据库表中的数据 。例如 , 您可以设定一条逻辑--“捕获自2021年6月22日以来 , 相对于3.4版发生了变更的所有数据” 。
优点:
  • 简单易懂 。
  • 数据库设计者可以自定义应用程序的逻辑构建 。
  • 不需要任何外部的工具 。
缺点: