Kafka 连接 jdbc 源返回 0 条记录

Posted

技术标签:

【中文标题】Kafka 连接 jdbc 源返回 0 条记录【英文标题】:Kafka connect jdbc source returns 0 record 【发布时间】:2021-08-23 15:48:20 【问题描述】:

尽管表 news 有超过 65,000,000 条记录,但我在 Kafka 主题中看不到任何记录。 连接器配置:

curl -X POST http://localhost:8083/connectors -H "Content-Type: application/json" -d '
        "name": "news_fetcher",
        "config": 
                "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
                "connection.url": "jdbc:mysql://MY-SERVER/DATABASE",
                "connection.user": "user", 
                "connection.password": "HIDDEN",
                "mode":"bulk",
                "table.whitelist": "news",
                "topic.prefix": "news_"
                
        '

此消息一直打印在工作节点中:

[2021-06-06 11:20:29,355] INFO Begin using SQL query: SELECT * FROM `DATABASE`.`news` (io.confluent.connect.jdbc.source.TableQuerier:164)
[2021-06-06 11:20:31,519] INFO WorkerSourceTaskid=news_fetcher-0 Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask:424)
[2021-06-06 11:20:31,521] INFO WorkerSourceTaskid=news_fetcher-0 flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:441)

在切换到mysql 之前,我对sqlite 进行了测试,一切正常。知道如何解决吗?

【问题讨论】:

【参考方案1】:

日志说它正在运行查询,并且您没有收到有关缺少 mysql 驱动程序或某些错误版本的错误,因此我建议首先修改 log4j 属性以获取更多 DEBUG 日志。

其次,尝试限制每个批量查询的行数。特别是因为批量模式会不断地将数据上传到主题。

否则,使用不同的模式值,或者如果您想对表进行快照并获取正确的 CDC Kafka 记录,请切换到 Debezium

【讨论】:

以上是关于Kafka 连接 jdbc 源返回 0 条记录的主要内容,如果未能解决你的问题,请参考以下文章

Kafka JDBC 源连接器插入或更新

提取和转换 jdbc sink 连接器的 kafka 消息特定字段

Spark Streaming通过JDBC操作数据库

使用 Kafka Connect API JDBC Sink 连接器示例到 Oracle 数据库的 Kafka 主题

简看线程池原理

tdengine jdbc restful接口返回值最大只有10240条