TDengine使用整理

目录

操作整理:

数据库操作:

表操作:

超级表操作

用户操作:

其他功能:

关键字

系统文件路径

常见异常/错误信息

PS


此版本整理时为2.0.x版本,TDengine版本迭代频繁,某些命令语法可能有变动。

操作整理:

数据库操作:

  #创建一个数据库test

  CREATE DATABASE test;

  #创建库时候的参数(非必选)

  Keep:数据保留时间。超过此时间后自动删除过期的数据,缺省时默认3650天(十年)

  EG: CREATE DATABASE test keep 730;

  days: 数据落成文件的时间范围。days 10 表示每十天的数据为一个数据文件,此范围官方推荐为10-100。

  EG: CREATE DATABASE test keep 730 days 10;

  comp文件压缩标志位,数据文件的压缩程度。一阶段压缩根据数据的类型进行了相应的压缩。二阶段压缩在一阶段压缩的基础上又用通用压缩算法进行了压缩,压缩率更高。0:关闭,1:一阶段压缩,2:两阶段压缩。默认为2。

  EG: CREATE DATABASE mydb comp 1;

  replica: 虚拟节点(vnode) 数量, 可理解为数据副本数量,一个数据库的数据将会存放在虚拟节点中,多个虚拟节点将会使用m/s主从方式异步备份。

               虚拟节点数量必须小于等于集群的节点数(或cpu核心数),默认与CPU核数相同,可通过maxVgroupsPerDb配置。默认为1

   EG: CREATE DATABASE test keep 730 days 10 replica 2;

  quorum: 设置值大于1的话,开启同步复制。异步复制时存在极低概率会数据丢失(主虚拟节点和从虚拟节点同时宕机)。

  EG: CREATE DATABASE test keep 730 days 10 replica 2 quorum 2;

  blocks: TDengine的每个虚拟节点都会占用一些独立的内存做缓存池用,数据放在缓存池中提高查询速度,内存的大小由blocks和cache参数决定。

              blocks配置虚拟节点可以有几个内存块,cache设定每个内存块的大小,blocks默认为4个,cache默认16M,也就是说虚拟节点所占的内存默认至少为4*16=66M。官方文档两处不一致,一处blocks默认为6,一处说默认为4。

  EG: CREATE DATABASE mydb keep 730 days 10 replica 2 quorum 2 blocks 8;

  precision:设定时间精度,默认ms毫秒,us为微秒

  EG: CREATE DATABASE mydb precision 'us';

  walLevelTDengine支持WAL(Write Ahead Log)机制,实现数据的容错。请求到来时,先将请求的原始数据包写入数据库日志文件,等数据成功写入数据库数据文件后,再删除相应的WAL。配置项为0、1和2, 默认为1

  0:不写wal;  1:写wal, 但不执行fsync;   2:写wal, 而且执行fsync。

  fsync当wal设置为2时,执行fsync的周期。设置为0,表示每次写入,立即执行fsync。单位为毫秒,默认值:3000。fsync我理解为虚拟节点的数据同步周期,默认3000毫秒,为0 时表示数据总是立即同步,但会影响效率

  minRows: 文件块中记录的最小条数,单位为条,默认值:100。

  maxRows: 文件块中记录的最大条数,单位为条,默认值:4096。

  #显示服务器和客户端的版本信息

  select client_version();

  select server_version();

  #查看服务器状态

  select server_status();

  #显示所有的数据库的信息,包含数据库的各个参数
         show databases;

  #使用数据库 test
         use test ;

 #删除库
        drop database test ;

#修改数据的保留时间
       alter database test keep 365;

#修改数据库的副本数
       alter database test replica 3;

#修改数据库的文件压缩标志位
       alter database test comp 2;

#修改数据的同/异步方式,为1表示异步,大于1表示同步,数值越大,表示在同步时主/从节点的确认次数
       alter database test quorum 2;

#修改每个VNODE (TSDB) 中有多少cache大小的内存块
       alter database test blocks 100;

表操作

#创建表时timestamp 字段必须为第一个字段类型
       create table if not exists mytable(ts timestampcolumn_name int,……);

#根据超级表创建子表,子表会复制除超级表里的tag字段外的所有字段,但需子表设定tag内容

       create table tab using super_table tags (column_value,column_value……);

#删除表
       drop table if exists mytable;

#显示当前数据库下的所有数据表信息  tables非表名,而是固定写法
       show tables;

#显示当前数据库下的所有数据表信息
        show tables like "%table_name%";

#获取表的结构信息
       describe mytable;

#表增加列
       alter table mytable add column addfield int;

#表删除列
       alter table mytable drop column addfield;

超级表操作


      #创建STable, 与创建表的SQL语法相似,但需指定TAGS字段的名称和类型。说明:
      1. TAGS 列的数据类型不能是timestamp类型;
      2.TAGS 列名不能与其他列名相同;
      3. TAGS 列名不能为预留关键字;
      4.TAGS 最多允许128个,可以0个,总长度不超过16k个字符


      create table if not exists mysupertable (ts timestamp, field1 int,……) tags (tag1 nchar(50), tag2 nchar(100),……);

      #删除超级表
      drop table if exists super_table ;

      #显示当前数据库下的所有超级表信息 show stables
      show stables like "%super%";

      #获取超级表的结构信息
      describe super_table ;

      #超级表增加列
      alter table super_table add column column_name int;

      #超级表删除列
      alter table super_table drop column column_name;

      #添加标签
      alter table super_table add tag column nchar(60);

      #删除标签
      alter table super_table drop tag tag_name;

      #修改标签名
      alter table super_table change tag old_tag_name  new_tag_name;

      #修改子表标签值(TAG)
      alter table item_table_name set tag column_key = "value";

