为啥TDengine比TimescaleDB消耗这么多存储空间?
Posted
技术标签:
【中文标题】为啥TDengine比TimescaleDB消耗这么多存储空间?【英文标题】:Why does TDengine consume so much less storage space compared with TimescaleDB?为什么TDengine比TimescaleDB消耗这么多存储空间? 【发布时间】:2021-10-05 06:21:46 【问题描述】:这几天,我在 TDengine 中插入了大约 8000 万行数据,结果发现存储只消耗了大约 1GB。与 TimescaleDB 的存储使用量相比,TDengine 仅使用了 TimescaleDB 存储空间的 1/15 左右。对于 TimescaleDB,存储消耗通常在 15-18GB 左右,具体取决于架构。
taos客户端显示的TDengine的版本是2.0.20.8,TimescaleDB的版本是2.2.1
谁能解释为什么 TDengine 消耗的空间比 TimescaleDB 少得多?这种级别的压缩是否会导致数据失去其对 TDengine 的精度?
【问题讨论】:
您是否已打开压缩并在 Timescale 中工作? docs.timescale.com/timescaledb/latest/how-to-guides/compression wal_compression 已开启。其他参数未修改。 您必须按照那里的文档打开 TimescaleDB 的压缩机制,以减少 Timescale 使用的存储空间。 【参考方案1】:几个原因,1:TDengine采用列式存储; 2:TDengine的数据模型是每个数据采集点一张表; 3:针对不同的数据类型,采用不同的压缩算法。
由于对于每个数据采集点(数据流),度量值是变化的,但有时变化很小或根本没有变化。基于列的存储很容易获得高压缩比
【讨论】:
以上是关于为啥TDengine比TimescaleDB消耗这么多存储空间?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 PostgreSQL(timescaledb) 在表中花费更多的存储空间?
为啥 TDengine 数据库在相同的过滤条件下不能返回相同数量的行?
为啥 python itertools “消耗”配方比调用下 n 次更快?