TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源。
运行tdengine只需要一台普通的PC,比如树莓派。
- 硬件:Raspberry Pi 4B(4g或8g版本)
- 系统:Ubuntu 20.04 LTS
- Docker:20.10.3
- tdengine镜像:tdengine/tdengine:2.0.20.13
从2.0.14.0版本开始,TDengine提供的镜像已经可以同时支持X86-64、X86、arm64、arm32平台,像NAS、树莓派、嵌入式开发板之类可以运行docker的非主流计算机也可以基于本文档轻松体验TDengine。
下载 Docker
Docker 工具自身的下载请参考 Docker官网文档。
安装完毕后可以在命令行终端查看 Docker 版本。如果版本号正常输出,则说明 Docker 环境已经安装成功。
$ docker -vDocker version 20.10.3, build 48d30b5
在 Docker 容器中运行 TDengine
1,使用命令拉取 TDengine 镜像,并使它在后台运行。
$ docker run -d --name tdengine tdengine/tdengine:2.0.20.137760c955f225d72e9c1ec5a4cef66149a7b94dae7598b11eb392138877e7d292
- docker run:通过 Docker 运行一个容器
- --name tdengine:设置容器名称,我们可以通过容器名称来查看对应的容器
- -d:让容器在后台运行
- tdengine/tdengine:2.0.20.13:拉取的 TDengine 官方发布的应用镜像
- 7760c955f225d72e9c1ec5a4cef66149a7b94dae7598b11eb392138877e7d292:这个返回的长字符是容器 ID,我们也可以通过容器 ID 来查看对应的容器
2,确认容器是否已经正确运行。
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS ···c452519b0f9b tdengine/tdengine "taosd" 14 minutes ago Up 14 minutes ···
- docker ps:列出所有正在运行状态的容器信息。
- CONTAINER ID:容器 ID。
- IMAGE:使用的镜像。
- COMMAND:启动容器时运行的命令。
- CREATED:容器创建时间。
- STATUS:容器状态。UP 表示运行中。
3,进入 Docker 容器内,使用 TDengine。
$ docker exec -it tdengine /bin/bashroot@c452519b0f9b:~/TDengine-server-2.0.20.13#
- docker exec:通过 docker exec 命令进入容器,如果退出,容器不会停止。
- -i:进入交互模式。
- -t:指定一个终端。
- c452519b0f9b:容器 ID,需要根据 docker ps 指令返回的值进行修改。
- /bin/bash:载入容器后运行 bash 来进行交互。
4,进入容器后,执行 taos shell 客户端程序。
$ root@c452519b0f9b:~/TDengine-server-2.0.20.13# taos
Welcome to the TDengine shell from Linux, Client Version:2.0.20.13Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos>
TDengine 终端成功连接服务端,打印出了欢迎消息和版本信息。如果失败,会有错误信息打印出来。在 TDengine 终端中,可以通过 SQL 命令来创建/删除数据库、表、超级表等,并可以进行插入和查询操作。具体可以参考 TAOS SQL 说明文档。
通过 taosdemo 进一步了解 TDengine
1,接上面的步骤,先退出 TDengine 终端程序。
$ taos> qroot@c452519b0f9b:~/TDengine-server-2.0.20.13#
2,在命令行界面执行 taosdemo。
root@c452519b0f9b:~/TDengine-server-2.0.20.13# taosdemo
taosdemo is simulating data generated by power equipments monitoring...
host: 127.0.0.1:6030user: rootpassword: taosdataconfigDir: resultFile: ./output.txtthread num of insert data: 10thread num of create table: 10top insert interval: 0number of records per req: 30000max sql length: 1048576database count: 1database[0]:database[0] name: testdrop: yesreplica: 1precision: mssuper table count: 1super table[0]:stbName: metersautoCreateTable: nochildTblExists: nochildTblCount: 10000childTblPrefix: ddataSource: randiface: taoscinsertRows: 10000interlaceRows: 0disorderRange: 1000disorderRatio: 0maxSqlLen: 1048576timeStampStep: 1startTimestamp: 2017-07-14 10:40:00.000sampleFormat: sampleFile: tagsFile: columnCount: 3column[0]:FLOAT column[1]:INT column[2]:FLOAT tagCount: 2tag[0]:INT tag[1]:BINARY(16)
Press enter key to continue or Ctrl-C to stop
回车后,该命令将在数据库 test 下面自动创建一张超级表 meters,该超级表下有 1 万张表,表名为 "d0" 到 "d9999",每张表有 1 万条记录,每条记录有 (ts, current, voltage, phase) 四个字段,时间戳从 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:40:09 999",每张表带有标签 location 和 groupId,groupId 被设置为 1 到 10, location 被设置为 "beijing" 或者 "shanghai"。
执行这条命令大概需要几分钟,最后共插入 1 亿条记录。
3,进入 TDengine 终端,查看 taosdemo 生成的数据。
- 进入命令行。
$ root@c452519b0f9b:~/TDengine-server-2.0.20.13# taos
Welcome to the TDengine shell from Linux, Client Version:2.0.20.13Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos>
- 查看数据库。
$ taos> show databases;name | created_time | ntables | vgroups | ···test | 2021-08-18 06:01:11.021 | 10000 | 6 | ···log | 2021-08-18 05:51:51.065 | 4 | 1 | ···
- 查看超级表。
$ taos> use test;Database changed.
$ taos> show stables; name | created_time | columns | tags | tables |============================================================================================ meters | 2021-08-18 06:01:11.116 | 4 | 2 | 10000 |Query OK, 1 row(s) in set (0.003259s)
- 查看表,限制输出十条。
$ taos> select * from test.t0 limit 10;
DB error: Table does not exist (0.002857s)taos> select * from test.d0 limit 10; ts | current | voltage | phase |======================================================================================2017-07-14 10:40:00.000 | 10.12072 | 223 | 0.34167 |2017-07-14 10:40:00.001 | 10.16103 | 224 | 0.34445 |2017-07-14 10:40:00.002 | 10.00204 | 220 | 0.33334 |2017-07-14 10:40:00.003 | 10.00030 | 220 | 0.33333 |2017-07-14 10:40:00.004 | 9.84029 | 216 | 0.32222 |2017-07-14 10:40:00.005 | 9.88028 | 217 | 0.32500 |2017-07-14 10:40:00.006 | 9.88110 | 217 | 0.32500 |2017-07-14 10:40:00.007 | 10.08137 | 222 | 0.33889 |2017-07-14 10:40:00.008 | 10.12063 | 223 | 0.34167 |2017-07-14 10:40:00.009 | 10.16086 | 224 | 0.34445 |Query OK, 10 row(s) in set (0.016791s)
- 查看 d0 表的标签值。
$ taos> select groupid, location from test.d0; groupid | location |=================================0 | shanghai |Query OK, 1 row(s) in set (0.003490s)
停止正在 Docker 中运行的 TDengine 服务
$ docker stop tdenginetdengine
- docker stop:通过 docker stop 停止指定的正在运行中的 docker 镜像。
- tdengine:容器名称。
参考
微信公众号 - fastjrun(fastjrun)。
如有侵权,请联系 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。