【发布时间】:2020-12-06 23:11:31
【问题描述】:
第一次启动后,Debezium 将对已有数据进行初始数据快照。
假设我有两张桌子 - A 和 B。表 B 对 A 有 NOT NULL FK 约束。根据 Debezium 默认方法 - Debezium 将为来自表 A 和 B 的数据创建两个单独的 Kafka 主题。
据我了解,我很有可能会尝试在新表B 中创建记录,而适当的记录A 将不会出现在适当的新表A 中。这样我就会遇到违反约束的错误。
我是否需要使用一些内部 3rd 方缓冲区并自己组织插入接收器数据库的正确顺序,或者 Debezium 中有一些标准机制来处理这种情况?
例如 - 我可以使用 Debezium 主题路由 https://debezium.io/documentation/reference/configuration/topic-routing.html 来解决此类问题吗?我可以潜在地将主题路由配置为将所有相关事件(来自我上面示例中的表 A 和 B)发送到同一主题。对于具有单个分区的 Kafka 主题,必须以正确的方式对所有事件进行排序。它会起作用吗?这样我会为初始快照数据加载获得正确的相关实体顺序吗?
【问题讨论】:
标签: constraints cdc debezium