SetSchemaMetadata для ключа и значения - PullRequest
1 голос
/ 13 июля 2020

Я использую Kafka Connect JDB C Source Connector для потоковой передачи данных из базы данных Postgres в Kafka. Все сообщения в кластере kafka являются сообщениями 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"

Есть ли способ установить оба из их в конфигурации подключения?

Большое спасибо

1 Ответ

1 голос
/ 13 июля 2020

Я думаю, вы можете использовать цепную трансформацию:

"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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...