数据类型
IoTDB总共支持六种数据类型
BOOLEAN(布尔值)
INT32(整数)
INT64(长整数)
FLOAT(单精度浮点数)
DOUBLE(双精度浮点数)
TEXT(字符串)
在创建浮点数的时候,可以通过 MAX_POINT_NUMBER 指定浮点数小数点后的位数。
如果未指定 MAX_POINT_NUMBER,则使用配置文件iotdb-engine.properties
指定Demo
CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE, COMPRESSOR=SNAPPY, MAX_POINT_NUMBER=3
注意
对于Float,取值范围(-Integer.MAX_VALUE,Integer.MAX_VALUE),而不是Float.MAX_VALUE,MAX_POINT_NUMBER 最大19
对于Double,取值范围(-Long.MAX_VALUE,Long.MAX_VALUE),而不是Double.MAX_VALUE,MAX_POINT_NUMBER 最大19
编码方式
IoTDB编码作用
写入期间对数据进行编码,提高数据存储的效率,减少I / O操作中涉及的数据量以提高性能
PLAIN(PLAIN编码是默认的编码模式,即不编码,它支持多种数据类型。它具有较高的压缩和解压缩效率,同时空间存储效率低)
TS_2DIFF(二阶差分编码更适合于单调递增或递减的序列数据的编码,不建议用于波动较大的序列数据)
RLE(存储具有连续整数值的序列,而不建议用于大多数时间值不同的序列数据,也可用于对浮点数进行编码,浮点值连续出现、单调递增或递减,不适合存储小数点后精度要求高或波动较大的序列数据)
GORILLA(具有相似值的浮点序列,不建议将其用于具有较大波动的序列数据)
REGULAR(更适合于对规则序列递增的数据,在这种情况下它比TS_2DIFF要好)
如果在创建时间序列时候,编码方式和数据类型没有对上,会报错
error: encoding TS_2DIFF does not support BOOLEAN
数据类型 | 支持的编码 |
BOOLEAN | PLAIN, RLE |
INT32 | PLAIN, RLE, TS_2DIFF, REGULAR |
INT64 | PLAIN, RLE, TS_2DIFF, REGULAR |
FLOAT | PLAIN, RLE, TS_2DIFF, GORILLA |
DOUBLE | PLAIN, RLE, TS_2DIFF, GORILLA |
TEXT | PLAIN |
压缩
使用压缩技术压缩数据以进一步提高空间存储效率。但编码技术通常只适用于特定的数据类型,压缩不受数据类型的限制。
支持二种
UNCOMPRESSED (未压缩)
SNAPPY (默认)
iotdb-engine.properties
我之前创建时间序列的时候,没有指定压缩