文章插图
从广泛意义上说 , 全球许多企业每天都需要通过频繁的数据批量处理与加载 , 来定期将数据从一个数据库迁移到另一个数据库(或数据仓库) 。这类定期批量加载的工作 , 往往既耗费时间 , 又会消耗原始系统的大量处理能力 。因此 , 管理员只能在业务运行的间歇期间运行数据的批量传输与复制作业 , 否则会产生严重的效率影响 。而显然 , 这与24x7的不间断业务需求是背道而驰的 。
近年来 , 变更数据捕获(Change Data Capture , CDC)已成为了在高速数据流通环境中 , 各种关系型数据库、云端数据库、以及数据仓库之间 , 进行低延迟、高可靠性且可扩展式数据复制的理想化解决方案 。
什么是变更数据捕获? CDC是指从源数据库捕获到数据和数据结构(也称为模式)的增量变更 , 近乎实时地将这些变更 , 传播到其他数据库或应用程序之处 。通过这种方式 , CDC能够向数据仓库提供高效、低延迟的数据传输 , 以便信息被及时转换并交付给专供分析的应用程序 。
在数据不断变化 , 且无法中断与在线数据库连接的情况下 , 对于各种时间敏感(time-sensitive)类信息的复制 , 往往也是云端迁移的重要组成部分 。与批量复制相比 , 变更数据的捕获通常具有如下三项基本优势:
- CDC通过仅发送增量的变更 , 来降低通过网络传输数据的成本 。
- CDC可以帮助用户根据最新的数据做出更快、更准确的决策 。例如 , CDC会将事务直接传输到专供分析的应用上 。
- CDC最大限度地减少了对于生产环境网络流量的干扰 。
时间戳或版本号跟踪 数据库设计者可以在需要跟踪的数据表中 , 设定某一列来代表最后被修改的时间戳或版本号 。例如 , 我们通常可以将这些列命名为:LAST_UPDATE、DATE_MODIFIED、以及VERSION_NUMBER等 。那些在上一次数据捕获之后 , 增加了时间戳的任何行 , 都将被视为发生了修改 。而在基于版本号的跟踪方法中 , 变更一旦发生 , 所有具有最新版本号的数据 , 都被视为发生了修改 。
在实际应用中 , 您可以结合版本和时间戳两个维度 , 来跟踪数据库表中的数据 。例如 , 您可以设定一条逻辑--“捕获自2021年6月22日以来 , 相对于3.4版发生了变更的所有数据” 。
优点:
- 简单易懂 。
- 数据库设计者可以自定义应用程序的逻辑构建 。
- 不需要任何外部的工具 。
- 给数据库增加了额外的开销 。
- 需要额外的CPU资源 , 来扫描表中的数据变更 , 并需要预留资源 , 以确保 LAST_UPDATE列能够可靠地追踪所有资源表 。
- 被删除的行不会存在于LAST_UPDATE中 。如果没有其他脚本来跟踪此类删除的话 , DML语句(例如“DELETE”)将不会被传递到目标数据库处 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 电脑打印照片怎么打印两寸 如何打印2寸照片
- 电脑定时关机如何解除 如何让电脑定时关机
- 爆料快速涨粉的3大秘诀 新手如何运营抖音好涨粉
- 怎么制作微信小程序 如何制作微信小程序
- 手机怎么下载两个微信 手机如何下载两个微信
- 微信怎么发高清视频 微信如何发高清视频
- 手机丢失如何追踪位置 手机丢了如何找回
- 高血压最怕的三种水果 如何预防高血压
- 不删除数据合并分区 硬盘如何合并分区
- 大学为什么禁止共享单车 共享单车如何使用