7.IOTDB编码方式

分类栏目:IOTDB

资讯

基本编码方式

为了提供数据的存储效率,需要在数据写入的过程中对数据进行编码,从而减少磁盘空间的使用量。在写数据以及读数据的过程中都能够减少I/O操作的数据量从而提高性能。

IotDB支持多种不同类型的数据的编码方法:

PLAN编码
默认的编码方式,即不编码,支持多种数据类型,压缩和解压缩的时间效率高,但空间存储效率低
TS_2DIFF二阶差分编码
比较适合编码单调递增或者递减的序列数据,不适合编码波动较大的数据
RLE游程编码
比较适合存储某些数值连续出现的序列,不适合编码大部分情况下前后值不一样的序列数据
游程编码也可用于对浮点数进行编码,但在创建时间序列的时候需指定保留小数位数.比较适合存储某些浮点数值连续出现的序列数据,不适合存储对小数点后精度要求较高以及前后波动较大的序列数据。
游程编码RLE和二阶差分编码TS_2DIFF对float和double的编码是有精度限制的,默认保留2位小数。推荐使用GORILLA
GORILLA编码
GORILLA编码是一种无损编码,它比较适合编码前后值比较接近的数值序列,不适合编码前后波动较大的数据。
使用gorilla编码INT32数据时,需要保证序列中不存在值为Integer.MIN_VALUE的数据点;使用Gorilla编码INT64数据时,需要保证序列中不存在值为LONG.MIN_VALUE的数据点
字典编码
是一种无损编码。它适合编码基数小的数据(即数据去重后唯一值数量小)。不推荐用于基数大的数据
 
 

数据类型与编码的对应关系

数据类型
支持的编码
BOOLEAN
PLAIN, RLE
INT32
PLAIN, RLE, TS_2DIFF, GORILLA
INT64
PLAIN, RLE, TS_2DIFF, GORILLA
FLOAT
PLAIN, RLE, TS_2DIFF, GORILLA
DOUBLE
PLAIN, RLE, TS_2DIFF, GORILLA
TEXT
PLAIN, DICTIONARY