本文介绍如何通过Lindorm-cli连接并使用云原生多模数据库Lindorm时序引擎。
下载客户端
Linux客户端:lindorm-cli-linux.tar.gz
Mac客户端:lindorm-cli-mac.tar.gz
Windows客户端:lindorm-cli-windows-x64.zip
常用命令
help
:查看帮助。connect
:连接服务器。precision
:时间显示格式,支持rfc3339、h、m、s、 ms、u或ns。exit/quit/ctrl+d
:退出Lindorm实例。
获取连接串
登录Lindorm控制台。
在实例列表单击目标实例ID,进入实例详情页面。
选择数据库连接,单击时序引擎页签。
在时序引擎页面查看私网地址或公网地址。
说明默认情况下,公网地址未开启,如果需要使用公网地址,请单击开通外网地址申请公网地址。
使用示例
使用以下命令连接Lindorm实例。
//如果在Linux客户端请执行以下语句: ./lindorm-cli -url http://ld-****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 -username 用户名 -password 密码 -database 目标数据库 //如果在Windows客户端请双击打开lindorm-cli.exe,并执行以下语句: connect jdbc:lindorm:tsdb:url=http://ld-****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 user password
说明请将
http://ld-****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242
替换为您的Lindorm时序引擎的连接地址和端口。在引擎的账号管理功能未启用时,
username
和password
无需指定。当账号管理功能启用时, 则需填写真实的用户名和密码。database
指定的是默认使用lindorm-cli默认操作的目标数据库。如果没有指定,则默认操作default
数据库。可以使用use databaseName
切换目标数据库。Windows用户双击打开lindorm-cli.exe后,请执行
connect jdbc:lindorm:tsdb:url=http://ld-****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 user password
连接服务器。
创建时序数据表。
创建一个名为sensor的表。其中两个Tag分别为device_id和region,Tag的数据类型为VARCHAR。两个Field命名为temperature和humidity,数据类型分别为DOUBLE、BIGINT。time表示数据的时间,时间精度单位为ms。创建语句如下: CREATE TABLE sensor ( device_id VARCHAR TAG, region VARCHAR TAG, time TIMESTAMP, temperature DOUBLE, humidity BIGINT, PRIMARY KEY(device_id));
说明强烈建议指定PRIMARY KEY,通常以数据源唯一标识作为PRIMARY KEY,例如物联网场景设备ID、车联网场景车辆唯一识、监控场景的应用ID或者
ip:port
等。时间戳列的数据类型必须是TIMESTAMP,精度支持到毫秒(ms)。
如果PRIMARY KEY相同,并且时间戳列相同,那么数据被认为是同一条数据,后写入的数据会覆盖先写入的数据。
使用以下语句查看所有时序数据表。
show tables;
查询结果如下:
columnName typeName ---------- -------- default sensor 1 rows in set (28 ms)
使用以下语句描述指定时序数据表。
describe table sensor;
查询结果如下:
columnName typeName ---------- -------- device_id VARCHAR region VARCHAR time TIMESTAMP temperature DOUBLE humidity BIGINT 5 rows in set (22 ms)
在时序数据表中写入数据。
您可以单条依次写入数据也可以批量写入数据,语句如下: 单条依次写入:
insert into sensor (device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45); insert into sensor (device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47); insert into sensor (device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46); insert into sensor (device_id, region, time, temperature, humidity) values('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44); insert into sensor (device_id, region, time, temperature, humidity) values('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44);
批量写入:
insert into sensor (device_id, region, time, temperature, humidity) values ('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45), ('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47), ('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46), ('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44), ('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44);
查询数据。
条件查询
查询设备
F07A1260
在时间范围2021-04-22 15:33:00
和2021-04-22 15:33:20
之间的数据:select device_id,region,time,temperature,humidity from sensor where device_id = 'F07A1260' and time >= '2021-04-22 15:33:00' and time <= '2021-04-22 15:33:20';
查询结果如下:
device_id region time temperature humidity --------- ------ ---- ----------- -------- F07A1260 north-cn 2021-04-22T15:33:00+08:00 12.1 45 F07A1260 north-cn 2021-04-22T15:33:10+08:00 13.2 47 F07A1260 north-cn 2021-04-22T15:33:20+08:00 10.6 46 3 rows in set (41 ms)
降采样
查询设备
F07A1260
在时间范围2021-04-22 15:33:00
和2021-04-22 15:33:20
之间的温度,按照20秒降采样后取最大值:select device_id,region,time,max(temperature) as max_temperature from sensor where device_id = 'F07A1260' and time >= '2021-04-22 15:33:00' and time <= '2021-04-22 15:33:20' sample by 20s;
查询结果如下:
device_id region time max_temperature --------- ------ ---- --------------- F07A1260 north-cn 2021-04-22T15:33:00+08:00 13.2 F07A1260 north-cn 2021-04-22T15:33:20+08:00 10.6 2 rows in set (33 ms)
聚合操作
计算所有区域的最大温度:
select region,max(temperature) as max_temperature from sensor where time >= '2021-04-22 15:33:00' and time <= '2021-04-22 15:33:20' group by region;
查询结果如下:
region max_temperature ------ --------------- north-cn 13.2 south-cn 19.7 2 rows in set (76 ms)