TDengine 是一个专为物联网、工业 4.0 等场景设计的大数据平台,它具有高性能、高可靠、高可用、低成本等特点,为了降低系统设计复杂度和运行成本,TDengine 提供了一种高效的时间序列数据存储方式。
高性能
TDengine 工业大数据平台的核心是高性能的时序数据库。TSBS 基准测试结果显示,TDengine 的写入、查询、存储性能均远超 InfluxDB、TimescaleDB 等时序数据库。
从上图可以看出,TDengine 的查询平均响应时间全面优于 InfluxDB 和 TimescaleDB。并且由于 TDengine 高效的存储引擎设计,大规模场景的数据所占用的存储空间最少。
有关测试报告执行结果和重现步骤的详细信息,请参阅《基于 TSBS 标准数据集时序数据库 TimescaleDB、InfluxDB 与 TDengine 在 IoT 场景性能对比测试》。
TDengine 在数据写入、数据查询、存储空间、资源消耗等方面都表现出了超强的性能,因此,采用高性能时序数据库 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本降低至少 50% 以上。
都是时序数据库,为什么 TDengine 能如此出众?这是由于 TDengine 采用了独特的存储结构,而不是照搬通用的 KV 存储或 LSM 存储引擎。它充分利用时序数据的特点而进行了各种优化,创新地提出了包括“一个数据采集点一张表”与“超级表”的设计,详细请看 TDengine 数据模型和基本概念。
分布式
TDengine 的设计是基于单个硬件、软件系统不可靠,基于任何单台计算机都无法提供足够计算能力和存储能力处理海量数据的假设而进行设计的。因此 TDengine 从研发的第一天起,就是按照水平扩展、高可用架构进行设计的分布式时序数据库。通过对数据进行分区、分片,而且采用虚拟节点(vnode)技术,保证系统的处理能力是水平扩展的。如果要增加系统的处理能力,只需要增加新的节点即可。
图为 TDengine 的逻辑结构。
与 TDengine 2.0 最大不同的是,TDengine 3.0 元数据管理也变成了完全分布式的,TDengine 管理节点不再存储每个设备或每张表的元数据了,而是把这些元数据还有时序数据完全存储在 vnode 里,之后会用 B+ 树、一致性哈希来处理。这样一来,我们在插入一个数据到任何一个片或者一个区时都不再需要经过任何中间节点,彻底解决了高基数的问题。
经过测试,TDengine 3.0 完全能够支持 10 亿个设备、100 台服务器节点,同时整个启动时间也很快,不到一分钟整个集群就能启动。
分级存储
TDengine 提供了数据分级存储的功能,将不同时间段的数据存储在挂载的不同介质上的目录里,从而实现不同“热度”的数据存储在不同的存储介质上,充分利用存储,节约成本。比如,最新采集的数据需要经常访问,对硬盘的读取性能要求高,那么用户可以配置将这些数据存储在 SSD 盘上。超过一定期限的数据,查询需求量没有那么高,那么可以存储在相对便宜的 HDD 盘上。