挂在模板到数据库上 后面的某个节点上 (包含数据库以后的节点上) set device template laoshantbm to root.qd.laoshan 注意: 模板挂载路径下禁止创建普通序列,已创建了普通序列的前缀路径上不允许挂载模板
create timeseries root.qd.laoshan.tbm3.ss float
手动创建序列是不被允许的,必须利用模板创建 【3.利用模板创建装备】
create timeseries using device template on root.qd.laoshan.tbm1 create timeseries using device template on root.qd.laoshan.tbm2
//假如根据模板创建的装备,假如一个路径上已经存在装备模板,可以省略创建时间序列。直接插入数据都可以创建时间序列。 insert into root.qd.laoshan.tbm1 (time, speed) values (now(), 5.5) insert into root.qd.laoshan.tbm3 (time, speed) values (now(), 5.5)
【4.解除装备模板】
删除利用模板创建的装备和时间序列
delete timeseries of device template laoshantbm from root.qd.laoshan.tbm1
delete timeseries of device template laoshantbm from root.qd.laoshan.tbm2
按照模板创建的序列,必须利用模板语句删除
【5.卸载装备模板】
unset device template laoshantbm from root.qd.laoshan
【6.删除模板】
drop device template laoshantbm
【装备操作】
检察现有装备: show devices
【数据操作语言DML】
【数据写入】
【常用数据插入】
【写入一个列】
insert into root.sh.pudong.tbm1 (time, speed) values(2024-04-10 12:00:00, 80.0); 【写入多个列】
insert into root.sh.pudong.tbm1 (time, speed) values(2024-04-10 13:00:00, 80.0); 在相同时间戳下,重新插入数据,覆盖写入 insert into root.sh.pudong.tbm1 (time, speed) values(2024-04-10 13:00:00, 90.0);
【删除数据】
删除某个时间戳的数据需要指定时间范围 delete from root.sh.pudong.tbm1.speed where time >=2024-04-10 13:00:00; 删除时间序列 delete timeseries root.sh.pudong.tbm1.tor 【查询数据-select】
select * from root.sh.pudong.tbm1 select speed, tor, dist from root.sh.pudong.tbm1 指定查询后的别名 select speed as sd, tor as 力矩, dist as 位移 from root.sh.pudong.tbm1
【order by 排序查询】
按照降序 select speed from root.sh.pudong.tbm1 order by time desc order by除了跟时间外,还能按照序列名、数据范例等,但是应用场景比较少 查询最新的点 select last tor from root.sh.pudong.tbm1 传感器节点前面添加 last 【过滤查询-where】
【时间过滤条件】
select speed from root.sh.pudong.tbm1 where time < 2024-05-10 13:03:00 select speed from root.sh.pudong.tbm1 where time > 2024-05-10 13:03:00 and time < 2024-05-10 15:00:00 【值过滤条件】
select speed from root.sh.pudong.tbm1 where speed > 90 select * from root.sh.pudong.tbm1 where speed between 85 and 90 select * from root.sh.pudong.tbm1 where tor in (‘1600’,’1500’) select * from root.sh.pudong.tbm1 where tor not in (‘1600’,’1500’) select * from root.sh.pudong.tbm1 where dist is null select speed from root.sh.pudong.tbm1 where speed > 90 and time > 2024-05-10 13:03:00 【模糊匹配过滤】
假如数据范例是text这种文本范例的,还支持通过like大概正则表达式匹配查询 insert into root.sh.pudong.tbm1 (time, info) values (now(), “normal”) insert into root.sh.pudong.tbm1 (time, info) values (now()+1000ms, “boom”) insert into root.sh.pudong.tbm1 (time, info) values (now()+2000ms, “die”) like的模糊匹配规则 % 表现任意0个或多个字符。 _ 表现任意单个字符。 select * from root.sh.pudong.tbm1 where info like ‘b%’ 【正则表达式匹配】 select * from root.sh.pudong.tbm1 where info regexp ‘正则表达式’
【聚合查询】
group by 根据时间列Time 举行分组.
s 秒
m 分
d 天
mo 月
y 年
复制代码
【两个参数聚合查询】
在IoTDB内描述时间分段两参数:开始时间、竣事时间、时间窗口巨细 = 窗口之间的隔断 ([2024-5-01T00:00:00, 2024-6-01T00:00:00),2h);//时间范围内的时间隔断为2小时。
([2024-01-01T00:00:00, 2024-08-01T00:00:00),1d); //时间隔断为一天
– 每30天的匀称速率
select avg(speed) from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 30d);
三参数:开始时间、竣事时间、时间窗口巨细、窗口之间的隔断(滑动步长)
select avg(speed) from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 10d,7d); 窗口巨细为10天,窗口之间的隔断(滑动步长)为7天,会带来数据重复。
IoTDB> select avg(speed),__endTime from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 10d,7d);
having子句必须利用聚合函数的结果过滤
select avg(speed) from root.qd.laoshan.tbm1 group by ([2024-01-29T00:00:00, 2024-06-01T00:00:00), 7d,7d)
select avg(speed) from root.qd.laoshan.tbm1 group by ([2024-01-29T00:00:00, 2024-06-01T00:00:00), 7d,7d) having avg(speed) > 40;
select avg(speed),avg(tor) from root.qd.laoshan.tbm1 group by ([2024-01-29T00:00:00, 2024-06-01T00:00:00), 7d,7d) having avg(speed) > 30;
IoTDB> select avg(speed),avg(tor),__endTime from root.qd.laoshan.tbm1 group by ([2024-01-29T00:00:00, 2024-06-01T00:00:00), 7d,7d) having avg(speed) > 30
group by variation (物理量,毛病,ignoreNull 对null值的处理) 当ignoreNull为false时,该null值会被视为新的值ignoreNull为true时,则直接跳过对应的点,默认 不用时间列聚合查询了。 select __endTime,count(dist),avg(dist),avg(speed) from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by variation (dist,5)
select __endTime,avg(speed),avg(dist),avg(speed) from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by variation (dist,6) 【条件分段聚合】
用法:根据指定条件对数据举行筛选,并将连续的符合条件的行分为一组举行聚合运算,可以利用GROUP BY CONDITION的分段方式 group by condition (物理量判断条件,连续满足条件的数目,空值处理) group by condition(predict,[keep>/>=/=/<=/<]threshold,[,ignoreNull=true/false])
参数1:predict、返回boolean数据范例的合法表达式,用于分组的筛选
参数2:keep表达式用来指定形成分组所需要连续满足predict条件的数据行数,只有行数满足keep表达式的分组才会被输出
参数3:指定遇到predict为null的数据行时的处理方式,为true则跳过该行,为false则竣事当前分组
select __endTime, count(dist),avg(seed) from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by condition (dist > 5, keep > 4)
复制代码
keep 是关键字哈。需要写的哈。
IoTDB> select __endTime, count(dist) as 满足条件个数, max_value(speed) as 最大速度 from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by condition (dist > 5, keep < 3)
用法:根据点数分组举行聚合运算,将连续的指定数目数据点分为一组,即按照固定的点数举行分组 group by count(物理量,点数,空值处理)
select __endTime, count(dist) from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by count (dist, 5)
复制代码
IoTDB> select __endTime, count(dist),sum(speed) as 速度总和, min_value (tor) as 最小力矩 from root.qd.laoshan.tbm1 where time < 2024-06-01T00:00:00 group by count (dist, 10)
select * from root.qd.laoshan.tbm2 fill (previous, 1m); # 前1分钟时候的值来填充
select * from root.qd.laoshan.tbm2 fill (previous, 59s);
【2.利用前一个非空值和下一个非空值的线性插值】
select speed,tor from root.qd.laoshan.tbm2
Time |root.qd.laoshan.tbm2.speed|root.qd.laoshan.tbm2.tor|
按时间对齐(默认):全部 into跟随的字段,包含的目标序列数目要与查询结果集的列数(除时间列外)同等,且按照表头从左到右的顺序逐一对应。 【6.2 聚合查询回写数据库】 select avg(speed), count(speed) from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 2d,7d) order by time desc
Time |avg(root.qd.laoshan.tbm1.speed)|count(root.qd.laoshan.tbm1.speed)|
将聚合查询结果写回 select avg(speed), count(speed) into root.qd.laoshan.tbm11 (匀称速率,数目) from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 2d,7d) order by time desc
用途:当查询结果集数据量很大,放在一个页面不利于表现,可以利用 LIMIT/SLIMIT 子句和 OFFSET/SOFFSET 子句举行分页控制。 select * from root.qd.laoshan.tbm1 默认按照时间升序,只检察10行数据 select * from root.qd.laoshan.tbm1 limit 10 select * from root.qd.laoshan.tbm1 limit 10 offset 50 select * from root.qd.laoshan.tbm1 order by time desc limit 10 select avg(speed) from root.qd.laoshan.tbm1 group by ([2024-02-01T00:00:00, 2024-06-01T00:00:00), 2d,7d) order by time desc limit 3
【2.分页查询slimit、soffset按列分页查询】