官网链接:TDengine文档
TDEngine3.0的环境下载、安装及配置
回到目录 回到末尾
TD官方链接:参考手册-文件目录结构
vi /etc/taos/taos.cfg
vi /etc/taos/taosadapter.toml
systemctl start taosd
systemctl status taosd
systemctl stop taosd
systemctl restart taosd
TD官方链接:SQL手册-集群管理
show variables;
show dnodes;
show mondes;
create dnode “xxxx.com:6030” ;
drop dnode “xxxx.com:6030”;
要添加新节点,需要节点间以下参数相同:(1.查看数据库参数—>中查出来的参数值)
1. numOfMnodes:系统中管理节点个数。默认值:3。
2. balance:是否启动负载均衡。0:否,1:是。默认值:1。
3. mnodeEqualVnodeNum: 一个mnode等同于vnode消耗的个数。默认值:4。
4. offlineThreshold:>dnode离线阈值,超过该时间将导致该dnode从集群中删除。单位为秒,默认值:86400*10(即10天)。
5. statusInterval: dnode向mnode报告状态时长。单位为秒,默认值:1。
6. maxTablesPerVnode:>每个vnode中能够创建的最大表个数。默认值:1000000。
7. maxVgroupsPerDb:>每个数据库中能够使用的最大vgroup个数。
8. arbitrator: 系统中裁决器的end point,缺省为空。
9. timezone、locale、charset 的配置见客户端配置。
回到目录 回到末尾
taos 数据库
root
用户的默认密码为:taosdata
create user 用户名 pass ‘密码’;
taos -uroot -p密码
如:
taos -uroot -p123456 ;
TD官方链接:SQL手册-数据库管理
#keep 字段是指文件在表存储的时间,默认是天
create database if not exists 库名 keep n days m blocks k;
如:
create database if not exists mydb keep 365 days 10 blocks 4;
TDEngine3.x版本建库语句有变化,详见:TDengine3.0与2.0版本的差异总结
use 库名;
#(如果存在)
drop database [if exists] 库名;
show databases;
TDEngine3.x版本建库语句有变化,详见:TDengine3.0与2.0版本的差异总结
TDEngine3.x版本建库语句有变化,详见:TDengine3.0与2.0版本的差异总结
(1)修改数据库文件压缩标志位:
alter database 库名 comp 位数;
如:
lter database mydb quorum 2;
(2)修改数据库副本数:
alter database 库名 replica 数量;
如:
alter database mydb replica 2;
(3)修改数据文件保存的天数:
alter database 库名 keep 天数;
如:
alter database mydb keep 35;
(4)修改数据写入成功所需要的确认数:
alter database 库名 quorum 数目;
如:
alter database mydb quorum 2;
(5) 修改每个VNODE (TSDB) 中有多少cache大小的内存块:
alter database 库名 blocks 大小;
如:
alter database mydb blocks 100;
SHOW CREATE DATABASE db_name \G;
回到目录 回到末尾
CREATE STABLE [IF NOT EXISTS] stb_name (create_definition [, create_definition] ...) TAGS (create_definition [, create_definition] ...) [table_options]
如:
creates stable if not exists st(time timestamp, column_name int) tags (t1 nchar(50), t2 nchar(100));
#查看数据库内全部 STable,及其相关信息,包括 STable 的名称、创建时间、列数量、标签(TAG)数量、通过该 STable 建表的数量。
SHOW STABLES [LIKE tb_name_wildcard];
#如:显示当前数据库下的所有超级表信息
show stables like "%super%";
TDEngine3.x版本建库语句有变化,详见:TDengine3.0与2.0版本的差异总结
(2)显示一个超级表的创建语句
#对一个已经存在的超级表,返回其创建语句;在另一个集群中执行该语句,就能得到一个结构完全相同的超级表。常用于数据库迁移。
SHOW CREATE STABLE stb_name \G;
(3)获取超级表的结构信息
# 返回结果集的第一列为子表名,后续列为标签列。
DESCRIBE [db_name.]stb_name;
如:describe super_table ;
(4)获取超级表中所有子表的标签信息
SHOW TABLE TAGS FROM stbname;
如:SHOW TABLE TAGS FROM st;
(5)超级表下的子表查询
TDEngine 2.x版本查询:
select tbname,tagname from 超级表名称 【where子句】
如:
select tbname,t1,t2 from alarms where tbname like '%BX0103%';
TDEngine 3.x版本查询:
select * from information_schema.ins_tables where 子句;
#示例
select table_name,db_name,stable_name from information_schema.ins_tables where stable_name = 'datan';
#删除 STable 会自动删除通过 STable 创建的子表以及子表中的所有数据。
DROP STABLE [IF EXISTS] [db_name.]stb_name
修改超级表的结构会对其下的所有子表生效。无法针对某个特定子表修改表结构。标签结构的修改需要对超级表下发,TDengine 会自动作用于此超级表的所有子表。
(1)超级表增加列
ALTER STABLE stb_name ADD COLUMN col_name column_type;
如:alter table super_table add column column_name int;
(2)超级表删除列
ALTER STABLE stb_name DROP COLUMN col_name;
如:alter table super_table drop column column_name;
(3)添加标签
ALTER STABLE stb_name ADD TAG tag_name tag_type;
如:alter table super_table add tag column nchar(60);
(4)删除标签
ALTER STABLE stb_name DROP TAG tag_name;
如:alter table super_table drop tag tag_name;
(5)修改标签名
ALTER STABLE stb_name change TAG old_tag_name new_tag_name;
如:alter table super_table change tag old_tag_name new_tag_name;
(6)修改子表标签值(TAG)
alter table item_table_name set tag column_key = “value”;
解释一下(超级表)super_table,(子表)sub_table,(标签)Tag之间的关系:
在物联网中,假设我们现在有一个小区的电表设备需要联网。那么电表就会存在张三家的电表,李四家的电表,张三家电表的电流和电压,李四家的电流和电压,以及王五等等家的设备信息。
那么,作为电表这个物联设备,就可以设计成超级表super_table,这样电表就有了张三的电表sub_table1,李四家的电表sub_table2,等等,电流和电压就是超级表中定义表字段属性,而电表所属的业主名称,小区地址可以存放在TAG。
这个场景中,我们就可以下如下创建语句:
(1)创建电表超级表:super_table
create database mydb;
use mydb;
create table super_dianbiao(ts timestamp,dianya float,dianliu float) tags (yezhu_name nchar(15),xiaoqu_location nchar(50),menpai_num nchar(10));
(2)创建子表dianbiao……
create table dianbiao1001 using super_dianbiao tags(‘张三’,‘东城小区’,‘1-1101’);
create table dianbiao1002 using super_dianbiao tags(‘李四’,‘东城小区’,‘1-1102’);
(3)往子表中插入数据
insert into dianbiao1001 values(now,1.7,3.2);
回到目录 回到末尾
创建表时timestamp 字段必须为第一个字段类型为主键
CREATE TABLE [IF NOT EXISTS] [db_name.]tb_name (create_definition [, create_definition] ...) [table_options]
示例:
(1)创建普通表:
CREATE TABLE IF NOT EXISTS a(c timestamp,b int)
(2)根据超级表创建子表
#这样建表之后,子表会复制除去超级表里面的tags字段外的所有字段;
create table table_name using super_table tags (column_value,column_value……);
drop table if exists 表名;
show tables;
show tables like "%table_name%";
describe 表名;
alter table mytable add column addfield int;
alter table mytable drop column addfield;
#对一个已经存在的表,返回其创建语句;在另一个集群中执行该语句,就能得到一个结构完全相同的表。常用于数据库迁移。
SHOW CREATE TABLE stb_name \G;
回到目录 回到末尾
为方便数据导出,TDengine 提供了两种导出方式,分别是按表导出和用 taosdump 导出。
TD官方链接:参考手册-taosdump
实战链接:TDEngine - taosdump的安装与使用实战
如果用户需要导出一个表或一个 STable 中的数据,表 tb_name 中的数据就会按照 CSV 格式导出到文件 data.csv 中.
select * from子表名称 >> 文件目录/文件名称.csv ;
如:
select * from bx0101_tlt02s >> bx0101_tlt02s.csv ;
TDengine 也支持在 shell 对已存在的表从 CSV 文件中进行数据导入。CSV 文件只属于一张表且 CSV 文件中的数据格式需与要导入表的结构相同,在导入的时候,其语法如下:
insert into 子表名称 file '文件名称';
如:insert into bx0102_tlt02s file 'bx0102_tlt02s.csv' ;
TDengine3.0与2.0版本的差异
参考链接:如何把数据从 TDengine 2.x 迁移到 3.x ?