Debezium 中初始快照事件的顺序
Order of inital snapshot events in Debezium
在我们的应用程序中,我们需要将某个 postgresql table 中的事件发布到 Kafka 中,因此我们决定使用 Debezium,但 运行 遇到以下问题:在 Kafka 中显示初始快照消息期间以意想不到的(从我们的角度来看)顺序。
事件的顺序对我们的应用程序至关重要,实际上它们必须按 table 的整数主键排序。
AFAIK 初始快照只是来自 table 的 SELECT,没有 ORDER BY。
那么有没有一种方法或解决方法可以使 Debezuim postgresql 连接器按特定顺序提取事件?
提前致谢!
无法保证事务日志中插入的顺序与自动生成的主键的顺序相同。高并发的情况下,顺序不同也是很正常的。
如果交易时间短,顺序不要太乱。
无论如何,在 PostgreSQL 方面您对此无能为力。
查看 connector docs 中的 snapshot.select.statement.overrides
属性。它允许您自定义用于特定表的 SELECT 语句,因此您可以附加所需的 ORDER BY 子句。
在我们的应用程序中,我们需要将某个 postgresql table 中的事件发布到 Kafka 中,因此我们决定使用 Debezium,但 运行 遇到以下问题:在 Kafka 中显示初始快照消息期间以意想不到的(从我们的角度来看)顺序。 事件的顺序对我们的应用程序至关重要,实际上它们必须按 table 的整数主键排序。 AFAIK 初始快照只是来自 table 的 SELECT,没有 ORDER BY。 那么有没有一种方法或解决方法可以使 Debezuim postgresql 连接器按特定顺序提取事件?
提前致谢!
无法保证事务日志中插入的顺序与自动生成的主键的顺序相同。高并发的情况下,顺序不同也是很正常的。
如果交易时间短,顺序不要太乱。
无论如何,在 PostgreSQL 方面您对此无能为力。
查看 connector docs 中的 snapshot.select.statement.overrides
属性。它允许您自定义用于特定表的 SELECT 语句,因此您可以附加所需的 ORDER BY 子句。