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 子句。