Apache IoTDB中两位小数传感器数据的编码选择及默认压缩方式咨询
Apache IoTDB 编码与压缩相关问题解答
1. 保存带两位小数的传感器数据适合的编码方式
- 优先推荐将数据转换为整数存储(例如把原数值乘以100,将两位小数转为整数),之后可选择以下编码:
- RLE编码:若传感器数据存在连续重复场景(如设备稳定运行时数值长时间不变),压缩效率极高。
- TS_2DIFF编码:适合时序上变化平缓的整数数据,能有效压缩连续数值间的差异。
- 若需直接存储浮点数(如使用FLOAT/DOUBLE类型),可选用FLOAT编码或DOUBLE编码,但这类编码的压缩效率通常低于整数编码,仅适合无法转换为整数的场景。
2. RLE编码适用性及默认编码压缩规则
是否适合使用RLE编码
如果你的传感器数据存在连续相同的数值(如设备稳定状态下数值无变化),RLE编码非常适用,能显著节省存储空间;但如果数据持续波动、几乎无连续重复情况,RLE的压缩效果会很差,建议改用TS_2DIFF或其他适配的编码。
未指定编码与压缩方式时的默认规则
当未配置ENCODING和COMPRESSOR字段时,Apache IoTDB会自动启用压缩,默认规则如下:
- 编码方式:根据数据类型自动匹配,例如整数类型默认用RLE编码,浮点数类型默认用对应类型的编码(FLOAT/DOUBLE编码),布尔类型默认用RLE,字符串默认用PLAIN编码。
- 压缩方式:默认采用SNAPPY压缩,这是一种兼顾压缩速度与压缩比的通用压缩算法。
内容的提问来源于stack exchange,提问作者NKZ
相关产品推荐
相关产品推荐

