阿里云首页 云原生多模数据库 Lindorm 相关技术圈

通过Lindorm-cli连接访问Lindorm时序引擎

本文介绍如何通过Lindorm-cli连接并使用云原生多模数据库Lindorm时序引擎。

下载客户端

常用命令

  • help:查看帮助。

  • connect:连接服务器。

  • precision:时间显示格式,支持rfc3339、h、m、s、 ms、u或ns。

  • exit/quit/ctrl+d:退出Lindorm实例。

获取连接串

  1. 登录Lindorm控制台

  2. 实例列表单击目标实例ID,进入实例详情页面。

  3. 选择数据库连接,单击时序引擎页签。

  4. 时序引擎页面查看私网地址或公网地址。

    说明

    默认情况下,公网地址未开启,如果需要使用公网地址,请单击开通外网地址申请公网地址。

    TSQL CLient连接-1

使用示例

  1. 使用以下命令连接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时序引擎的连接地址和端口。

    • 在引擎的账号管理功能未启用时, usernamepassword无需指定。当账号管理功能启用时, 则需填写真实的用户名和密码。

    • 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连接服务器。

  2. 创建时序数据表。

    创建一个名为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相同,并且时间戳列相同,那么数据被认为是同一条数据,后写入的数据会覆盖先写入的数据。

  3. 使用以下语句查看所有时序数据表。

    show tables;

    查询结果如下:

    columnName typeName
    ---------- --------
    default    sensor
    1 rows in set (28 ms)

  4. 使用以下语句描述指定时序数据表。

    describe table sensor;

    查询结果如下:

    columnName  typeName
    ----------  --------
    device_id   VARCHAR
    region      VARCHAR
    time        TIMESTAMP
    temperature DOUBLE
    humidity    BIGINT
    5 rows in set (22 ms)

  5. 在时序数据表中写入数据。

    您可以单条依次写入数据也可以批量写入数据,语句如下:
    • 单条依次写入:

      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);
  6. 查询数据。

    • 条件查询

      查询设备F07A1260在时间范围2021-04-22 15:33:002021-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:002021-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)

首页 云原生多模数据库 Lindorm 时序引擎 快速入门 通过Lindorm-cli连接访问Lindorm时序引擎