有没有办法使用 JDBC Sink Connector 更新现有字段值?

Is there a way to update with exising field value using JDBC Sink Connector?

我想实现页面浏览量。每次访问该页面时,都会向 Kafka 发布一个事件。该事件包括 pageId 和 Date。 我想使用 JDBC 连接器根据 pageId 和日期增加页数。

可以使用 JDBC 接收器连接器吗?如何进行?

是的,您可以将 insert.mode 设置为 upsertupdate 而不是默认值。

请记住,数据库查询将 覆盖 计数字段,而不是增加它(因为这不是 UPDATE 查询的工作方式),因此您必须 运行 一些其他进程将在写入数据库之前对总计数求和。

https://docs.confluent.io/kafka-connect-jdbc/current/sink-connector/sink_config_options.html#writes

https://rmoff.net/2021/03/12/kafka-connect-jdbc-sink-deep-dive-working-with-primary-keys/

您也可以从 Kafka 数据中完全删除计数,只需要 table 个“页面查看日志”,然后直接在数据库中 运行 SELECT date, page, COUNT(*) GROUP BY date, page;