浮点数 BSS(Byte-Stream-Split)编码用户手册
1. 概述
BSS(Byte-Stream-Split)是 TDengine 针对 FLOAT/DOUBLE 字段推出的新一代编码方式,自 v3.3.8.0 起默认启用,旨在提高压缩效率的同时保持与旧编码相近的读写性能。
2. 技术原理
- 将浮点数的二进制表示按字节拆解。
- 对拆分后的字节流应用分割与压缩策略,尽可能让有数的二进制凑在一起,降低整体存储占用。
3. 核心优势
维度 | 表现 | 说明 |
---|---|---|
压缩率 | 相较 delta-D 提升 4%~7%,1~100 范围内提升更明显 | 浮点数据集最高压缩率达 83.76%,整数 13.65% |
写入性能 | 与 delta-D 基本一致 | 测试最高写入速率 32668 条/秒 |
查询效率 | 略优于 delta-D | 测试最高查询 QPS 11.825 |
数据/列规模 | 32 列或 64 列、不同数值范围下表现稳定 | 结论不受列数或数据范围影响 |
4. 配置说明
4.1 默认行为
- v3.3.8.0 及以上版本,新写入的浮点字段默认使用 BSS 编码。
4.2 手动指定
- 建表时可显式配置:
CREATE TABLE st ( ts TIMESTAMP, val DOUBLE ENCODING BSS ) TAGS (tag INT);
5. 性能测试摘要
项目 | 配置 / 环境 |
---|---|
测试环境 | 192.168.2.124(12 核 CPU,64 GB 内存) |
数据规模 | 1 DB、1 超级表、1 子表、1 VGROUP、100 万行 |
数据分布 | 1 ~ 100 范围浮点(6 位小数),0~100 整数 |
结果要点:
- 压缩率: BSS 比原来默认的 delta-D 编码约有 4%~7% 提升。
- 写入性能:与原来基本持平。
- 查询性能:比原来略快。
(原图表略)
6. 注意事项
- 升级至 v3.3.8.0 后,历史浮点数据不会自动重编码,只有新写入数据使用 BSS。
- 可通过
describe <表名>
查看 encoding 字段确认实际编码。
7 关于 TDengine
TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。
它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。