当前位置: 首页 > 知识库问答 >
问题:

Debezium初始数据快照和相关实体顺序

陶星渊
2023-03-14

首次启动后,Debezium将对已经存在的数据进行初始数据快照。

假设我有两个表-AB。表B对A具有not nullFK约束。根据Debezium的默认方法--Debezium将为表AB中的数据创建两个单独的Kafka主题。

根据我的理解,我很有可能尝试在新表B中创建记录,而适当的记录a将不存在于适当的新表a中。这样我就会遇到约束冲突错误。

例如-我是否可以使用Debezium主题路由https://Debezium.io/documentation/reference/configuration/topic-routing.html来解决这样的问题?我可以潜在地配置主题路由,将所有依赖的事件(来自上面示例中的表A和表B)发送到同一个主题。对于具有单个分区的Kafka主题,必须以正确的方式对所有事件进行排序。它是否可以工作,这样我将有一个正确的相关实体顺序初始快照数据加载?

共有1个答案

史昊焱
2023-03-14

IBM IDR(Data Replication)产品通过一个只允许一次语义的解决方案解决了这一问题,并重新创建事务内操作的排序和事务的排序。

Kafka内置的精确一次特性有一些性能以外的限制,您无法通过操作来获得事务的重新排序,这对于使用引用完整性约束等应用来说是很重要的。

所以在我们的产品中,我们有一个适当的和穷人的方法来解决问题。可怜的人是把所有表的所有数据发送到一个主题。显然这是次优的,但我们的产品将从单个生产者产生操作顺序的数据,如果你这样做的话。您可能需要幂等性来避免批出现混乱。

如果这是一个非关键项目,您可能会发现下面的讨论对于我们如何交付您所寻找的特性很有用。

https://www.confluent.io/kafka-summit-SF18/a-solution-for-leveraging-kafka-to-provide-end-to-end-acid-transaction/

这是我们的文件供参考。

 类似资料:
  • 根据Debezium SQL Server连接器文档,初始快照仅在连接器首次运行时激发。然而,如果我删除连接器并创建一个新的但具有相同的名称,初始快照也不能工作。这是故意的还是已知的问题?有什么需要帮忙的吗

  • 我正在使用MongoDB atlas和一个分片副本集集群,以及文档中描述的Debezium MongoDB连接器。 这是我当前配置的样子(运行独立设置): 我可以在Kafka主题中接收CDC事件,但文档中描述的初始快照从未制作过。我尝试了另一种导致创建和使用完全不同的主题集,但结果相同。 MongoDB oplog有大约200万行,kafka主题总共几乎没有几千条消息。 进一步挖掘时,连接器似乎记

  • 我正在使用Debezium connector for MySQL和Kakfa。因此,我的模式更改和数据更改进入Kafka主题。 我想看看下面的行为是否可以在没有人工干预的情况下实现。 我希望只有一个表作为快照。然后,我希望多个表被监控,以进行CDC。 https://debezium.io/documentation/reference/stable/connectors/mysql.html似

  • 问题内容: 我试图将JVM中的初始化和实例化过程组合在一起,但是JLS在一些细节上有点笨拙,因此,如果有人介意清理一些细节,将不胜感激。到目前为止,这是我能够弄清楚的。 初始化 递归初始化该类及其接口的静态最终变量,这些变量是编译时间常数。 从递归中退出,按文本顺序处理静态块和静态字段。 实例化 递归初始化作为编译时间常数的类的最终实例变量。 按文本顺序退出递归处理非静态块和实例字段,并在返回时将

  • 我有这样的实体 我想在我的jsp中显示查询的结果,所以我用 fetch 发出请求来获取所有相关实体,以避免延迟初始化异常。 我的请求基于我的ENTITY_1(.) 但是我使用分页,每页只有10个结果,所以读取会降低我的请求速度,所以我使用了< code>@BatchSize(size=10)。 我的问题是如何在我的jsp中显示相关实体的所有数据,因为我得到了懒惰的初始化异常。 我的 jsp 是这样

  • 我有跟风问题 我有一个Spring数据Rest的基本配置(没有花哨,没有自定义)。 使用spring数据rest webmvc 2.0.0版本和spring数据jpa 1.5.0版本 A类 B类 存储库A 存储库B 当我拯救一个实体时工作正常,但我不知道如何拯救一段关系 e、 g.使用http将“A”保存在“B”中 这是我从这个答案中尝试的最后一件事https://stackoverflow.co