我们正在尝试使用Confluent JDBC-Source connector将数据从数据库表复制到Kafka。问题在于该表中的数据每天晚上都准确更新一次,因此我们想在表更新后复制最新数据,例如,我们希望连接器每天早上7点运行。那可能吗?
documentation仅显示轮询间隔属性,如果将poll.interval
设置为24小时,则只能使用该属性,但是我们必须在上午7点启动连接器,这并不是真的优雅的解决方案。有更好的方法吗?
谢谢!
答案 0 :(得分:0)
Kafka和Kafka Connect并不是真正为“批处理”设计的。也就是说,您可以以批处理驱动的方式使用它,但是将其集成到您描述的菊花链式工作流中的概念并不是其固有的。
JDBC连接器的轮询间隔为,因此您可以定期检查新数据,其速率可以在源系统上的负载(来自轮询)与已接收数据的延迟之间达到平衡。
为什么不将连接器设置为每隔几分钟(或每小时几次;无论如何)进行轮询,然后一旦有新数据可用,便将其拉入。没有新数据,也没有新记录。
或者,您可以使用Kafka Connect REST API以编程方式启动和停止连接器。加载之前,请暂停连接器。加载后,恢复连接器。如果您使用暂停/恢复,请注意,您仍然需要适当设置轮询间隔。您也可以每次简单地删除并重新创建它。
您可能还会考虑基于日志的CDC方法(pros & cons)。