未提供查询时,Kafka mysql 连接器配置文件不起作用
Posted
技术标签:
【中文标题】未提供查询时,Kafka mysql 连接器配置文件不起作用【英文标题】:Kafka msql connector configuration file doesnot work when query is not provided 【发布时间】:2021-03-09 00:21:22 【问题描述】:我有一个 Kafka 的配置文件,它可以很好地从 mysql 数据库中读取数据
name=local-jbdc
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.url=jdbc:mysql://localhost:3306/book
connection.user=root
connection.password=newpass
topic.prefix=quickstart-events
mode=incrementing
incrementing.column.name=__id
query=select * from book_table
offset.flush.timeout.ms=5000
buffer.memory=200
poll.interval.ms=10000
tasks.max=1
现在,当我取出 query
并提供 table.whitelist
时,它不会读取任何内容。甚至没有错误。
配置如下图
name=local-jbdc
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.url=jdbc:mysql://localhost:3306/book
connection.user=root
connection.password=newpass
topic.prefix=quickstart-events
mode=incrementing
incrementing.column.name=__id
table.whitelist=book_table
offset.flush.timeout.ms=5000
buffer.memory=200
poll.interval.ms=10000
tasks.max=1
谁能帮我理解这个问题的根本原因。另外,我将如何为多个表执行增量模式。
编辑
当我用键盘上的 Ctrl+C 停止 kafka 时
有这样的日志出现
[2020-11-30 12:35:38,057] INFO [ReplicaManager broker=0] Shut down completely (kafka.server.ReplicaManager)
[2020-11-30 12:35:38,058] INFO Shutting down. (kafka.log.LogManager)
[2020-11-30 12:35:38,106] INFO [ProducerStateManager partition=connect-status-4] Writing producer snapshot at offset 394 (kafka.log.ProducerStateManager)
[2020-11-30 12:35:38,158] INFO [ProducerStateManager partition=__consumer_offsets-18] Writing producer snapshot at offset 1 (kafka.log.ProducerStateManager)
[2020-11-30 12:35:38,219] INFO [ProducerStateManager partition=quickstart-eventsbook_table-0] Writing producer snapshot at offset 19645 (kafka.log.ProducerStateManager)
[2020-11-30 12:35:38,239] INFO [ProducerStateManager partition=quickstart-book_table-0] Writing producer snapshot at offset 2652 (kafka.log.ProducerStateManager)```
【问题讨论】:
日志中有什么有趣的吗? 日志是干净的。您是否知道发生此类问题的任何情况。或者是因为我在独立模式下运行!或者有没有其他的配置方法我可以写来让它工作? @IskuskovAlexander 对此有任何想法 你能尝试在分布式模式下运行吗? @IskuskovAlexander 这几乎是一样的。当提供查询参数时,它会提取数据,但当没有查询参数时,它会保持不变。 【参考方案1】:问题很简单。当提供 table.whitelist 时,连接器会创建一个主题,并将 topic.prefix
附加到表名。在我的例子中,它创建了一个名为 quickstart-eventsbook_table
的新主题。提供查询时,topic.prefix
也被视为发送数据的主题。
【讨论】:
以上是关于未提供查询时,Kafka mysql 连接器配置文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章