tdengine使用感受
Posted 玖五二七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tdengine使用感受相关的知识,希望对你有一定的参考价值。
TDEngine是一款现代的时序(Time Series Database)数据库,之前在做项目的时候都是用SQL数据库去存历史日志信息的。直到一个项目需要对设备的历史记录落库。
这是时序数据库使用的典型场景,虽然之前一直用SQL数据库,但是用过都知道,在数据量大的时候会导致分页卡顿,甚至是无法分页。
这个项目使用时序数据库再合适不过了
1 它的历史数据是不会修改的
2 设备数量多,种类单一
3 种类后期可以扩展
4 需要配合拆线图和饼图来进行运行状态的展示
当时也做了一些时序数据库的比较,毕竟现在的时序库非常多。
1 inflexdb 这个是一款开源的非常知名的时序库,非常活跃,可以说是时序数据库的标杆。DBengine里TSDB的王者。
2 delphidb 这是一个国产的金融级时序数据库,有免费版的,但是集群版收费,最多支持2个结点,支持windows
3 tdengine当时叫taosdb 国产的开源时序数据库,集群版也免费,不支持windows,支持多种语言的sdk,通过taosadapter也有rest接口,接入成本低。
inflexdb由于要用自己的语法,需要有一定的学习成本。
2和3都是用sql的语法去操作时序数据库,所以这2个一下就进入了考虑范围。
虽然这个项目的规模不大,但是考虑到后期接入设备的增加,扩展性还是要考虑的。
这样排除了2,选择了taosdb。后来用它带的性能工具进行了测试,1000张表,每张表2000条数据,就是200万的数据总量,在我的4核8G的虚拟机里面测试结果让我非常满意,测试完后便用taosdb进行项目开发。
因为是SQL的语法,开发的过程还是挺顺利的,利用超级表和冗余存储,解决了不同用户查看不同设备的问题。
项目上线半年多了,taosdb一直稳定运行,中间没有挂过,相当的稳定。设备没有完全到位,现在大概有20万设备数据,分布有10000多页,每页最大20条记录。现在不管点哪页,都非常的快,即使是最后一页,非常大的分页码,返回的时间也不超过1秒。这个是以前用SQL库的时候无论如何优化都肯定做不到的。目前机器的配置是2核8G,目前进场的设备也是有几百台。
它的秘诀在于分表,一个设备一张表,在数据库层面就做了性能优化。而开发人员,只需要按照模式往对应的表里面写数据就可以了。为每个新设备创建一张表,再把这些子表放到一个超级表中。这种设计为它的高性能奠定了扎实的基础。
总体来说对tdengine还是比较满意的,听说最近出了3.0,也支持了windows.也支持云原生。我其实比较关注的是windows,云原生啥的暂时需要不是特别硬性,因为部署在docker里面也可以的。
但是也要吐糟一下,taosdb的SDK不是很好接,特别是nodejs版…希望能有些简单点的方法。
以上是关于tdengine使用感受的主要内容,如果未能解决你的问题,请参考以下文章
tdengine 是不是支持使用线路协议将数据从 influxdb 传输到 tdengine
涛思数据 TDengine 征稿—十分钟上手TDengine大数据平台