运行 Confluent JDBC 连接器在特定时间而不是使用轮询间隔?

Run Confluent JDBC Connector at specific time instead of using polling interval?

我们正在尝试使用 Confluent JDBC-Source connector 将数据从数据库 table 复制到 Kafka 中。问题是 table 中的数据每晚更新一次,所以我们想在 table 更新后复制最新数据,例如我们希望连接器到 运行每天早上7点。那可能吗?

documentation 仅显示轮询间隔 属性,如果我们将 poll.interval 设置为 24 小时,我们只能使用它,但是我们必须在以下时间启动连接器早上 7 点,这并不是一个优雅的解决方案。有更好的方法吗?

谢谢!

Kafka 和 Kafka Connect 并不是真正为 "batch" 设计的。也就是说,您可以以批处理驱动的方式使用它,但是将它集成到您​​描述的那种菊花链工作流中的概念并不是它的本机。

JDBC 连接器的轮询间隔是为了让您可以定期检查新数据,其速度可以在源系统上的负载(来自轮询)与延迟之间取得平衡收到的数据。

为什么不将连接器设置为每隔几分钟(或每小时几次;随便)轮询一次,然后一旦有新数据可用,它就会将其拉入。没有新数据,就没有新记录。

或者,您可以使用 Kafka Connect REST API 以编程方式启动和停止连接器。在加载之前,暂停连接器。加载后,恢复连接器。如果您使用 pause/resume 请注意,您仍然需要适当地设置轮询间隔。您也可以每次都简单地删除并重新创建它。

您还可以考虑使用基于日志的 CDC 方法 (pros & cons)。