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源创计划​​”,欢迎正在阅读的你也加入,一起分享。