快速入门

Lindorm-cliLindorm提供的简易命令行工具,用于连接和管理Lindorm数据库。您可以通过Lindorm-cli完成基本的SQL操作,例如建表、数据查询、数据写入、删表等。本文介绍通过Lindorm-cli连接并使用云原生多模数据库 Lindorm列存引擎的方法。

前提条件

步骤一:安装Lindorm-cli

  1. 根据您的操作系统,下载对应的Lindorm-cli安装包。下载链接如下表所示。

    操作系统

    下载链接

    Linux

    lindorm-cli for linux

    Mac(Intel芯片)

    lindorm-cli for mac

    Mac(Arm芯片)

    lindorm-cli for mac

    Windows

    lindorm-cli for windows-x64

    Linux-arm64

    lindorm-cli for linux-arm64

  2. 解压Lindorm-cli压缩包。

    Linux操作系统为例,执行以下命令解压。

    tar zxvf lindorm-cli-linux-latest.tar.gz

    解压后lindorm-cli-linux-latest文件夹中为lindorm-cli.exe文件。

步骤二:连接Lindorm列存引擎

客户端部署在LinuxMac系统

  1. 跳转至Lindorm-cli所在目录。

    cd <Lindorm-cli所在目录>
  2. 执行以下语句连接列存引擎。

    ./lindorm-cli -url <url> -username <用户名> -password <密码>

    参数说明

    参数

    示例值

    获取方法

    url

    ld-bp137enqe0x49****-proxy-column-vpc.lindorm.aliyuncs.com:33060

    Lindorm列存引擎的连接信息

    用户名

    root

    密码

    test

    连接成功将返回以下结果:

    lindorm-cli version: 2.0.x

    其中,2.0.xLindorm-cli的版本号。

客户端部署在Windows系统

方法一

  1. 打开命令提示符(CMD),跳转至lindorm-cli.exe的所在目录下。

    cd <lindorm-cli.exe所在目录>
  2. CMD上执行以下语句连接列存引擎。

    lindorm-cli -url <url> -username <用户名> -password <密码>

    参数说明

    参数

    示例值

    获取方法

    url

    ld-bp137enqe0x49****-proxy-column-vpc.lindorm.aliyuncs.com:33060

    Lindorm列存引擎的连接信息

    用户名

    root

    密码

    test

    连接成功将返回如下结果:

    Connected to ld-bp137enqe0x49****-proxy-column-vpc.lindorm.aliyuncs.com:33060
    lindorm-cli version: 2.0.x

    其中,2.0.xLindorm-cli的版本号。

方法二

双击打开Lindorm-cli.exe程序,执行以下语句:

connect <url> <用户名> <密码>

连接成功无结果返回。

步骤三:使用Lindorm列存引擎

创建数据库

  1. 执行以下语句创建名为test的数据库。

    CREATE DATABASE test;
  2. 查看数据库列表。

    SHOW DATABASES;

    返回结果:

    +--------------------+
    | DATABASE           |
    +--------------------+
    | default            |
    | test               |
    | information_schema |
    +--------------------+
  3. 执行以下语句使用test数据库。

    USE test;

