Avro文档概览

51 篇文章 1 订阅
37 篇文章 1 订阅

介绍

Apache Avro 是一个数据序列化系统

Avro提供以下功能:

  • 非常的数据结构
  • 一个紧凑,快速的二进制数据格式
  • 一个容器文件,用来永久保存数据
  • 远程过程调用(RPC)
  • 动态语言可以简单集成.代码的生成既不需要读或写数据文件,也不需要实现RPC协议.代码生成是一个可选优化,仅仅是值得实现静态类型语言.

结构

Avro依赖结构,当读Avro数据是可读的,在写数据时才用到结构. 每个数据被写是没有每个值开销下,使序列化快并且生成的数据小. 这也促进了用脚本语言,因为数据和他的结构再一起,是自我包含.

当Arvo数据被存储在一个文件中,结构和数据一起存储.这样文件可以被任何程序处理. 如果程序期待读不同结构的数据是非常容易解决的,因此结构和数据是现成的.

当Avro用在RPC时,客户端和服务器端交换结构在连接握手时.(这里可以优化,对大多数调用时,是没有结构传输的).因为两端都有彼此的结构, 通讯用相同的字段,丢失字段或是其它字段,等等. 这些都能非常容易解决

对比其它系统

Avro提供的功能类似于Thrift, Protocol Buffer系统等. Avro与这些系统的不同在以下方面.

动态类型:Avro不需要生成代码,数据总是和结构一起,允许处理数据不需要生成代码,静态数据类型等.这样促进了一般数据系统结构和语言.

无标签数据: 因为读数据时结构要知道,考虑到少的类型系统需要用数据编码,结果生成更小序列化的大小.

没有手工分配字段IDs:当结构改变了,当处理数据而没有代码生成时,旧的和新的结构总是存在,使用字段名只可以 处理.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值