【问题标题】:How can we log the time it took to load a set of records from kafka topic onto database我们如何记录将一组记录从 kafka 主题加载到数据库所花费的时间
【发布时间】:2021-12-06 03:02:47
【问题描述】:

我正在使用 JDBC 接收器连接器将数据从 kafka 主题加载到 postgres。 在我的主题中,我有大约 10 万条记录。 现在需要知道我是否可以确定连接器何时开始加载记录并结束将所有这 10 万条记录加载到数据库中。

有可能吗?

【问题讨论】:

  • 一般来说,印度以外的人不会理解什么是“十万记录”。所以请尽量避免在这里使用印度语。

标签: apache-kafka apache-kafka-connect confluent-platform


【解决方案1】:

所有消息都带有时间戳,因此您可以保留消息的时间戳。 添加到您的配置中

...
"transforms": "timestamp",
"transforms.timestamp.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
"transforms.timestamp.target.type": "Timestamp",
"transforms.timestamp.field":"timestamp",
"transforms.timestamp.format": "yyyy-MM-dd HH:mm:ss"
...

您可能还需要将schema registry 配置为对应的value.converter

但它会为您提供有关消息出现在 kafka 中的时间的信息。如果您想知道写入数据库的时间,那么只需创建一个默认值 = now() 的附加字段。然后您将获得数据库中数据记录的最新信息。

【讨论】:

  • 嗨,@asanisimov 我不打算修改/更改表格。还有其他方法可以获取时间吗?
  • 那我不明白你说的“找出时间”是什么意思。由于您使用的是confluent-platform,因此您可以转到读取数据的主题并在`Consumption`选项卡中查看读取的开始时间,或查看连接器日志。
  • 对不起,我没有使用 confluent 平台,我使用的是 kafka,它是下载的 apache 站点并在 windows 上运行(.bat 文件)
猜你喜欢
  • 2021-09-02
  • 2016-08-23
  • 2013-09-17
  • 2014-02-20
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2019-07-04
相关资源
最近更新 更多