Apache Avro总结
|
类型名
|
描述
|
描述
|
二进制编码(Binary Encoding)
|
排序(Sort Order)
|
|
null
|
空
|
no value
|
0字节(zero bytes)
|
总是相等
|
|
boolean
|
布尔值(0或1)
|
a binary value
|
1字节,值是0(false)或者1(true)
|
false在前,true在后
|
|
int
|
32位有符号整数
|
32-bit signed integer
|
使用可变长度编码(variable-length)、zig-zag编码
|
按数值升序排列
|
|
long
|
64位有符号整数
|
64-bit signed integer
|
使用可变长度编码(variable-length)、zig-zag编码
|
按数值升序排列
|
|
float
|
单精度(32位)的IEEE 754浮点数
|
single precision (32-bit) IEEE 754
floating-point number
|
4字节,float浮点数会被转换成32位的整数,
|
按数值升序排列
|
|
double
|
双精度(64位)的IEEE 754浮点数
|
double precision (64-bit) IEEE 754
floating-point number
|
8字节,double浮点数会被转换成64位的整数,
|
按数值升序排列
|
|
bytes
|
8位无符号字节序列
|
sequence of 8-bit unsigned bytes
|
编码成long类型,后面跟着很多字节的数据。
|
按字典顺序通过无符号8位值进行比较。
|
|
string
|
字符串
|
unicode character sequence
|
编码成long类型,后面跟着很多字节的UTF-8编码的字符数据。
|
按字典顺序由Unicode代码点进行比较。由于UTF-8用作字符串的二进制编码,因此字节和字符串二进制数据的排序是相同的。
|
|
类型名
|
描述
|
样例
|
二进制编码(Binary Encoding)
|
排序(Sort Order)
|
|
Records
|
记录
|
{
"type": "record",
"name": "LongList",
"aliases": ["LinkedLongs"],
// old name for this
"fields" : [
{"name": "value", "type": "long"},
// each element has a long
{"name": "next", "type": ["null", "LongList"]}
// optional next element
]
}
|
记录通过模式里面声明的字段顺序编码,换句话说,记录被编码成它的字段编码的连接。字段值按它的模式编码。
|
记录数据按字段的字典顺序排序。 如果字段指定其顺序为:
“升序”,然后其值的顺序不变。
“降序”,然后其值的顺序颠倒过来。
“忽略”,然后在排序时忽略其值。
|
|
Enums
|
枚举
|
{ "type": "enum",
"name": "Suit",
"symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}
|
枚举由int编码,表示模式中符号从零开始的位置。
|
按符号在枚举模式中的位置排序
|
|
Arrays
|
数组
|
{"type": "array", "items": "string"}
|
数组被编码为一系列块(block)。 每个块包含一个长整数的计数,后跟许多数组项。计数为零的块表示数组的结束。每个元素都按照数组的模式进行编码。
|
按字典顺序进行元素比较。
|
|
Maps
|
映射(字典)
|
{"type": "map", "values": "long"}
|
映射被编码为一系列块(block)。每个块由一个长整数的计数,后跟许多键/值对。计数为零的块表示映射的结束。每个元素都按照映射的模式进行编码。
|
无法比较。
|
|
Unions
|
联合类型
|
即值可以是类型列表中的一种类型
["null", "string"]表示模式可以是null或者string
|
通过首先写入一个long值来编码union,该值指示其值的模式的并集内的从零开始的位置。 然后根据联合中指示的模式对该值进行编码。
|
union数据首先由union中的分支排序,并且在其中由分支的类型排序。 例如,[“int”,“string”] union将在所有字符串值之前对所有int值进行排序,其中int和字符串本身按上面的定义排序。
|
|
Fixed
|
固定大小
|
{"type": "fixed", "size": 16, "name": "md5"}
|
使用模式中声明的字节数对固定实例进行编码。
|
按字典顺序通过无符号8位值进行比较。
|
Apache Avro总结的更多相关文章
- java.lang.NoClassDefFoundError: org/apache/avro/ipc/Responder
文章发自:http://www.cnblogs.com/hark0623/p/4170174.html 转发请注明 java.lang.NoClassDefFoundError: org/a ...
- Apache Avro 与 Thrift 比较
http://www.tbdata.org/archives/1307 Avro和Thrift都是跨语言,基于二进制的高性能的通讯中间件. 它们都提供了数据序列化的功能和RPC服务. 总体功能上类似, ...
- Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)二
h5 { text-indent: 0.71cm; margin-top: 0.49cm; margin-bottom: 0.51cm; direction: ltr; color: #000000; ...
- Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)一
h4 { text-indent: 0.71cm; margin-top: 0.49cm; margin-bottom: 0.51cm; direction: ltr; color: #000000; ...
- 异常-CDH的service无法启动并抛出异常-org.apache.avro.AvroRemoteException: java.net.ConnectException: Connection refused (Connection refused)
1 详细异常 org.apache.avro.AvroRemoteException: java.net.ConnectException: Connection refused (Connectio ...
- Hadoop基础-Apache Avro串行化的与反串行化
Hadoop基础-Apache Avro串行化的与反串行化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Apache Avro简介 1>.Apache Avro的来源 ...
- Apache Avro:一个新的数据交换格式
原文: http://blog.cloudera.com/blog/2009/11/avro-a-new-format-for-data-interchange/ 注:由于个人英语能力有限,翻译不准确 ...
- Hadoop-异常-Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/io/DatumReader
//maven org.apache.avr 下载不完全 ,去maven If you are using maven to build your jar, you need to add the ...
- Apache Avro & Avro Schema简介
为什么需要schema registry? 首先我们知道: Kafka将字节作为输入并发布 没有数据验证 但是: 如果Producer发送了bad data怎么办? 如果字段被重命名怎么办? 如果数据 ...
随机推荐
- 如何把您现有的流程系统数据迁徙到驰骋BPM上?
关键词:流程系统版本切换\ 驰骋BPM. 如何把您现有的流程系统数据迁徙到驰骋BPM上?这是一个大问题.在处理改问题之前,首先要了解驰骋bpm的数据库结构,驰骋bpm的特性在做计划. 驰骋BPM的流程 ...
- Android触摸事件传递机制,这一篇就够了
整个触摸事件牵涉到的是,Activity,View,ViewGroup三者的传递机制. 这个触摸事件就是从外层往内层一层层的传递. 整个传递机制,分为3个步骤:分发,拦截,和消费. 1. 触摸事件的类 ...
- 编写一个函数,输入n为偶数时,调用方法求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
需求:编写一个函数,输入n为偶数时,调用方法求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n package com.Summer_0511.cn; impo ...
- HDU_4570_区间dp
http://acm.hdu.edu.cn/showproblem.php?pid=4570 连题目都看不懂,直接找了题解,copy了过来= =. 一个长度为n的数列,将其分成若干段(每一段的长度要& ...
- 一、Mongodb安装和配置
简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品. Mongod ...
- 命令拼接符 || && 区别
&& 前面的命令执行成功,执行拼接符后面的命令. || 前面的命令执行失败,执行拼接符后面的命令. 举例: (1)whoami && net user 真 ...
- 编译原理实验之SLR1文法分析
---内容开始--- 这是一份编译原理实验报告,分析表是手动造的,可以作为借鉴. 基于 SLR(1) 分析法的语法制导翻译及中间代码生成程序设计原理与实现1 .理论传授语法制导的基本概念,目标代码结 ...
- k8s系列---资源指标API及自定义指标API
不得不说千万不要随意更改版本,我用的1.13的版本,然后学到这一步时,还因yaml文件不同,卡住了很久,然后各种google才找到解决办法 https://www.linuxea.com/2112. ...
- drf序列化大总结
目录 一.APIView的请求生命周期 二.序列化组件 视图类中使用序列化 Meta配置类中的配置 自定义校验规则 入库方法 自定义字段 如果有群改操作 重(难)点 三.视图家族 四.路由组件 五.权 ...
- 06_TypeScript泛型
1.泛型的定义 泛型就是解决 类,接口 方法的复用性,以及对不特定数据的支持(类型校验). 2.泛型函数 //T 表示泛型,具体什么类型是调用这个方法的时候决定的, //T可以用其他大写字母表示,传入 ...