键和值的 SetSchemaMetadata

SetSchemaMetadata for both key and value

我正在使用 Kafka Connect JDBC 源连接器将数据从 Postgres 数据库流式传输到 Kafka。 kafka 集群中的所有消息都是由 Schema Registry 管理的 Avro 消息。 我想为消息的键和值显式设置架构名称。

我设法通过使用配置中的 SetSchemaMetadata 选项为键或值执行此操作。

为设置值的模式名称,我使用:

"transforms": "SetSchemaMetadata",
"transforms.SetSchemaMetadata.type": 
"org.apache.kafka.connect.transforms.SetSchemaMetadata$Value",
"transforms.SetSchemaMetadata.schema.name": "myCustomValueSchemaName"

对于密钥,我使用的是:

"transforms": "SetSchemaMetadata",
"transforms.SetSchemaMetadata.type": 
"org.apache.kafka.connect.transforms.SetSchemaMetadata$Key",
"transforms.SetSchemaMetadata.schema.name": "myCustomKeySchemaName"

有没有办法在连接配置中同时设置它们?

非常感谢

我认为你可以使用链式转换:

"transforms": "KeySchemaMetadata,ValueSchemaMetadata",

"transforms.KeySchemaMetadata.type": "org.apache.kafka.connect.transforms.SetSchemaMetadata$Key",
"transforms.KeySchemaMetadata.schema.name": "myCustomKeySchemaName",

"transforms.ValueSchemaMetadata.type": "org.apache.kafka.connect.transforms.SetSchemaMetadata$Value",
"transforms.ValueSchemaMetadata.schema.name": "myCustomValueSchemaName"