.avro
Data
Apache Avro(行式序列化)
Avro 是一种行式数据序列化格式,将 JSON 模式嵌入文件中。它擅长模式演进 — 读取者和写入者可以拥有不同但兼容的模式。Avro 是 Kafka 消息序列化和 Hadoop 数据管道的标准。
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
在 Kafka 消息模式、Hadoop/Spark 数据管道以及任何将模式演进和紧凑行存储作为优先事项的系统中使用 Avro。
技术细节
Avro 文件包含 JSON 模式头部,后跟使用 DEFLATE 或 Snappy 压缩的二进制编码数据块。读取时的模式解析支持添加、删除或重命名字段而不会影响消费者。
历史
Doug Cutting 于 2009 年创建了 Avro,作为 Hadoop 生态系统的一部分。与 Thrift 和 Protocol Buffers 不同,Avro 旨在无需代码生成即可实现动态模式解析。