一、基本使用
这里读者自行安装数据库:使用安装包立即开始 | TDengine 文档 | 涛思数据 (taosdata.com)
// 下载gz文件,解压
tar -zxvf TDengine-server-<对应版本>-Linux-x64.tar.gz
// 解压后启动
sudo ./install.sh
启动成功后,直接输入 taos 即可进入数据库:
建表语句同mysql一样,在终端中运行的 SQL 语句需要以分号(;)结束来运行,CREATE TABLE
语句用于创建普通表和以超级表为模板创建子表。
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)
创建数据库示例
创建了一个有 10 个 vgroup 名为 db 的数据库, 其中每个 vnode 分配 10MB 的写入缓存
create database if not exists db vgroups 10 buffer 10
查看系统中的所有数据库
SHOW DATABASES;
创建子表
CREATE TABLE [IF NOT EXISTS] tb_name USING stb_name (tag_name1, ...) TAGS (tag_value1, ...);
显示所有表
SHOW TABLES [LIKE tb_name_wildchar];
显示表创建语句
SHOW CREATE TABLE tb_name;
获取表结构信息
DESCRIBE [db_name.]tb_name;
显示当前数据库下的所有超级表信息
SHOW STABLES [LIKE tb_name_wildcard];
二、使用 taosBenchmark 测试
在终端执行 taosBenchmark,
这条命令很快完成 1 亿条记录的插入:
$ taosBenchmark
该命令将在数据库 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 被设置为 California.Campbell
、California.Cupertino
、California.LosAngeles
、California.MountainView
、California.PaloAlto
、California.SanDiego
、California.SanFrancisco
、California.SanJose
、California.SantaClara
或者 California.Sunnyvale
。
查询超级表 meters
下的记录总条数:
SELECT COUNT(*) FROM test.meters;
查询 1 亿条记录的平均值、最大值、最小值等:
SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters;
查询 location = "California.SanFrancisco" 的记录总条数:
SELECT COUNT(*) FROM test.meters WHERE location = "California.SanFrancisco";
查询 groupId = 10 的所有记录的平均值、最大值、最小值等:
SELECT AVG(current), MAX(voltage), MIN(phase) FROM test.meters WHERE groupId = 10;
对表 d10
按每 10 秒进行平均值、最大值和最小值聚合统计:
SELECT FIRST(ts), AVG(current), MAX(voltage), MIN(phase) FROM test.d10 INTERVAL(10s);