我正在使用sap hana源连接器 "connector.class":"com.sap.kafka.connect.source.hana.HANASourceConnector"
将数据导入Kafka主题。
我想为连接器创建的avro模式指定一个名称/命名空间。因此,我使用了 SetSchemaMetadata
函数转换架构名称。
以下是我的连接器配置示例:
"key.converter.schemas.enable": true,
"key.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://xx.xx.xx/schema/",
"key.converter.enhanced.avro.schema.support": true,
"value.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url": "http://xx.xx.xx/schema/",
"value.converter.enhanced.avro.schema.support": true,
"transforms":"SetSchemaMetadata",
"transforms.SetSchemaMetadata.type":"org.apache.kafka.connect.transforms.SetSchemaMetadata$Value",
"transforms.SetSchemaMetadata.schema.name":"com.company.kafka.avro.table",
"table1.table.name": "\"database\".\"schema.table1\"",
"table2.table.name": "\"database\".\"schema.table2\"",
这将导致两个模式(table1值和table2值)的名称空间都是“com.company.kafka.avro”和“table”
是否有办法使模式名与主题名相同?比如: "transforms.SetSchemaMetadata.schema.name":"com.company.kafka.avro.${topic}",
或者,对于每个主题和模式,是否都要手动指定它?
1条答案
按热度按时间siv3szwd1#
我知道没有直接的方法可以做到这一点。而是为每个表创建一个单独的连接器。