Avro使用详解

Avro是一个数据序列化工具,使用语言无关的模式定义,支持二进制和JSON编码。Avro依赖JSON格式的模式,数据类型映射到Java,并能通过schema生成Java类。本文提供了一个Avro使用实例,包括创建schema文件、使用avro-tools编译以及Java中的序列化和反序列化操作。
摘要由CSDN通过智能技术生成

Avro简介

Avro是一个数据序列化工具,用语言无关的模式定义,Avro支持二进制编码和JSON编码两种序列化方式。序列化方法为深度优先,从左到右遍历。

Avro数据类型

类型 描述 示例
null 空值 null
boolean 二进制值 “boolean”
int 32位整数 “int”
long 64位证书 “long”
float 32位浮点数 “float”
double 64位浮点数 “double”
bytes 字节序列 “bytes”
string 字符序列 “string”
array 排序数组,对象类型一致 {“type”:“array”,“items”:“long”}
map 键值对,键是字符串 {“type”:“map”,“values”:“string”}
record 任意类型字段集合 {“type”:“record”,“name”:“WeatherRecord”,“doc”:“Weather file”,“fileds”:[{“name”,“year”,“type”:“int”}]}}
enum 枚举类型 {“type”:“enum”,“name”:“cutlery”,“doc”,:file",“symbols”:[“KNIFE”,“FORK”]}

数据类型Java映射

Avro类型 JAVA通用映射 特殊映射
int int -
long long -
float float -
double double -
bytes java.nio.bytebuffer 字节数组
string 字符序列 “string”
array 排序数组,对象类型一致 {“type”:“array”,“items”:“long”}
map 键值对,键是字符串 {“type”:“map”,“values”:“string”}
record 任意类型字段集合 {“type”:“record”,“name”:“WeatherRecord”,“doc”:“Weather file”,“fileds”:[{“name”,“year”,“type”:“int”},{“name”,“temperature”,“type”:“int”}]}}
enum 枚举类型 {“type”:“enum”,“name”:“cutlery”,“doc”,:file",“symbols”:[“KNIFE”,“FORK”]}

Avro使用

Avro依赖模式(scehma)实现,模式用JSON格式定义。其中类型分为:

示例

{
   
	"namespace": "com.test.avro",
	"type":"record",
	"name":"Student",
	"fields":[
		{
   "name"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值