用户操作:

#创建用户和密码

create user yangsw pass ‘pwd2020’ 

#删除用户, root用户可用

drop user yangsw

#修改密码

alter user yangsw pass ‘pwd20’

#修改用户权限

alter user yangsw privilege <super|write|read>

#显示所有用户

show users

其他功能:

select server_status(): 返回服务器状态,连接成功返回1,可配置在连接池的验证查询。

show streams:查看系统中全部运行的连续查询,并可以通过 kill stream <stream-id>命令杀掉对应的连续查询

show connections: 显示数据库的各个连接信息;

kill connection <connection-id>: 强制结束某个连接

show queries:显示数据查询,其中第一列显示的以冒号隔开的两个数字为query-id,为发起该query应用连接的connection-id和查询次数。

Kill query <query-id>:强制关闭数据查询,其中query-id是SHOW QUERIES中显示的 connection-id:query-no字串,如“105:2”,拷贝粘贴即可。

SHOW DNODES: 获取数据节点的信息。

windows下可在客户端文件下(一般为C:\TDengine) 通过shell命令连接服务器  taos.exe -h  {fqdn地址或ip地址}

关键字

TBNAME

在超级表查询中可视为一个特殊的标签,代表查询涉及的子表名

SELECT  TBNAME, tag1 FROM meters;

TBNAME可跟tag进行查询,也可单独查询,但是单独查询tag会报错

_c0:表示表(超级表)的第一列,第一列一般都为时间戳列

SELECT  _c01  FROM meters ;

SLIDING:sliding配合INTERVAL进行连续查询

select avg(voltage) from meters interval(1m) sliding(30s);

以一分钟为时间窗口、30秒为前向增量计算voltage的平均值

GROUP BY:同Mysql

ORDER BY:同Mysql

SLIMIT未测试

SOFFSET未测试

LIMIT同Mysql

OFFSET:同Mysql

>> : 导出文件 select * from siot where field1 = 100  >>  /home/exp.csv

系统文件路径

/etc/taos/taos.cfg :  配置文件

/var/lib/taos : 数据文件目录,包括数据文件及数据节点、虚拟节点、管理节点等信息

/var/log/taos : 日志文件

/usr/local/taos/bin : 脚本文件

/usr/local/taos/driver : 动态链接库 windows下安装客户端后为 C:\TDengine\driver

常见异常/错误信息

Out of DNodes : 创建数据库时指定了replica 的设置,但TDengine的服务端是单机版,因此一个数据节点的情况下无法创建出多个虚拟节点(Vnode)。

syntax error near xxx : 多数为语法错误或者某些关键字/函数不支持。

Unable to resolve FQDN: 是由于客户端或数据节点无法解析FQDN(Fully Qualified Domain Name)导致检查windows本地的hosts文件是否配置FQDN的解析是否正确,可以ping和telnet看是否能通。

如果TDengine为集群,那么hosts中需要配置每个节点的解析。

如集群有三个节点td1,td2,td3, 则hosts中需要配置此三个节点 192.168.0.1  tdengine1    192.168.0.1  tdengine2   192.168.0.1  tdengine3 

Unable to establish connection : 出现频率较高的问题,多数时候为网络、端口的问题,官方给出了9个排查问题的方案,但几个方案也都是在排查网络和端口是否正常。

  对于TDengine本身的安装而言,FQDN的设置需要保持几个地方的一致:

   1. 服务器的host配置,一般为etc下的hostname和host   

   2. TDengine安装数据目录下的json,安装目录默认为 /var/lib/taos/dnode 其中某些json中的fqdn配置要和host文件中的fqdn地址一样

保证fqdn配置完全没问题后再进行端口等问题的排查

PS

  1. 服务器和客户端安装时版本需要对应,如服务端是2.0.1.1,客户端也需要2.0.1.1。
  2. 数据都有保存时间,创建数据库时可通过keep设定数据保留时间,不设定默认3650天,一旦超过保存时间,数据将被系统自动删除。
  3. 数据备份时间days可在创建库时指定,默认10天,也就是说每隔十天将会进行一次数据备份,以文件形式保存。
  4. TDengine对SQL语句中的英文字符不区分大小写,自动转化为小写执行。因此用户大小写敏感的字符串及密码,需要使用单引号将字符串引起来。
  5. 子表的Tag值在建表时已设定,insert操作时不用写入tag
  6. SQL语句默认长度65480个字符(64KB),但可通过系统配置参数maxSQLLength修改,最长可配置为1M
  7. 根据实际测试,默认sql长度下, ts+11个物理量(采集的字段),一般数据量下Mybatis做批量插入时一次最多300+大小size的list插入数据库,ts+6个物理量的最多500+
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值