TDEngine(taos) 涛思数据库-sql初识

发布于:2024-08-03 ⋅ 阅读:(156) ⋅ 点赞:(0)

一、基本使用

这里读者自行安装数据库:使用安装包立即开始 | 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 万条记录,每条记录有 tscurrentvoltagephase 四个字段,时间戳从 2017-07-14 10:40:00 000 到 2017-07-14 10:40:09 999,每张表带有标签 location 和 groupId,groupId 被设置为 1 到 10,location 被设置为 California.CampbellCalifornia.CupertinoCalifornia.LosAngelesCalifornia.MountainViewCalifornia.PaloAltoCalifornia.SanDiegoCalifornia.SanFranciscoCalifornia.SanJoseCalifornia.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);

网站公告

今日签到

点亮在社区的每一天
去签到