#jdbc #apache-kafka #apache-kafka-connect #hana
#jdbc #apache-kafka #apache-kafka-connect #hana
Вопрос:
Я использую SAP HANA source connector "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-value и table2-value) будут иметь пространство имен «com.company.kafka.avro» и имя «таблица»
есть ли способ сделать имя схемы таким же, как название темы? что-то вроде: "transforms.SetSchemaMetadata.schema.name":"com.company.kafka.avro.${topic}",
или в любом случае можно указать его вручную для каждой темы и схемы?
Ответ №1:
Я не знаю прямого способа сделать это. Вместо этого создайте отдельный соединитель для каждой из таблиц.