我们使用 Qlik Replicate 将数据从 RDS Postgresql 复制到 Synapse。
此过程涉及逻辑复制槽,因此当我们开始复制时,槽大小以 MB 为单位,然后槽大小突然飙升至 GB,并以 1GB/min 的速度大幅增长
这个过程中有很高的交易表,每天~8000万笔交易。这张桌子每 5 分钟就会自动吸尘一次。
我们跳过了这个表以优化复制,但仍然存在延迟。
我们检查了目标,按照 azure 工程师的结论,一切都很好。
对于每个逻辑复制槽,我们都会有一个称为状态文件的文件,该文件存在于 /PGdata/pg_replslot/
此状态文件大小不会增加到指定值以上。我认为当发生非常大的事务时,walsender 进程会将重新排序缓冲区的内容序列化到 /PGdata/pg_replslot/