1. 程式人生 > 其它 >IoTDB資料型別與編碼方式

IoTDB資料型別與編碼方式

技術標籤:DBIoTDB資料型別IoTD編碼方式

資料型別

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
資料型別支援的編碼
BOOLEANPLAIN, RLE
INT32PLAIN, RLE, TS_2DIFF, REGULAR
INT64PLAIN, RLE, TS_2DIFF, REGULAR
FLOATPLAIN, RLE, TS_2DIFF, GORILLA
DOUBLEPLAIN, RLE, TS_2DIFF, GORILLA
TEXTPLAIN

壓縮

使用壓縮技術壓縮資料以進一步提高空間儲存效率。但編碼技術通常只適用於特定的資料型別,壓縮不受資料型別的限制。

支援二種

UNCOMPRESSED (未壓縮)

SNAPPY (預設)

iotdb-engine.properties

我之前建立時間序列的時候,沒有指定壓縮