Kafka подключает приемник JDBC - сопоставление вложенного json-файла с несколькими строками

В рамках требований мы продолжим подключение Kafka для передачи данных в нашу базу данных. До сих пор я читал, что между сообщением и строкой db будет отображение 1x1, т.е. для одного сообщения в Kafka будет соответствующая запись в базе данных. Я хотел знать, есть ли возможность разбить вложенный json на несколько строк для вставки в db?

Две возможности, о которых я могу думать, следующие: - 1) Написать собственный соединитель для приемника jdbc 2) Использовать группу потребителей вместо kafka connect.


person Abhash Upadhyaya    schedule 27.04.2019    source источник


Ответы (1)


Используйте группу потребителей вместо kafka connect

Connect является группой потребителей. Настоятельно рекомендуется не писать свою собственную логику для обработки сбоев соединения, управления смещениями, удалений и т. Д. И позволить Connect сделать эту работу за вас. Если эти «преимущества» не работают для вас, даже тогда я думаю, что было бы лучше разветвить код Connector (ваш вариант 2), чем писать простой Consumer

Преобразование одного сообщения Connect - это примерно то, что вам нужно. В противном случае вы бы написали приложение-потребитель / производитель / Kstreams для чтения и обратной записи в «сглаженную» тему, а затем Connect считывает эту выходную тему в базу данных.

Примечание. JDBC - не единственный вариант. Mongodb или Couchbase отлично обрабатывают вложенный JSON

person OneCricketeer    schedule 27.04.2019
comment
Спасибо. Мы не можем пока заменить СУБД на NoSQL db. Кажется, что разветвление соединителя JDBCSink на данный момент было бы приемлемым вариантом. - person Abhash Upadhyaya; 28.04.2019
comment
Вам решать. Лично я бы пошел с Kafka Streams и использовал оператор flatMap - person OneCricketeer; 28.04.2019
comment
Мы также изучим потоки Kafka и еще раз рассмотрим вариант использования. Спасибо за предложение. - person Abhash Upadhyaya; 28.04.2019