Live2D

Apache Avro 学习

参考官方文档:https://avro.apache.org/docs/current/spec.html#schema_record

1.Schema的定义

Schema的结构其实就是一种json格式。

基本数据类型

基本数据类型一共有8种: null,boolean,int,long,float,double,bytes,string。{"type":"string"}代表的就是类型是string的schema

复杂数据类型

Avro提供了六种复杂数据类型:record,enums,arrays,maps,unions,fixed

Records

Records有以下属性:

  • name:提供record的的名称(string类型,必要参数)
  • namespace:提供全限定名称(string类型)
  • doc:提供说明的文档内容(string类型)
  • aliases:别名(string的array类型)
  • fields:列举字段的属性和值
    • type:一个schema (schema类型,必要参数)
    • name:定义字段 (string类型 必要参数)
    • doc:描述内容(string类型)
    • order:排序方式,默认升序
    • aliases:别名(string类型)
    • default:默认值

image

例子

{
  "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

Enums有以下属性:

  • name:提供enmu的名称(string类型,必要字段)
  • namespace:全限定名称(string类型)
  • aliases:别名(string的array类型)
  • doc:说明文档内容(string类型)
  • symbols:列举符号,禁止重复,必须匹配正则表达式(json数组类型)
  • default:默认值

例子

{
  "type": "enum",
  "name": "Suit",
  "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}

Arrays

Arrays提供了一个的属性:

  • items:提供了数组的items

例如一个string类型的数组定义如下

{
  "type": "array",
  "items" : "string",
  "default": []
}

Maps

Maps提供了一个属性:

  • values:map的values

例如一个string转成long的map定义如下

{
  "type": "map",
  "values" : "long",
  "default": {}
}

Unions

类型就是一个json数组

Fixed

Fixed有以下属性:

  • name:提供fiexd的名称(string类型,必要字段)
  • namespace:命名空间((string类型)
  • aliases:别名(string的array类型)
  • doc:描述内容文档(string类型)
  • size: 指定每个值的字节数(integer类型,必要字段)
posted @   没有梦想的java菜鸟  阅读(177)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示