AVRO介绍及同其他序列化系统的比较
guibin.beijing@gmail.com
AVRO是用来将数据序列化的系统,是apache hadoop的子项目,详情请参考官方网址[url]http://avro.apache.org[/url]
[size=medium]AVRO介绍[/size](翻译自[url]http://avro.apache.org/docs/current[/url])
avro是一个数据序列化系统。它提供了
[list][*]富数据结构
[*]紧凑的、快捷的二进制数据格式
[*]用于存储持久化数据的容器文件
[*]提供了远程过程调用(Remote procedure call-PRC)
[*]与动态语言简便的集成。读、写数据文件或者实现PRC协议都不需要生成代码。代码生成仅仅是一个用于优化的可选项,仅仅是为了静态类型语言而实现。[/list]
[size=medium]AVRO和其他序列化系统的比较[/size](翻译自[url]http://avro.apache.org/docs/current[/url])
Avro提供了和[url=http://incubator.apache.org/thrift/]Thrift[/url], [url=http://code.google.com/protobuf/]Protocol Buffers[/url]序列化系统相类似的功能。
[list][*]动态类型:Avro并不强制要求提前生成解析代码,而采取将数据和定义数据的schema同时存放的方式避免了使用提前生成的解析代码和静态类型定义等。这种便利性有利于构建通用数据处理系统和处理语言。
[*]未打标签的数据:由于在读取数据时能够同时访问到该数据的schema,因此只需要将相当少的类型信息编码到数据中,结果就使得序列化之后的数据体积变得更小。
[*]不存在手动分配的域ID:当schema改变之后,在处理相关数据时可以同时访问新老schema,因此新老数据的差异可以通过数据域的名字(field name)很容易的解决。[/list]
guibin.beijing@gmail.com
AVRO是用来将数据序列化的系统,是apache hadoop的子项目,详情请参考官方网址[url]http://avro.apache.org[/url]
[size=medium]AVRO介绍[/size](翻译自[url]http://avro.apache.org/docs/current[/url])
avro是一个数据序列化系统。它提供了
[list][*]富数据结构
[*]紧凑的、快捷的二进制数据格式
[*]用于存储持久化数据的容器文件
[*]提供了远程过程调用(Remote procedure call-PRC)
[*]与动态语言简便的集成。读、写数据文件或者实现PRC协议都不需要生成代码。代码生成仅仅是一个用于优化的可选项,仅仅是为了静态类型语言而实现。[/list]
[size=medium]AVRO和其他序列化系统的比较[/size](翻译自[url]http://avro.apache.org/docs/current[/url])
Avro提供了和[url=http://incubator.apache.org/thrift/]Thrift[/url], [url=http://code.google.com/protobuf/]Protocol Buffers[/url]序列化系统相类似的功能。
[list][*]动态类型:Avro并不强制要求提前生成解析代码,而采取将数据和定义数据的schema同时存放的方式避免了使用提前生成的解析代码和静态类型定义等。这种便利性有利于构建通用数据处理系统和处理语言。
[*]未打标签的数据:由于在读取数据时能够同时访问到该数据的schema,因此只需要将相当少的类型信息编码到数据中,结果就使得序列化之后的数据体积变得更小。
[*]不存在手动分配的域ID:当schema改变之后,在处理相关数据时可以同时访问新老schema,因此新老数据的差异可以通过数据域的名字(field name)很容易的解决。[/list]