Апач Авро


Avro — это ориентированная на строки среда удаленного вызова процедур и сериализации данных , разработанная в рамках проекта Apache Hadoop . Он использует JSON для определения типов данных и протоколов и сериализует данные в компактном двоичном формате. Его основное применение находится в Apache Hadoop , где он может обеспечивать как формат сериализации для постоянных данных , так и формат проводной связи для связи между узлами Hadoop и между клиентскими программами со службами Hadoop . Avro использует схему для структурирования кодируемых данных. Он имеет два разных типа языков схем; один для редактирования человеком (Avro IDL), а другой, более машиночитаемый, на основе JSON. [3]

Он похож на Thrift and Protocol Buffers , но не требует запуска программы генерации кода при изменении схемы (если это не требуется для статически типизированных языков).

Для блоков данных Avro определяет две кодировки сериализации: [6] двоичную и JSON. Большинство приложений будут использовать двоичную кодировку, поскольку она меньше и быстрее. Для отладки и веб-приложений иногда может подойти кодировка JSON.

Схемы Avro определяются с использованием JSON. Схемы состоят из примитивных типов (null, boolean, int, long, float, double, bytes и string) и сложных типов (запись, перечисление, массив, карта, объединение и фиксированный). [7]

Данные в Avro могут храниться с соответствующей схемой, то есть сериализованный элемент можно прочитать, не зная схемы заранее.

Файл «users.avro» будет содержать схему в формате JSON и компактное двоичное представление [9] данных: