Кафка хранит авро записи обратной совместимости схемы - PullRequest
0 голосов
/ 08 ноября 2018

Вопрос, связанный с обратной совместимостью Avro и локальными хранилищами RockSDB:

Давайте предположим, что я использую тему в виде глобальной таблицы, материализованной в хранилище RockSDB.Затем я могу сделать store.get (K) для извлечения V. Теперь, допустим, я должен повторно развернуть свое потоковое приложение, сохраняя то же локальное хранилище, но с новой версией схемы Avro K, просто включив новое необязательное поле.Должен ли я ожидать, что я смогу по-прежнему извлекать из моего локального хранилища уже сохраненный V в первой версии K, если я сейчас ищу сериализованный K, используя новую версию Avro (учитывая, что для нового необязательного поля установлено значение null)?

У меня сложилось впечатление, что это должно было сработать, но поиск всегда возвращает ноль.Я могу напечатать список прежних K, V, перебирая хранилище, и вижу, что сохраненный K выглядит точно так же, как тот, который я использую при выполнении store.get (K).Хотя Avro предназначен для обратной совместимости, это нормально, что мы должны удалить и воссоздать хранилище при изменении схемы?

...