跳到主要内容

用 Docker 快速体验 TDengine

为了能够快速体验 TDengine TSDB 的完整功能,推荐您使用 TDengine TSDB-Enterprise. 本节首先介绍如何通过 Docker 快速启动 TDengine TSDB-Enterprise,然后介绍如何在 Docker 环境下体验 TDengine TSDB-Enterprise 的写入、查询、可视化管理、与 Grafana 集成和零代码数据写入等功能。如果您不熟悉 Docker,请使用安装包的方式快速体验。如果您希望为 TDengine TSDB 贡献代码或对内部技术实现感兴趣,请参考 TDengine TSDB GitHub 主页.

备注

从 3.3.7.0 版本开始,TDengine TSDB 的镜像名称调整如下:

  • 社区版的镜像名称从 tdengine/tdengine 重命名为 tdengine/tsdb
  • 企业版的镜像名称从 tdengine/tdengine-ee 重命名为 tdengine/tsdb-ee

启动 TDengine TSDB

  1. 拉取最新版本的 TDengine TSDB-Enterprise 镜像:
docker pull tdengine/tsdb-ee:latest

如果您无法直接访问 Docker Hub, 可以前往 TDengine 产品下载中心的 TDengine TSDB-Enterprise Docker 镜像下载页面,获取 Docker 镜像的下载链接。完成下载后,请您根据页面上离线安装的提示,加载并修改镜像的名称、标签。

  1. 启动 TDengine TSDB Docker 容器:
docker run -d \
-v ~/data/taos/dnode/data:/var/lib/taos \
-v ~/data/taos/dnode/log:/var/log/taos \
-p 6030:6030 -p 6041:6041 -p 6043:6043 -p 6060:6060 \
-p 6044-6049:6044-6049 \
-p 6044-6045:6044-6045/udp \
-p 6050:6050 -p 6055:6055 \
--name tdengine-tsdb \
tdengine/tsdb-ee

关于 TDengine TSDB 各服务的端口占用情况,请参考运维指南中的网络端口要求章节。

  1. 查看 TDengine TSDB Docker 容器的运行状态:
docker ps -f name=tdengine-tsdb

请查看已命令输出的 STATUS (状态) 字段,如果该状态的值为 "Up ... (healthy)", 说明容器已启动并正常运行。

  1. 进入容器体验 TDengine TSDB

执行以下命令,进入容器内部:

docker exec -it tdengine-tsdb bash

然后,就可以执行相关的 Linux 命令操作和访问 TDengine TSDB.

关于使用 Docker 部署 TDengine TSDB 的更多详情,请参考运维指南中的 Docker 部署章节。

快速体验

体验 TDengine TSDB 命令行

为便于检查 TDengine 的状态,执行数据库(Database)的各种即席(Ad Hoc)查询,TDengine TSDB 提供一命令行应用程序(以下简称为 TDengine TSDB CLI)taos。要进入 TDengine 命令行,您只要在终端执行 taos (Linux/Mac) 或 taos.exe (Windows) 即可。TDengine CLI 的提示符号如下:

taos>

在 TDengine TSDB CLI 中,用户可以通过 SQL 命令来创建/删除数据库、表等,并进行数据库(Database)插入查询操作。在终端中运行的 SQL 语句需要以分号(;)结束来运行。示例:

CREATE DATABASE demo;
USE demo;
CREATE TABLE t (ts TIMESTAMP, speed INT);
INSERT INTO t VALUES ('2019-07-15 00:00:00', 10);
INSERT INTO t VALUES ('2019-07-15 01:00:00', 20);
SELECT * FROM t;

ts | speed |
========================================
2019-07-15 00:00:00.000 | 10 |
2019-07-15 01:00:00.000 | 20 |

Query OK, 2 row(s) in set (0.003128s)

除执行 SQL 语句外,系统管理员还可以从 TDengine TSDB CLI 进行检查系统运行状态、添加删除用户账号等操作。TDengine TSDB CLI 连同应用驱动也可以独立安装在机器上运行,更多细节请参考 TDengine TSDB 命令行

体验写入

taosBenchmark 是一个专为测试 TDengine 性能而设计的工具,它能够全面评估 TDengine 在写入、查询和订阅等方面的功能表现。该工具能够模拟大量设备产生的数据,并允许用户灵活控制数据库、超级表、标签列的数量和类型、数据列的数量和类型、子表数量、每张子表的数据量、写入数据的时间间隔、工作线程数量以及是否写入乱序数据等策略。

启动 TDengine 的服务,在终端中执行如下命令

taosBenchmark -y

系统将自动在数据库 test 下创建一张名为 meters 的超级表。这张超级表将包含 10,000 张子表,表名从 d0 到 d9999,每张表包含 10,000 条记录。每条记录包含 ts(时间戳)、current(电流)、voltage(电压)和 phase(相位)4 个字段。时间戳范围从“2017-07-14 10:40:00 000”到“2017-07-14 10:40:09 999”。每张表还带有 location 和 groupId 两个标签,其中,groupId 设置为 1 到 10,而 location 则设置为 California.Campbell、California.Cupertino 等城市信息。

执行该命令后,系统将迅速完成 1 亿条记录的写入过程。实际所需时间取决于硬件性能,但即便在普通 PC 服务器上,这个过程通常也只需要十几秒。

taosBenchmark 提供了丰富的选项,允许用户自定义测试参数,如表的数目、记录条数等。要查看详细的参数列表,请在终端中输入如下命令

taosBenchmark --help

有关 taosBenchmark 的详细使用方法,请参考 taosBenchmark 参考手册

体验查询

使用上述 taosBenchmark 插入数据后,可以在 TDengine CLI(taos)输入查询命令,体验查询速度。

  1. 查询超级表 meters 下的记录总条数
SELECT COUNT(*) FROM test.meters;
  1. 查询 1 亿条记录的平均值、最大值、最小值
SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters;
  1. 查询 location = "California.SanFrancisco" 的记录总条数
SELECT COUNT(*) FROM test.meters WHERE location = "California.SanFrancisco";
  1. 查询 groupId = 10 的所有记录的平均值、最大值、最小值
SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters WHERE groupId = 10;
  1. 对表 d1001 按每 10 秒进行平均值、最大值和最小值聚合统计
SELECT _wstart, AVG(current), MAX(voltage), MIN(phase) FROM test.d1001 INTERVAL(10s);

在上面的查询中,使用系统提供的伪列 _wstart 来给出每个窗口的开始时间。

进阶体验

完成以上内容后,您可继续体验以下任务:

下一步

在完成上述快速体验后,您可以进一步探索 TDengine 的更多功能和特性。