У меня есть потоковое задание, которое считывает из кафки темы avro payload и записывает с помощью windows. Все работает хорошо, пока данные не будут несовместимы. Я имею в виду, что если версии схемы разные. Так что в течение окна (минуты) все данные, которые собираются, мне нужно, например, сгруппировать по ключу. Мой вывод будет карта, ключ которой версия и значение представляет собой набор данных. И теперь я хочу сбросить все данные (множественные записи). Таким образом, количество записей будет равно размеру карты.
В моем 1-минутном окне собраны данные, и я сделаю группировку, результат будет:
Map [(1, Array (полезная нагрузка, полезная нагрузка, полезная нагрузка), 2, Array (полезная нагрузка, полезная нагрузка)), ...]. Пусть размер карты будет 4 (4 варианта схемы). Так что если нужно сделать 4 записи с именем заполнения вывода (например, schema-dateStart-dateEnd-version ). Как этого добиться и возможно ли это вообще?
Теперь для одной записи на окно я использую DynamicAvroGenericRecordDestination, и она работает хорошо.