我正在使用Kafka Source JDBC connector
从mysql数据库表中读取数据,并将其发布到主题test-mysql-petai
。
数据库表具有2个字段,其中Id
是主键:
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
我需要id
字段的值作为主题的键。我尝试将转换添加到jdbc连接器属性。
JDBCConnector.properties:
name=jdbc-source-connector
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:mysql://127.0.0.1:3306/test?user=dins&password=pw&serverTimezone=UTC
table.whitelist=petai
mode=incrementing
incrementing.column.name=id
schema.pattern=""
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
topic.prefix=test-mysql-jdbc-
但是,当我使用使用者读取键和值时,会得到以下提示:
Key = {"schema":{"type":"int32","optional":false},"payload":61}
Value ={"id":61,"name":"ttt"}
我需要获得以下信息:
Key = 61
Value ={"id":61,"name":"ttt"}
我在做什么错?任何帮助表示赞赏。
谢谢。
答案 0 :(得分:3)
如果您不想在键中包含架构,则可以通过设置key.converter.schemas.enable=false
来告知Kafka Connect。
有关详细说明,请参见Kafka Connect Deep Dive – Converters and Serialization Explained by Robin Moffatt。