本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用更改数据捕获(CDC)迁移数据
如果您已经熟悉如何使用 Debezium
Debezium Connector for Apache Cassandra
要解决任何潜在的数据一致性问题,您可以使用 Amazon MSK 实施一个流程,使用者在该流程中将 Cassandra 中的键或分区与 Amazon Keyspaces 中的键或分区进行比较。
要成功实施此解决方案,我们建议考虑以下几点。
如何解析 CDC 提交日志,例如,如何删除重复的事件。
如何维护 CDC 目录,例如,如何删除旧日志。
如何处理 Apache Cassandra 中的部分故障,例如,如果三个副本中只有一个副本的写入操作成功。
如何处理资源分配,例如增加实例的大小,以满足节点上的 CDC 进程对额外的 CPU、内存、磁盘和 IO 的要求。
这种模式将来自 Cassandra 的更改视为“暗示”,即密钥相比之前的状态可能发生了变化。要确定是否有更改要传播到目标数据库,您必须首先使用 LOCAL_QUORUM
操作从源 Cassandra 集群读取最新记录,然后将其写入 Amazon Keyspaces。
如果是范围删除或范围更新,则可能需要对整个分区进行比较,以确定哪些写入或更新事件需要写入到目标数据库。
如果写入并非幂等性的,则在写入 Amazon Keyspaces 之前,您还需要将写入内容与目标数据库中已有的内容进行比较。
下图显示了使用 Debezium 和 Amazon MSK 的 CDC 管道的典型架构。
