Нам нужно сериализовать некоторые данные для ввода в solr и hadoop.В чем преимущество сохранения схемы в avro?
Я оцениваю инструменты сериализации для того же самого.
В двух первых в моем списке находятся Gson и Avro.
Насколько я понимаю, Avro = Gson + Schema-In-JSON
Если это правильно, я не понимаю, почему Avro так популярны для Solr/Hadoop?
Я много искал в Интернете, но не могу найти ни одного правильного ответа для этого.
Всюду, где говорится, Avro хорошо, потому что хранит схему. Мой вопрос в том, что делать с этой схемой?
Это может быть полезно для очень больших объектов в Hadoop, где один объект хранится в нескольких файловых блоках, так что хранение схемы с каждой частью помогает лучше ее анализировать. Но даже в этом случае схема может храниться отдельно, и просто ссылки на нее достаточно для описания схемы. Я не вижу причин, почему схема должна быть частью каждой части.
Если кто-то может дать мне , то неплохой вариант использования, так как Авро помог им, а Gson/Jackson были недостаточны для этой цели, было бы очень полезно.
Кроме того, официальная документация на сайте Avro сообщает, что нам нужно предоставить схему для Avro, чтобы помочь ей создать Schema + Data. Мой вопрос в том, что если схема введена и она отправляется на вывод вместе с представлением данных JSON, то что же еще делает Avro? Могу ли я сделать это сам, сериализуя объект с помощью JSON, добавив мою схему ввода и назвав ее Avro?
Я действительно смущен этим!
Я не понимаю, что полезно об этом. Если изменяется схема, разве семантика объекта также может измениться? Как автоматизированная система может достоверно определить, как интерпретировать такие вещи, как семантически конфликтующие поля? –
Также следует отметить, что пропускание устаревших полей является стандартной практикой в других IDL (по крайней мере, protobuf, с которыми я знаком). –
Это отличная информация. «Схема хранится только один раз для нескольких записей в одном файле», но не удалось найти ссылку на эту информацию, пожалуйста, поделитесь ею. – Sankalp