Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 数据类型

    • 0: BOOLEAN

    • 1: INT32 (int)

    • 2: INT64 (long)

    • 3: FLOAT

    • 4: DOUBLE

    • 5: TEXT (String)

  • 编码类型

    为了提高数据的存储效率,需要在数据写入的过程中对数据进行编码,从而减少磁盘空间的使用量。在写数据以及读数据的过程中都能够减少I/O操作的数据量从而提高性能。IoTDB支持多种针对不同类型的数据的编码方法:
    • 0: PLAIN

      • PLAIN编码,默认的编码方式,即不编码,支持多种数据类型,压缩和解压缩的时间效率较高,但空间存储效率较低。

    • 1: DICTIONARY

      • 字典编码是一种无损编码。它适合编码基数小的数据(即数据去重后唯一值数量小)。不推荐用于基数大的数据。
    • 2: RLE

      • 游程编码,比较适合存储某些整数值连续出现的序列,不适合编码大部分情况下前后值不一样的序列数据。

      • 游程编码也可用于对浮点数进行编码,但在创建时间序列的时候需指定保留小数位数(MAX_POINT_NUMBER,具体指定方式参见本文SQL 参考文档)。比较适合存储某些浮点数值连续出现的序列数据,不适合存储对小数点后精度要求较高以及前后波动较大的序列数据。

        游程编码(RLE)和二阶差分编码(TS_2DIFF)对 float 和 double 的编码是有精度限制的,默认保留2位小数。推荐使用 GORILLA。

    • 3: DIFF

    • 4: TS_2DIFF

      • 二阶差分编码,比较适合编码单调递增或者递减的序列数据,不适合编码波动较大的数据。
    • 5: BITMAP

    • 6: GORILLA_V1

      • GORILLA编码是一种无损编码,它比较适合编码前后值比较接近的数值序列,不适合编码前后波动较大的数据。

      • 当前系统中存在两个版本的GORILLA编码实现,推荐使用GORILLA,不推荐使用GORILLA_V1(已过时)。

      • 使用限制:使用Gorilla编码INT32数据时,需要保证序列中不存在值为Integer.MIN_VALUE的数据点;使用Gorilla编码INT64数据时,需要保证序列中不存在值为Long.MIN_VALUE的数据点。

    • 7: REGULAR

    • 8: GORILLA

    • 9: ZigZag

      • ZigZag编码将有符号整型映射到无符号整型,适合比较小的整数
  • 数据类型与支持编码的对应关系

    数据类型支持的编码
    BOOLEANPLAIN, RLE
    INT32PLAIN, RLE, TS_2DIFF, GORILLA, ZigZag
    INT64PLAIN, RLE, TS_2DIFF, GORILLA
    FLOATPLAIN, RLE, TS_2DIFF, GORILLA
    DOUBLEPLAIN, RLE, TS_2DIFF, GORILLA
    TEXTPLAIN, DICTIONARY


...