TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源。
为什么使用TDengine?
官网上对此有介绍:
其在物联网领域拥有广阔的应用场景:
更多内容可以看涛思创始人的这两篇博客:物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?、通用大数据架构为什么不适合处理物联网数据?。
另外其对物联网和工业互联网大数据特点总结的这篇博客(物联网、工业互联网大数据的特点)也很有意义。物联网、工业互联网大数据的特点:
- 时序的,一定带有时间戳;
- 结构化的;
- 数据极少有更新操作;
- 数据源是唯一的;
- 相对于互联网应用,读多写少;
- 用户关心的是一段时间的趋势;
- 数据是有保留期限的;
- 数据的查询往往是基于时间段和某组设备的;
- 除存储查询外,往往需要实时分析计算操作;
- 流量平稳可预测;
- 数据量巨大;
TDengine使用SQL接口,学习成本低。另外其安装、部署和维护简单。
在CentOS7.6中使用TDengine
本部分基于TDengine文档
下载与安装
安装参考文档:
这里我选择的是通过安装包安装,因为我使用的是CentOS7.6,因此我选择下载TDengine-server-2.0.8.0-Linux-x64.rpm
(4.2M)
# 安装
rpm -iv TDengine-server-2.0.8.0-Linux-x64.rpm
启动TDengine
# 启动TDengine
systemctl start taosd
# 检查TDengine是否正常工作
systemctl status taosd
TDengine命令行程序
# 打开TDengine终端
taos
命令行参数:
-c
,--config-dir
- 指定配置文件目录,默认为
/etc/taos
;
- 指定配置文件目录,默认为
-h
,--host
- 指定服务的FQDN,默认为本地服务;
-s
,--commands
- 在不进入终端的情况下运行
TDengine
命令;
- 在不进入终端的情况下运行
-u
,--user
- 连接TDengine服务器的用户名,缺省为root;
-p
,--password
- 连接TDengine服务器的密码,缺省为taosdata;
-?
,--help
- 打印出所有命令行参数;
在TDengine终端中,用户可以通过SQL命令来创建/删除数据库、表等,并进行插入查询操作。在终端中运行的SQL语句需要以分号结束来运行。
除执行SQL语句外,系统管理员还可以从TDengine终端检查系统运行状态,添加删除用户账号等。
另外,在TDengine终端可以通过source命令来运行SQL命令脚本。
# taos> sql命令
source <脚本名称>
测试Demo
官方也给提供了测试Demo,方便对比其与其他类型数据库的性能。
首先在Linux系统终端下运行taosdemo
命令,其将在涛思数据库中创建一个test
数据库。大约需要十分钟,2.1G硬盘空间。其有十亿条数据记录。
数据库test下面自动创建一张超级表meters,该超级表下有1万张表,表名为"t0" 到"t9999",每张表有10万条记录,每条记录有 (f1, f2, f3)三个字段,时间戳从"2017-07-14 10:40:00 000" 到"2017-07-14 10:41:39 999",每张表带有标签areaid和loc, areaid被设置为1到10, loc被设置为"beijing"或者“shanghai"。
# 查询超级表下记录总条数
select count(*) from test.meters;
# 查询10亿条记录的平均值、最大值、最小值等:
select avg(f1), max(f2), min(f3) from test.meters;
# 查询loc="beijing"的记录总条数:
select count(*) from test.meters where loc="beijing";
# 查询areaid=10的所有记录的平均值、最大值、最小值等:
select avg(f1), max(f2), min(f3) from test.meters where areaid=10;
# 对表t10按10s进行平均值、最大值和最小值聚合统计:
select avg(f1), max(f2), min(f3) from test.t10 interval(10s);
此外,taosdemo
命令自带很多选项,包括配置表的数目、记录条数等等。可执行taosdemo --help
来查看详细列表。
卸载
# 卸载
rpm -e tdengine