高性能的时序数据库

高性能的时序数据库

通过充分利用时序大数据的特点,TDengine Database 团队设计了新颖的存储引擎,大幅提升了数据的写入和查询速度,同时也大幅提高了数据压缩率。与通用数据库相比,性能好至少十倍以上,而存储空间不到其1/5,与其他时序数据库相比,性能也是远超。与流行的时序数据库 InfluxDB 相比,完全采用 InfluxDB 自身提供的测试框架、数据集和测试场景(https://www.influxdata.com/blog/influxdb-outperforms-graphite-in-time-series-data-metrics-benchmark/),写入速度至少是2倍以上,在设备数量超过1000以后,写入速度是5.2倍。对于查询场景,极个别的与InfluxDB速度持平,绝大部分都是几倍的速度,有的甚至高达40倍。数据压缩上,TDengine 也表现更好,存储空间不到 InfluxDB 的 70%。

图一是写入所有数据所耗时间的测试结果。很明显可以看出,在 InfluxDB 发布的自己最优的条件下,随着设备数量的增加,TDengine 的优势越来越大,当设备数达到 1000 时,InfluxDB 所消耗的时间是 TDengine 的 5.2 倍。与 InfluxDB 完整的写入对比测试,包括详细步骤和结果,请看“TDengine VS InfluxDB,写入性能大PK!”一文。

图二是获取部分设备全量数据所耗时间的测试结果。可以看出,当读取 16 个设备数据全量数据时,InfluxDB 所消耗的时间是 TDengine 的8.78倍,当读取 128 个设备的全量数据时,InfluxDB 所消耗的时间是 TDengine 的 9.37 倍。而且当读取的设备数量为 256 时,InfluxDB 完全卡住,无法完成测试。与 InfluxDB 完整的查询对比测试,包括详细步骤和结果,请看“TDengine和InfluxDB查询性能对比测试报告”。

我们完全可以将设备数量增大到十万、一百万甚至一千万,而且可以把时间跨度大幅增加,在此就不一一列举对比了。欢迎大家用我们提供的完整步骤,调整测试参数,自己运行测试得出结论。

与 MongoDB、ClickHouse、OpenTSDB 等其他 Database 的对比测试报告,请下载“TDengine与其他数据库对比测试的完整报告”。

都是时序数据库,为什么 TDengine 能如此出众?这是由于 TDengine 采用了独特的存储结构,而不是照搬通用的 KV 存储或 LSM 存储引擎。它充分利用时序数据的特点而进行了各种优化,创新地提出了包括“一个数据采集点一张表”与“超级表”的设计,详细请看 TDengine 数据模型和基本概念

更多亮点 >>