我想将对配置表的更改传递给Kafka。
我有一个包含100,000行的Postgres表,通常一天仅更改100-500行,但是在极少数情况下,一次交易中所有10万行都可以更改。该表包含一个ID字段和一个大约10,000个字符长的JSON字段。
我想将完整的JSON字符串写到Kafka以便更改行。我读到有3个主要选项
1)可以读取WAL并写入Kafka的实用程序
2)将写入Kafka的触发器
3)定期执行SQL作业,该作业将检查每行的时间戳,并将自上次检查以来已更改的行写入Kafka,并将时间戳记在“已处理”字段中
A)选项1的缺点是我不控制Kafka消息的格式+如果更新时我没有与Kafka的连接该怎么办(我不希望仅因为Kafka而回滚)
B)选项2的缺点是放慢插入和更新的速度
C)选项3的缺点是,即使间隔10到20秒没有变化,我也需要不断检查是否有变化。
您会推荐哪个选项?
当前,我倾向于选择选项3,但需要找到解决方案
1)如何“唤醒”并搜索已修改的行,而不是每隔10到20秒不断检查和比较表中所有行的日期。
2)如何有效地将JSON复制到Kafka并将时间戳记在“已处理”列中?我可以在一个事务中完成它而不必长时间锁定整个表吗?
谢谢