【问题标题】:Confluent jdbc connector Cannot make incremental queries using timestamp columns融合的 jdbc 连接器无法使用时间戳列进行增量查询
【发布时间】:2019-05-13 17:15:18
【问题描述】:

连接器的加载:

{
  "name": "jdbc-source-test",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "connection.url": "jdbc:mysql://localhost:3306/test?user=root&password=password",
    "table.whitelist":"test",
    "mode": "timestamp",
    "timestamp.column.name":"create_time",
    "topic.prefix": "test-mysql-jdbc-",
    "name":"jdbc-source-test"
  }
}

将下一条消息放入日志:

[2018-12-12 17:33:14,225] ERROR WorkerSourceTask{id=jdbc-source-test-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:177)
org.apache.kafka.connect.errors.ConnectException: Cannot make incremental queries using timestamp columns [create_time] on `test`.`test` because all of these columns nullable.

我的建议不起作用,因为此列的类型为 bigint(20)。有什么解决方法吗? 汇合版本 - 5.0.1。

【问题讨论】:

  • 我认为消息的重要部分是:“因为所有这些列都可以为空”,那么表的 DDL 是什么,如果你这样做会发生什么专栏not null?
  • 它实际上被定义为非空。作为解决方法,建议在此列将被转换为时间戳的位置编写 VIEW
  • 如果你使用 Mysql 作为源,我可能会建议使用 Debezium 连接器而不是 JDBC

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


【解决方案1】:

我在 Postgresql 上遇到了同样的错误,并且在数据库中设置错误 NOT NULL 中提到的时间戳列修复了它。

另一种选择是在连接器配置中使用validate.non.null:false

validate.non.null:默认情况下,JDBC 连接器将验证 所有递增和时间戳表都没有为 列被用作它们的 ID/时间戳。

如果表没有,JDBC 连接器将无法启动。设置这个 为 false 将禁用这些检查。

【讨论】:

    【解决方案2】:

    解决此问题的简单方法,将 "validate.non.null": "false" 添加到配置中

    {
      "name": "jdbc-source-test",
      "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url": "jdbc:mysql://localhost:3306/test?user=root&password=password",
        "table.whitelist":"test",
        "mode": "timestamp",
        "timestamp.column.name":"create_time",
        "topic.prefix": "test-mysql-jdbc-",
    
    
         "validate.non.null": "false"
    
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 2014-08-11
      • 2019-11-08
      • 2020-10-11
      • 2019-09-28
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多