繁体   English   中英

Kafka 连接 JDBC 源连接器不起作用

[英]Kafka connect JDBC source connector not working

大家好,我正在使用用于 postgres 的 Kafka JDBC Source 连接器。 以下是我的连接器配置。 一些如何它没有带来任何数据。 这个配置有什么问题?

{
    "name": "test-connection",
    "config": {
       "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
       "mode": "timestamp",
       "timestamp.column.name": "TEST_DT",
       "topic.prefix": "test",
       "connection.password": "xxxxxx",
       "validate.non.null": "false",
       "connection.user": "xxxxxx",
       "table.whitelist": "test.test",
       "connection.url": "jdbc:postgresql://xxxx:5432/xxxx?ssl=true&stringtype=unspecified",
       "name": "test-connection"
},
  "tasks": [],
  "type": "source"
}

我需要创建主题还是自动生成主题?

我希望数据根据示例流动,但数据没有流动。以下是我在 kafka 连接中看到的日志。 但是,没有数据流入。

日志

[2019-07-07 20:52:37,465] INFO WorkerSourceTask{id=test-connection-0} 提交偏移量 (org.apache.kafka.connect.runtime.WorkerSourceTask) [2019-07-07 20:52:37,465]信息 WorkerSourceTask{id=test-connection-0} 为偏移提交刷新 0 条未完成的消息 (org.apache.kafka.connect.runtime.WorkerSourceTask)

我需要创建主题还是会自动生成主题?

它会自动使用您在"topic.prefix": "test"设置的“ test”前缀自动生成"topic.prefix": "test"

因此您的主题称为“ testtest-connection”或“ testtest.test”

您可能使用的是Avro模式,如果这样,则必须使用Avro使用者使用该主题。

我遇到了完全相同的问题并且日志中没有错误,尽管我在 postgres 中添加/修改了记录并且它没有发送任何消息。 在 INFO 模式下收到与您提到的相同的日志消息。 在这里我解决了它,可能其中一个或所有这些可能导致此问题。 所以请检查你最后的问题是什么。 如果它解决了您的问题,请接受它作为答案。

  1. "table.whitelist" : "public.abcd" <-- 这个属性确保你也明确给出模式名称,例如我给出了“public”,因为我的“abcd”表在这个模式中。

  2. 通常,当我们运行(例如通过 Docker)时的数据库时区处于 UTC 模式,如果您处于 UTC 模式,那么在内部查询数据时,它会将过滤条件设置为过滤掉您的数据。 克服最好的方法是您的时间戳列应该是“带时区的时间戳”,这解决了我的问题。 我所做的另一个变化是我插入了数据并将此列的值指定为“now() -interval '3 days'”,以确保数据是旧的并立即流向主题。 好吧,最好是用时区而不是这个 hack 给出时间戳。

  3. 最后,另一种可能的解决方案可能是在给连接器配置时告诉您 postgres db 是什么时区。 你可以谷歌一下房产。 由于第 2 点解决了我的问题,所以我没有尝试这个。

    CREATE TABLE public.abcd (id SERIAL PRIMARY KEY, title VARCHAR(100) not NULL, update_ts TIMESTAMP with time zone default now() not null );

我的配置有效。 万一需要。

{
  "name": "jdbc_source_connector_postgresql_004",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "connection.url": "jdbc:postgresql://192.168.99.116:30000/mydb",
    "connection.user": "sachin",
    "connection.password": "123456",
    "topic.prefix": "thesach004_",
    "poll.interval.ms" : 1000,
    "mode":"timestamp",
    "table.whitelist" : "public.abcd",
    "timestamp.column.name": "update_ts",
    "validate.non.null": false,
    "transforms":"createKey,extractInt",
    "transforms.createKey.type":"org.apache.kafka.connect.transforms.ValueToKey",
    "transforms.createKey.fields":"id",
    "transforms.extractInt.type":"org.apache.kafka.connect.transforms.ExtractField$Key",
    "transforms.extractInt.field":"id"
  }
}

-$achin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM