Как задать имя динамической схемы в JDBC Kafka source connector

#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:

Я не знаю прямого способа сделать это. Вместо этого создайте отдельный соединитель для каждой из таблиц.