🍋
Menu
.avro Data

Avro (сериализация данных Apache)

Apache Avro — система сериализации данных, ориентированная на строки, использующая JSON-схемы и компактное бинарное кодирование. Avro разработан для систем обработки больших данных, где вместе с данными передаётся и эволюционирующая схема.

MIME-тип

application/avro

Тип

Бинарный

Сжатие

Без потерь

Преимущества

  • + Schema evolution — add/remove fields without breaking readers
  • + Compact binary encoding with efficient compression
  • + Self-describing — schema embedded in the file
  • + Standard in Kafka and the Hadoop ecosystem

Недостатки

  • Row-based — less efficient than Parquet for analytical queries
  • Not human-readable in binary form
  • JSON schema specification has a learning curve

Когда использовать .AVRO

Используйте Avro для сообщений Kafka, где критична эволюция схемы, для пайплайнов Hadoop и обмена данными между системами с требованием совместимости схем.

Технические детали

Файлы Avro начинаются с JSON-схемы в заголовке, за которой следуют блоки данных в бинарной кодировке. Каждый блок может быть сжат независимо (null, deflate, snappy). Avro поддерживает эволюцию схемы: можно добавлять/удалять поля со значениями по умолчанию. Schema Registry (Confluent) управляет версиями схем для потоков Kafka.

История

Дуг Каттинг (создатель Hadoop) разработал Avro в 2009 году. В отличие от Thrift и Protocol Buffers, Avro хранит схему вместе с данными, устраняя необходимость генерации кода и обеспечивая развитие схемы.

Конвертировать из .AVRO

Конвертировать в .AVRO

Связанные форматы