Confluent — разделение сообщений Avro из одной темы kafka на несколько тем kafka

У нас есть входящая тема kafka с сериализованными в нее сообщениями на основе схемы несколько Avro.

Нам нужно разделить сообщения в формате Avro на несколько других тем kafka на основе определенного значения общего атрибута схемы.

                             |------> [OUTGOING TOPIC(AVRO) - A] 
[INCOMING TOPIC(AVRO)] ----->|------> [OUTGOING TOPIC(AVRO) - B]
                             |------> [OUTGOING TOPIC(AVRO) - C]

Хотелось бы понять, как этого добиться, избегая при этом создания промежуточного клиента для этого разделения/маршрутизации на объединенной платформе.

Я изучил коннектор kafka, но не нашел существующий коннектор, который бы так работал.

Вы можете использовать KSQL или Kafka Streams.

Giorgos Myrianthous 22.05.2019 23:36

KSQL может не работать, потому что во входном топике нет одной схемы.

Matthias J. Sax 03.06.2019 07:19
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
2
283
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете написать приложение Kafka Streams и использовать branch():

KStream input = builder.stream("topic");
KStream[] splitStreams = input.branch(...);
splitStream[0].to("output-topic-1");
splitStream[1].to("output-topic-2");
// etc.

Другие вопросы по теме