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

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

本文介绍通过Lindorm-cli连接并使用云原生多模数据库Lindorm时序引擎的具体操作和使用示例。

前提条件

  • 已获取Lindorm时序引擎的连接地址,具体操作请参见查看连接地址

  • 已将客户端IP地址添加至Lindorm白名单,具体操作请参见设置白名单

连接Lindorm时序引擎使用的网络类型

网络类型

说明

专有网络(推荐)

专有网络VPC(Virtual Private Cloud)是您自己独有的云上私有网络,不同的专有网络之间二层逻辑隔离,拥有较高的安全性和性能。Lindorm-cli部署在ECS实例上时,通过专有网络连接至Lindorm时序引擎,可获得更高的安全性和更低的网络延迟。

公网

公网即互联网,当本地设备需要测试或管理Lindorm时序引擎时,可在本地设备上部署Lindorm-cli,然后通过公网连接至Lindorm时序引擎。

常用命令

  • help:查看帮助命令。

  • connect:连接服务器命令。

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

  • exitquitctrl+d:退出当前Lindorm实例的连接。

操作步骤

  1. 下载Lindorm-cli。您可以根据不同的客户端下载Lindorm-cli,下载链接如下表所示。

    客户端

    下载链接

    Linux

    Mac

    lindorm-cli for mac

    Windows

    lindorm-cli for windows-x64

  2. 解压Lindorm-cli压缩包。

  3. 获取连接信息并执行下述命令连接Lindorm时序引擎。

    • 如果客户端部署在Linux上,请执行以下语句。

      ./lindorm-cli -url http://<host:port> -username <用户名> -password <密码> -database <目标数据库名>
    • 如果客户端部署在Windows,请双击打开lindorm-cli.exe,并执行以下语句。

      connect jdbc:lindorm:tsdb:url=http://<host:port> user password
    说明
    • host:port:Lindorm时序引擎的连接地址和端口(例如:ld-bp17j28j2y7pm****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242)。获取方法参见查看连接地址。不过这里获取的连接地址和端口是不带http://前缀的,但参数url中指定的地址必须带上http://前缀,否则连接会失败。

    • 用户名:Lindorm实例的用户名。如果时序引擎的账号管理功能未启用,用户名和密码无需设置。

    • 密码:Lindorm实例用户名对应的密码,如果您忘记密码,可以通过Lindorm宽表引擎的集群管理系统修改密码,具体操作请参见修改用户密码

    • 目标数据库名:配置使用lindorm-cli访问的数据库。默认数据库名为default,如果没有指定,则默认访问default数据库。可以使用use <数据库名>语句切换至目标数据库。

    • 在以交互式方式启动lindorm-cli时,即使指定的url, username, password 等参数有误也并不会影响进入lindorm-cli的界面,因为只有在lindorm-cli交互式界面下执行第一条SQL语句时才会真正去连接时序引擎。

    返回如下结果:

    Connected to http://ld-bp17j28j2y7pm****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242
    lindorm-cli version: 1.0.15
  4. 访问Lindorm时序引擎的语法示例如下。

    1. 执行以下语句创建时序数据表。

      创建一个名为sensor的时序数据表。其中两个Tag分别为device_id和region,Tag的数据类型为VARCHAR。两个Field命名为temperature和humidity,数据类型分别为DOUBLE、BIGINT。
      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等。

      • 时间戳列的列名必须为time,表示数据的时间,单位为毫秒(ms)。

      • 如果PRIMARY KEY相同,并且时间戳列相同,那么数据被认为是同一条数据,后写入的数据会覆盖先写入的数据。

    2. 执行以下语句查看目标数据库中的时序数据表。

      show tables;

      查询结果如下:

      columnName typeName
      ---------- --------
      default    sensor
      1 rows in set (28 ms)
    3. 执行以下语句查看时序数据表的字段信息。

      describe table sensor;

      查询结果如下:

      columnName  typeName
      ----------  --------
      device_id   VARCHAR
      region      VARCHAR
      time        TIMESTAMP
      temperature DOUBLE
      humidity    BIGINT
      5 rows in set (22 ms)
    4. 执行以下语句在时序数据表中写入数据。

      • 单条依次写入

        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);
    5. 执行以下语句在时序数据表中按条件查询数据。

      说明

      写入数据后如果查询数据的结果为空,请检查是否设置数据保存有效期(TTL),如果数据超过保存有效期会被自动清理并且无法查询。

      • 条件查询

        查询设备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)
  5. (可选)在时序数据表中导入导出CSV格式文件。

    • 执行以下命令在时序数据表sensor中导入CSV格式文件。

      ./lindorm-cli -url http://ld-bp1y919033x1k****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/ -format=csv -input /path_to_file -table sensor
      注意
      • 目前仅支持导入CSV格式文件。

      • 确保导入的CSV文件的列和时序数据表的字段一一对应,否则导入时会出错。

      • 通过指定以下参数实现批量并发导入。

        • -batch:表示每次执行导入操作到服务端的数据条数,默认值为2000。

        • -concurrent:表示并发导入的线程数,默认值为10。

    • 执行以下命令从时序数据表sensor中导出CSV文件。

      ./lindorm-cli -url http://ld-bp1y919033x1k****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/ -execute 'select * from sensor' -format csv -output /path_to_file
阿里云首页 云原生多模数据库 Lindorm 相关技术圈