Debezium postgres 增量快照性能问题

sha*_*sha 7 postgresql change-data-capture debezium

我正在尝试在最新的 debezium (1.7) 和 postgres (V13) 中使用 debezium增量快照。为了进行测试,我在一个表中填充了 1M 行,每行 4KB,带有一个 UUID 主键和 20 个 varchar 列。由于我只是想测量快照性能,因此表数据在测试期间不会改变

看起来增量快照比常规快照慢一个数量级。例如,在我的测试中,我观察到使用普通快照的速度为每秒 10,000 个更改事件。然而,我观察到增量快照的速度为每秒 500 个更改事件。

我尝试将其增加到incremental.snapshot.chunk.size10,000,但我没有看到对性能有太大影响。

我只是想确认这是否是已知/预期的问题,还是我做错了什么?

谢谢

小智 0

批量快照正在运行一致(阻塞)快照,这将允许最大吞吐量,同时还锁定源表。据我了解,这也意味着 Debezium 在快照完成之前不会处理 WAL 文件中的更多记录,从而导致 WAL 文件增长,并增加接收器中数据的延迟。它基本上会停止一切,直到表的批量下载完成,如果表很大(和/或您有多个表正在快照),这可能会成为问题。

增量快照以较小的批次(默认 1024 行)提取数据,从而允许锁定源表的时间更短。这还允许 Debezium 继续处理 WAL 文件中的数据,保持较小的大小和较低的延迟。由于此过程比批处理复杂得多,因此速度会慢得多。它使用DDD-3设计文档中的逻辑来处理这些数据,同时新数据继续流入。

我希望这有帮助。

Debezium 文档