Avro Schema格式

2024-08-28 02:38
文章标签 格式 schema avro

本文主要是介绍Avro Schema格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Avro Schema格式

Avro是一个数据序列化系统,主要用于支持大批量数据交换的应用。

特点:

  • 支持二进制序列化方式,可以便捷、快速的处理大量数据;
  • 动态语言有好,Avro提供的机制使动态语言可以方便的处理Avro数据

1.Avro Schema结构

{"type":"record","name":"aaa","namespace":"bbb","fields":[{"name":"ccc","type":"int","doc":"ccc","default":0},{"name":"ddd","type":"string","doc":"ddd","default":""}]
}
  • “type”: “record” 必须栏位
  • “name”: “aaa” 必须栏位,记录名
  • “namespace”: “bbb” 包名
  • “fields”: [] 必须栏位,列举所有属性,是json数组
    • “name”:“ccc” 必须栏位,属性名
    • “type”:“int” 必须栏位,属性类型
    • “doc”:“ccc” 属性文档
    • “default”:0 属性默认值,需要对应属性类型

2.简单数据类型

类型说明
null没有值
boolean布尔值
int32位有符号整数
long64位有符号整数
float单精度(32位)的IEEE 754浮点数
double双精度(64位)的IEEE 754浮点数
bytes8位无符号字节序列
string字符串

3.复杂数据类型

1).Array

{"type":"record","name":"aaa","namespace":"bbb","fields":[{"name":"ccc","type":{"type": "array","items": "string","default": []}}]
}

“items”: “string” array中元素的数据类型

2).Record

{"name":"aaa","default":null,"type":["null",{"type":"array","default":[],"items":{"name":"bbb","type":"record","fields":[{"name":"ccc","type":"string","doc":"ccc","default":""},{"name":"ddd","type":"string","doc":"ddd","default":""}]}}]
}

示例为array和record嵌套使用,适用于一个对象的元素包含其他对象的场景

3).Enum

{"type":"record","name":"aaa","namespace":"bbb","fields":[{"name":"ccc","type":"enum","symbols":["0","1","2"]}]
}

symbols:字符串数组,所有的枚举值(必填),不允许重复数据

4).Map

{"type":"record","name":"aaa","namespace":"bbb","fields":[{"name":"ccc","type":"map","values":"long"}]
}

map的key必须是string,示例为一个key为string,value为long的map

5).Union

组合类型,表示各种类型的组合,使用数组进行组合。比如[“null”, “string”]表示类型可以为null或者string。

Unions不能包含多个相同类型的Schema,除非是命名的record类型、命名的fixed类型和命名的enum类型。比如,如果unions中包含两个array类型,或者包含两个map类型都不允许;但是两个具有不同name的相同类型却可以。

6).Fixed

{"type":"record","name":"aaa","namespace":"bbb","fields":[{"name":"ccc","type":"fixed","size":16}]
}

size指声明的fixed类型数据为16字节

这篇关于Avro Schema格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113489

相关文章

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

单精度浮点数按存储格式转为整数的程序

///#include<cstdio>//-----------------union int_char{unsigned char ch[4];float i;};void out_put(union int_char x)//x86是小端对其模式,即最数据的最低位存储在地址的最低位上。{printf("单精度浮点数值为:%f\n",x.i,x.i);printf("存储位置从左到右

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注类别数:9 标注类别名称:["acalcerosis","fertilizer","flower","fruit","grey

spring事务属性的xml格式配置

实际是使用代理做的事务优化 <!--配置事务的属性--><tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!--匹配所有以add开头的方法--><tx:method name="add*" propagation="REQUIRED" /> <tx:metho

ORA-01861:文字与格式字符串不匹配

select t.*, t.rowid from log_jk_dtl t; insert into log_jk_dtl (rq,zy,kssj,jssj,memo)  values (to_date(sysdate,'yyyy-mm-dd'),'插入供应商', to_char(sysdate,'hh24:mi:ss'),to_char(sysdate,'hh24:mi:ss'),'备注'

Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置

图像像素值 图像像素值一般size为3,也就是通道数,分别代表R,G,B,如果只有单一 一个值则表示灰度值,也就是说一张二维图片,当长和宽都为1080时,那么若是灰度图像,图像尺寸为(1080,1080,1)若是RGB图像则为(1080,1080,3), jpg、png图像格式 jpg图像的灰度值范围和RGB范围为[0,255],数值类型为uint8,也就是无符号整数 png图像的灰度值范

Oracle之用TO_CHAR函数将日期格式转化为不带前导零的月份和日

要求: 1、日期格式转化成字符串格式,月和日前面的0需要去掉,如日期2024-09-06需要转化成2024-9-6; 2、如果用截取拼接函数写法就会复杂,最好用TO_CHAR函数格式化实现。 正确写法: SELECT TO_CHAR(SYSDATE,'YYYY-fmMM-dd') AS DATE1 , -- 执行结果为 2024-9-6TO_CHAR(SYSDATE,'fmYYYY-MM-d

Ural319(输出格式)

题目链接:点击打开链接 解题思路: 分别从右上角和左下角考虑,和姐姐跟我说的上一题差不多····· 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <climits>#include <cstdio>#include <string>#include <cmath>