Я использую исходный коннектор 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\"",
Это приведет к тому, что обе схемы (значение таблицы1 и значение таблицы2) будут иметь пространство имен «com.company.kafka.avro» и имя «таблица».
можно ли сделать так, чтобы имя схемы совпадало с названием темы? что-то вроде: "transforms.SetSchemaMetadata.schema.name":"com.company.kafka.avro.${topic}",
или все-таки указать его вручную для каждой темы и схемы?
Я не знаю прямого способа сделать это. Вместо этого создайте отдельный коннектор для каждой из таблиц.