实时主动数据仓库中的变化数据捕捉(CDC)方法差异性对比以及适用场景:
变化数据捕捉方法对比 | |||||
---|---|---|---|---|---|
CDC方法 | 是否支持实时变化数据捕捉 | 适用场合 | 优点 | 缺点 | |
基于表记录的方法 | 记录所有变化 | 否 | 有必要对数据源中发生的所有变化进行记录 | 所有变化;加快数据抽取速度 | 额外负担;存储开销 |
记录最后变化(时间戳) | 否 | 只需要记录最后一次变化 | 相对上一个方法,减小了负担和空间开销 | 新字段会增加存储开销;删除操作必须时逻辑的 | |
混合式 | 否 | 有必要对所有更新操作记录,只需对最后一次插入和删除操作进行记录 | 相对上两个,减小了负担和存储开销 | 更新操作时有1的缺点,插入删除操作时有2的缺点 | |
复制 | 事务复制 | 是 | 数据源和目标DBMS相同或者存在支持异构复制的第三方工具 | 保存副本;独立性;加速抽取 | 源与目标必须相同;存储需求;需要DBA控制和管理在复制过程中可能出现的冲突 |
快照复制 | 否 | ||||
触发器 | 是 | DBMS具有针对插入、更新和阐述的触发器,源与目标DBMS相同 | 加速数据抽取 | 对操作系统有较大负担;降低数据库性能 | |
数据库快照比较 | 基于批量拷贝 | 否 | 数据源DBMS不支持触发器/没有事务日志记录/无法解析日志记录 | 操作系统没有额外负担;加速数据抽取 | 无法获得所有变化 |
基于快照复制 | 否 | 源与目标要相同;无法获得所有变化;复制过程可能出现冲突 | |||
基于日志的变化数据捕捉 | 是 | 对所有变化进行记录,具备事务日志控制机制,可以解析事务日志 | 操作系统没有额外负担;减小了存储和处理开销;加速了数据抽取 | DBA必须控制事务日志记录区域的尺寸;需要额外的日志级别 | |
刷新表 | 否 | 重新建设实时仓库时 | 不需要在数据源执行任何数据变化捕捉 | 耗费大量时间;无法记录过程变化;丢失仓库的历史信息 |