创建表

  1. test数据库中创建名为sensor的主键表。

    CREATE TABLE sensor (
        device_id VARCHAR,
        region VARCHAR,
        time TIMESTAMP,
        update_date VARCHAR,
        temperature DOUBLE,
        humidity BIGINT,
        PRIMARY KEY(device_id,update_date,time)
      )PARTITION BY LIST(`IDENTITY`(update_date),bucket(256, device_id));
  2. 查询已经创建的表。

    SHOW TABLES;

    返回结果:

    +------------+------------+--------------+
    | TABLE_NAME | TABLE_TYPE | TABLE_SCHEMA |
    +------------+------------+--------------+
    | sensor     | Common     | test         |
    +------------+------------+--------------+
  3. 查看表结构。

    DESCRIBE TABLE sensor;

    返回结果:

    +--------------+------------+-------------+-----------+----------------+------------+
    | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | TYPE      | IS_PRIMARY_KEY | SORT_ORDER |
    +--------------+------------+-------------+-----------+----------------+------------+
    | test         | sensor     | device_id   | VARCHAR   | true           | ASC        |
    | test         | sensor     | update_date | VARCHAR   | true           | ASC        |
    | test         | sensor     | time        | TIMESTAMP | true           | ASC        |
    | test         | sensor     | region      | VARCHAR   | false          | none       |
    | test         | sensor     | temperature | DOUBLE    | false          | none       |
    | test         | sensor     | humidity    | BIGINT    | false          | none       |
    +--------------+------------+-------------+-----------+----------------+------------+
  4. 查看表的分区规则。

    SHOW TABLE VARIABLES FROM sensor like 'PARTITION_KEY';

    返回结果:

    +---------------+---------------------------------------------------+
    | Variable_name | Value                                             |
    +---------------+---------------------------------------------------+
    | PARTITION_KEY | LIST(identity(update_date),bucket(256,device_id)) |
    +---------------+---------------------------------------------------+

写入数据

说明

在主键表中,INSERT INTOUPSERT INTO的行为一致,默认按主键覆盖写入数据。非主键表则为增量写入。

  • 通过INSERT INTO普通模式写入数据。

    INSERT INTO sensor (device_id, region, time, update_date, temperature, humidity) VALUES('F07A1260','north-cn',1716282726000,'2024-05-21',12.1,45);
    INSERT INTO sensor (device_id, region, time, update_date, temperature, humidity) VALUES('F07A1260','north-cn',1716282736000,'2024-05-21',13.2,47);
    INSERT INTO sensor (device_id, region, time, update_date, temperature, humidity) VALUES('F07A1260','north-cn',1716282746000,'2024-05-21',10.6,46);
    INSERT INTO sensor (device_id, region, time, update_date, temperature, humidity) VALUES('F07A1261','south-cn',1716282726000,'2024-05-21',18.1,44);
    INSERT INTO sensor (device_id, region, time, update_date, temperature, humidity) VALUES('F07A1261','south-cn',1716282736000,'2024-05-21',19.7,44);
  • 通过JSON组包模式写入数据。

    INSERT INTO sensor (_l_btc_json_row) VALUES ('{ "device_id":"F07A1260", "region":"north-cn", "time":1716282726000, "update_date":"2024-05-21", "temperature":12.1, "humidity":45 }');
    INSERT INTO sensor (_l_btc_json_row) VALUES ('{ "device_id":"F07A1260", "region":"north-cn", "time":1716282736000, "update_date":"2024-05-21", "temperature":13.2, "humidity":47 }');
    INSERT INTO sensor (_l_btc_json_row) VALUES ('{ "device_id":"F07A1260", "region":"north-cn", "time":1716282746000, "update_date":"2024-05-21", "temperature":10.6, "humidity":46 }');
    INSERT INTO sensor (_l_btc_json_row) VALUES ('{ "device_id":"F07A1261", "region":"south-cn", "time":1716282726000, "update_date":"2024-05-21", "temperature":18.1, "humidity":44 }');
    INSERT INTO sensor (_l_btc_json_row) VALUES ('{ "device_id":"F07A1261", "region":"south-cn", "time":1716282736000, "update_date":"2024-05-21", "temperature":19.7, "humidity":44 }');

查询数据

SELECT * FROM sensor WHERE device_id = 'F07A1260';

返回结果:

+-----------+-------------+---------------------+----------+-------------+----------+
| device_id | update_date | time                | region   | temperature | humidity |
+-----------+-------------+---------------------+----------+-------------+----------+
| F07A1260  | 2024-05-21  | 2024-05-21 17:12:06 | north-cn | 12.1        | 45       |
| F07A1260  | 2024-05-21  | 2024-05-21 17:12:16 | north-cn | 13.2        | 47       |
| F07A1260  | 2024-05-21  | 2024-05-21 17:12:26 | north-cn | 10.6        | 46       |
+-----------+-------------+---------------------+----------+-------------+----------+

删除表

DROP TABLE sensor;