主页
topics
Avro
Avro 是一个开源项目,旨在为 Apache Hadoop 提供数据序列化和数据交换服务。这些服务可以一起使用,也可以单独使用。
Avro 支持在使用不同语言编写的程序之间进行大数据交换。利用序列化服务,程序可以高效快速地将数据序列化为文件或消息。数据存储不仅紧凑,而且高效。Avro 将数据定义和数据本身一起存储在同一个消息或文件中。
Avro 以 JSON 格式存储数据定义,方便读取和解释;而数据本身以二进制格式存储,既紧凑又高效。Avro 文件中包含的标记可用于将大型数据集拆分为大小适合的若干子集,以便于 Apache MapReduce 进行处理。一些数据交换服务会使用代码生成器来解释数据定义,并生成用于获取数据的代码。Avro 省去了此步骤,因此非常适合脚本语言。
Avro 的一个关键功能是,能够有力支持随时间变化的数据模式,这种变化通常称为模式演变。Avro 可处理模式变更,如缺失的字段、新添的字段和更改的字段。因此,旧程序可读取新数据,新程序也可读取旧数据。Avro 包含适用于 Java、Python、Ruby、C、C++ 等编程语言的 API。使用 Avro 存储的数据可通过不同语言编写的程序进行传递,Avro 甚至可以从 C 这样的编译语言传递到诸如 Apache Pig 之类的脚本语言。
了解构建块和最佳实践以帮助您的团队加速开发负责任的 AI。