avro

来源:互联网 发布:匕首cad图纸数据 编辑:程序博客网 时间:2024/05/18 13:27

Avro 是一个数据序列化系统,设计用于支持大批量数据交换的应用。是Hadoop的一个子项目。


它的主要特点有:


1 丰富的数据结构类型
2 快速可压缩的二进制数据形式
3 存储持久数据的文件容器
4 远程过程调用RPC
5 简单的动态语言结合功能,Avro和动态语言结合后,读写数据文件和使用RPC协议都不需要生成代码,
而代码生成作为一种可选的优化只值得在静态类型语言中实现。

Schema(模式):
 Avro依赖模式(Schema)来实现数据结构定义。可以把模式理解为Java的类,它定义每个实例的结构,可以包含哪些属性。
可以根据类来产生任意多个实例对象。对实例序列化操作时必须需要知道它的基本结构,也就需要参考类的信息。这里,根据
模式产生的Avro对象类似于类的实例对象。每次序列化/反序列化时都需要知道模式的具体结构。所以,在Avro可用的一些场景
下,如文件存储或是网络通信,都需要模式与数据同时存在。

 Avro支持两种序列化编码方式:
二进制编码和JSON编码。
使用二进制编码会高效序列化,并且序列化后得到的结果会比较小;
而JSON一般用于调试系统或是基于WEB的应用。

Avro API讲解 http://avro.apache.org/docs/1.8.2/index.html


原创粉丝点击