我目前正在使用Kafka JDBC连接器来轮询Oracle数据库中的记录。连接器属性设置为使用时间戳模式,我们在属性中提供了一个简单的选择查询(不使用where子句) - 根据我的理解,这应该有效。
然而,当前实例化连接器时,我可以看到初始查询确实提取了它应该的所有记录,并将它们发布到Kafka使用者 - 但是没有拾取任何对oracle db的新提交而且连接器只是坐着轮询而不查找任何新信息,并保持其偏移量。
连接器中没有抛出任何异常,除了它没有在db中获取新提交之外没有任何问题的指示。
有一点需要注意的是,我无法证明这一点有所不同,因为oracle db中的字段都是可空的。但我已经测试了为时间戳字段更改它,它没有任何影响,并继续相同的行为。我也在批量模式下进行了测试,它运行正常并且确实提取了新的提交,但我无法使用批量模式,因为我们无法复制系统的记录。
有没有人知道为什么连接器无法为时间戳模式选择新的提交?
答案 0 :(得分:0)
您的属性文件是什么样的?您需要确保使用递增列或时间戳列。 如果您使用的是时间戳列,是否会在提交时更新? 关于空值,您可以调整查询以将空列合并为值。或者,我认为有一个设置允许可以为空的列。