【问题标题】:Kafka Connect JDBC db.timezone configKafka Connect JDBC db.timezone 配置
【发布时间】:2020-10-23 13:04:10
【问题描述】:

我正试图围绕 db.timezone 属性如何在源连接器和接收器连接器上工作。

对于文档说的来源:

使用基于时间的条件进行查询时,连接器中使用的 JDBC 时区名称。默认为 UTC。

这实际上是什么意思?那应该设置为我的源数据库的时区吗?我有一个设置为东部时区的数据库。我需要将其设置为美国/东部吗?如果我不这样做,它会做什么?

在接收器方面,文档说:

插入基于时间的值时应在连接器中使用的 JDBC 时区名称。默认为 UTC。

这又是什么意思。它是否使用它将有效负载中的所有时间戳转换为您在此处提供的值?

我的具体问题是我的源数据库有东部时区,但我的接收器数据库设置为 UTC,我无法更改它。我应该如何定义这些属性。

此外,我认为这有点不相关,但我注意到在我的接收器一侧,时间戳没有所有小数。但是在双方都将时间戳列设置为时间戳(6)。然而,在接收端,小数点总是只有 3 位,其余 3 位都是 0。为什么会这样?

【问题讨论】:

  • 您引用了文档的哪一部分,关于什么产品或规格?提供链接。

标签: postgresql db2 timezone apache-kafka-connect


【解决方案1】:

看看源代码:

https://github.com/confluentinc/kafka-connect-jdbc/blob/master/src/main/java/io/confluent/connect/jdbc/source/JdbcSourceConnectorConfig.java#L805

了解您为 db.timezone 配置选项指定的值将如何被 kafka-connect-jdbc 连接器使用。

我假设您应该使用源连接器

db.timezone=US/Eastern

使用基于时间的 > 条件查询时连接器中使用的 JDBC 时区名称。默认为 UTC。 这究竟是什么意思?

db.timezone 设置在从不使用 UTC 时区存储日期/时间列的数据库中读取/写入数据时会派上用场。

由于您的接收器数据库使用UTC 时区,因此在您的 jdbc 接收器配置中没有与设置时区相关的其他设置。

【讨论】:

  • 我的数据库在美国/东部时间,我的程序在 CST 中运行。在 Kafka Source JDBC 连接器配置文件中更改 db.timezone=US/Eastern 之后。现在,我在 Kafka 主题中看到数据库中发生的变化。谢谢 Marius 的建议。
猜你喜欢
  • 1970-01-01
  • 2021-01-30
  • 2018-11-30
  • 2018-10-16
  • 2020-07-09
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
相关资源
最近更新 更多