TDengine简单总结
1. 总结
先放总结:
- 核心代码全部开源,目前是单机开源,如果要用集群版,还是要商业版收费,毕竟带着商业目标,小数据量单机可以玩玩
- 未披露扩展性、数据一致性、容错性、可用性等分布式技术细节,也未披露数据库的相关特性实现细节
- 做性能对比选择的视角比较奇怪:客户端数对单机服务器性能的影响,其他数据库评测的都是单机性能和集群机器数带来的水平扩展能力
- 只支持定长的数据类型(数值、bool和字符串),字符串只支持定长,如果超出申明长度会被截断(评测也全为定长数据)
- 聚合函数性能对比,tdengine的函数均是非常简单的函数,所有函数加起来不到20个,并且每个数据块都已经做了预聚合(和、最大、最小值等),所以这个评测应该是 预计算 VS 即席查询,结果就不公平了
- 提供了简版的缓存、MQ等组件。这些组件的分布式特性未可知
- 可以根据查询的时间范围直接对内存数据和本地文件进行聚合查询,SQL层面不需要关心
- 函数和特性过少,不合适做大数据分析,针对物联网数据的特点做了针对性优化,不过其定位领域也是IOT ,如果要扩展到其他非IOT时序场景,需要多考虑考虑
有人说只是个WAL,绝壁算不算一个数据库,没条件做性能测试,期待其他第三方的全方位评测
2. 特性
官方的宣传:TDengine是一个开源的专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的工作量。
- 核心组件全部开源
- 安装包1.5M
- 将数据库、缓存、队列、流式计算融合在一起
- 强悍的写入查询能力:单核每秒就能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点
- 资源占用低(列式存储和支持各种压缩算法)
- 可以根据查询的时间范围直接对内存数据和本地文件进行聚合查询,SQL层面不需要关心
3 官方的性能报告(单机):
没条件做性能测试,只放官方的单机测试报告
测试环境:单机8C16G
数据结构:1列定长字符串,4列浮点
1 | create table tablename (ts timestamp, idtag binary(12), lat float, lon float, direction int); |
3.1写入性能:
奇怪的比较视角:客户端连接数 和 写入速度对比关系…
查询性能:
不能叫查询性能,应该是读取性能
了简单的查询测试,就是将插入的数据全部读出。总的读取通吐量与客户端链接数有关系,多个链接的通吐量应该比单个的要高,因此测试中测试了多个客户端的场景。
资源占用对比:
单客户端,持续写入一千万条记录,每隔一秒钟对占用的 CPU, Memory 和硬盘空间进行取样,最后平均,得到如下结果:
Average CPU Usage (%) | Average Memory Usage (%) | Disk Usage (K) | |
---|---|---|---|
TDengine | 17.72592593 | 0.514814815 | 245868 |
ClickHouse | 45.2 | 4.86 | 846840 |
InfluxDB | 67.89373134 | 2.909850746 | 184900 |
MySQL | 88.93493205 | 1.811111111 | 487688 |
Cassandra | 96.6736 | 28.082 | 467792 |
OpenTSDB | 92.7164486 | 6.288598131 | 6557872 |
聚合函数性能对比
TDengine每个数据块都已经做了预聚合(和、最大、最小值等),所以和其他db 做函数性能对比并不公平,能远超其他通用型DB
TDengine聚合函数就这几个,不到10个
TDengine | InfluxDB | ClickHouse | OpenTSDB | MySQL | Cassandra | |
---|---|---|---|---|---|---|
COUNT | 2.8 | 72 | 14.4 | 3701.8 | 19.2 | 596.6 |
AVG | 4 | 74.6 | 12.2 | 3693 | 20.2 | 587.4 |
SUM | 4.2 | 78.8 | 13 | 3706.6 | 20 | 589.8 |
MAX | 4.6 | 77.4 | 12.6 | 3705.8 | 20.2 | 594.2 |
MIN | 4.4 | 75.8 | 12.2 | 3708.4 | 19.2 | 601.4 |
FIRST | 4 | 43.2 | 13.2 | 3716.8 | NULL | NULL |
LAST | 4 | 41.8 | 12.2 | 3718.2 | NULL | NULL |
STDDEV | 7.6 | 189.8 | 12.2 | 3717.6 | NULL | NULL |
PERCENTILE | 65.2 | 187.2 | 15.2 | 3723 | NULL | NULL |