IoTDB資料型別與編碼方式
阿新 • • 發佈:2020-12-14
資料型別
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編碼是預設的編碼模式,即不編碼,它支援多種資料型別。它具有較高的壓縮和解壓縮效率,同時空間儲存效率低)
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
我之前建立時間序列的時候,沒有指定壓縮