zoukankan      html  css  js  c++  java
  • Apache Avro总结

    参考
     
    原始类型(Primitive Types)
    类型名
    描述
    描述
    二进制编码(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用作字符串的二进制编码,因此字节和字符串二进制数据的排序是相同的。
     
    复杂类型(Complex Types)
    类型名
    描述
    样例
    二进制编码(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位值进行比较。
     
    编码(Encodings):
    Avro指定了两种序列化编码:二进制和JSON。 大多数应用程序将使用二进制编码,因为它更小更快。 但是,对于调试和基于Web的应用程序,JSON编码有时可能是合适的。

  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/sxpujs/p/11220152.html
Copyright © 2011-2022 走看看