TSZ 压缩算法是 TDengine 为浮点数据类型提供的可选压缩算法,可以实现浮点数有损至无损全状态压缩,相比默认压缩算法,TSZ 压缩算法压缩率更高,即使切至无损状态,压缩率也会比默认压缩高一倍。一般来说,TSZ 压缩算法是通过数据预测技术完成的压缩,所以更适合有规律变化的数据。同时 TSZ 压缩时间会更长一些,在我们的服务器 CPU 空闲、存储空间紧张的情况下适合选用。
在此前发布的《压缩比提高5倍!贡献者+1》一文中,华中科技大学、武汉光电国家研究中心的硕士研究生钟宇为大家详细介绍了其在近期发表的学术论文中,针对 TDengine TSZ 压缩算法进行的相关改进。本篇文章中,我们将就如何在 TDengine 中开启 TSZ 压缩算法进行详细说明,并会针对 TSZ 压缩算法展开功能测试,为大家验证其在实际业务场景中的更优性能。
在 TDengine 中开启 TSZ 压缩算法
lossyColumns float|double
配置成功后需要重启服务才能生效,当 Taosd 日志输出以下内容时,即表明功能已生效:
02/22 10:49:27.607990 00002933 UTL lossyColumns float|double
配置参数

DOUBLE 类型精度控制:
TDengine TSZ 压缩算法功能测试
数据正确性
首先我们需要验证写入数据被 TDengine 存储后再次读取出来的正确性:
通过 0-others/compress_tsz1.py 实现;
写入 10 个子表, 每子表 10 万数据,分别写入 float 和 double 字段指定的随机值,写入完成后全部再读取出来,和原来写入时的值进行比较。原来写入的值把整数及小数部分分别在两个 int64 的字段中保存,验证时再读取出来合成一个浮点数进行验证。验证的误差 float 为 1e-6, double 为 1e-12;
-
验证通过,数据完全正确。
数据兼容性
性能比较
写在最后
往
期
推
荐

本文分享自微信公众号 - TDengine(taosdata_news)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。