如何在Apache IoTDB表模型中设置浮点数精度?
在Apache IoTDB 2.0.4表模型中设置浮点数精度的正确方式
树模型中直接在序列定义里指定MAX_POINT_NUMBER的语法不适用于表模型,表模型需要通过WITH子句的FIELD_PROPERTIES参数来配置字段的额外属性,正确SQL写法如下:
CREATE TABLE vehicle( dn STRING TAG, sn FLOAT FIELD ) WITH ( TTL=DEFAULT, FIELD_PROPERTIES = ( 'sn.MAX_POINT_NUMBER' = '2', 'sn.ENCODING' = 'RLE' -- 必须搭配RLE或TS_2DIFF编码才生效 ) );
关键说明
- 表模型中,字段的编码(ENCODING)和精度属性(MAX_POINT_NUMBER)需统一放在
WITH子句的FIELD_PROPERTIES中定义,格式为'字段名.属性名' = '属性值' MAX_POINT_NUMBER仅对FLOAT/DOUBLE类型且采用RLE或TS_2DIFF编码的字段生效,必须同时指定对应编码才会触发精度控制逻辑- 执行上述语句后,表中
sn字段会按照指定的2位小数精度进行存储和编码
内容的提问来源于stack exchange,提问作者ごまめとにまめ




