跳到主要内容

用安装包快速体验 TDengine TSDB

本页介绍如何使用安装包快速安装 TDengine TSDB Enterprise,并完成一次基础体验:启动服务、进入 shell、写入数据和查询数据。如果你希望为 TDengine 贡献代码,或对内部技术实现感兴趣,请参考 TDengine GitHub 主页

前提条件

请先确认已经完成以下准备:

  1. 已经选择要安装 TDengine 的操作系统环境。
  2. Linux 环境需要具备 sudo 权限;Windows 环境需要使用管理员权限运行相关命令。

安装

  1. 从列表中下载 tar.gz 安装包:

    • 进入到安装包所在目录,使用 tar 解压安装包,以 x64 架构为例:

      tar -zxvf tdengine-tsdb-enterprise-{{VERSION}}-linux-x64.tar.gz
    • 进入解压后的目录,执行 install.sh 安装脚本。

      sudo ./install.sh

    更多类型和版本的安装包,请前往 TDengine 产品下载中心 下载。

    启动服务

    完成安装后,在终端执行以下脚本,启动所有服务:

    sudo start-all.sh

    TDengine 的所有组件均使用 systemd 进行服务管理。可以使用以下命令查看服务状态:

    sudo systemctl status taosd
    sudo systemctl status taosadapter
    sudo systemctl status taoskeeper
    sudo systemctl status taos-explorer

    如果服务状态中包含 Active: active (running) since ...,说明服务已经启动成功。

    快速体验

    打开命令行

    TDengine 提供命令行工具 taos shell,可用于检查服务状态、执行 SQL、管理数据库和表。进入 shell 后,你可以直接体验写入和查询功能。

    在 Linux 或 macOS 终端中执行:

    taos

    在 Windows 中执行:

    taos.exe

    进入 shell 后,提示符如下:

    taos>

    在 shell 中,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 外,你还可以通过 shell 检查系统运行状态、管理用户账号等。shell 和应用驱动也可以独立安装在其他机器上运行,详情请参考 TDengine 命令行

    写入测试数据

    taosBenchmark 是 TDengine 提供的测试工具,可用于快速生成测试数据,并体验写入、查询和订阅等功能。它可以模拟大量设备产生的数据,并支持配置数据库、超级表、标签列、数据列、子表数量、每张子表的数据量、写入间隔、工作线程数量以及是否写入乱序数据等参数。

    确认 TDengine 服务已经启动后,在终端中执行下面的命令:

    taosBenchmark -y

    执行后,系统会自动在 test 数据库中创建一张名为 meters 的超级表。该超级表包含 10,000 张子表,表名从 d0d9999,每张表包含 10,000 条记录。每条记录包含 ts(时间戳)、current(电流)、voltage(电压)和 phase(相位)4 个字段。时间戳范围从 2017-07-14 10:40:00.0002017-07-14 10:40:09.999。每张表还带有 locationgroupId 两个标签,其中 groupId 的取值为 1 到 10,locationCalifornia.CampbellCalifornia.Cupertino 等城市信息。

    该命令会写入 1 亿条记录。实际耗时取决于硬件性能,即使在普通 PC 服务器上,这个过程通常也只需要十几秒。

    taosBenchmark 提供了丰富的参数,可用于自定义表数量、记录条数等测试配置。执行下面的命令可以查看完整参数列表:

    taosBenchmark --help

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

    查询测试数据

    使用 taosBenchmark 写入数据后,可以在 shell 中执行下面的查询,体验查询速度。

    1. 查询超级表 meters 下的记录总条数:
    SELECT COUNT(*) FROM test.meters;

    count(*) |
    ===================
    100000000 |

    Query OK, 1 row(s) in set (0.075247s)
    1. 查询 1 亿条记录的平均值、最大值和最小值:
    SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters;

    avg(current) | max(voltage) | min(phase) |
    ===============================================
    10.2084751316071 | 258 | 145 |

    Query OK, 1 row(s) in set (0.094037s)
    1. 查询 location = "California.SanFrancisco" 的记录总条数:
    SELECT COUNT(*) FROM test.meters WHERE location = "California.SanFrancisco";

    count(*) |
    ===================
    10340000 |

    Query OK, 1 row(s) in set (0.050540s)
    1. 查询 groupId = 10 的所有记录的平均值、最大值和最小值:
    SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters WHERE groupId = 10;

    avg(current) | max(voltage) | min(phase) |
    ===============================================
    10.2084751316071 | 258 | 145 |

    Query OK, 1 row(s) in set (0.033754s)
    1. 对表 d1001 按每 10 秒进行平均值、最大值和最小值聚合统计:
    SELECT _wstart, AVG(current), MAX(voltage), MIN(phase)
    FROM test.d1001 INTERVAL(10s);

    _wstart | avg(current) | max(voltage) | min(phase) |
    =========================================================================
    2017-07-14 10:40:00.000 | 10.2084751316071 | 258 | 145 |

    Query OK, 1 row(s) in set (0.004716s)

    在上面的查询中,系统伪列 _wstart 表示每个窗口的开始时间。

    进阶体验

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

    下一步

    完成上述快速体验后,你可以继续阅读后续章节,进一步了解 TDengine 的数据建模、写入、查询、数据订阅和流式计算等能力。