Lindorm-cli是Lindorm提供的简易命令行工具,用于连接和管理Lindorm数据库。您可以通过Lindorm-cli完成基本的SQL操作,例如建表、数据查询、数据写入、删表等。本文介绍通过Lindorm-cli连接并使用云原生多模数据库 Lindorm列存引擎的方法。
前提条件
已将客户端IP地址添加至Lindorm白名单。具体操作,请参见设置白名单。
步骤一:安装Lindorm-cli
根据您的操作系统,下载对应的Lindorm-cli安装包。下载链接如下表所示。
操作系统
下载链接
Linux
Mac(Intel芯片)
Mac(Arm芯片)
Windows
Linux-arm64
解压Lindorm-cli压缩包。
以Linux操作系统为例,执行以下命令解压。
tar zxvf lindorm-cli-linux-latest.tar.gz
解压后
lindorm-cli-linux-latest
文件夹中为lindorm-cli.exe
文件。
步骤二:连接Lindorm列存引擎
客户端部署在Linux或Mac系统
跳转至
Lindorm-cli
所在目录。cd <Lindorm-cli所在目录>
执行以下语句连接列存引擎。
./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.x
为Lindorm-cli的版本号。
客户端部署在Windows系统
方法一
打开命令提示符(CMD),跳转至
lindorm-cli.exe
的所在目录下。cd <lindorm-cli.exe所在目录>
在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.x
为Lindorm-cli的版本号。
方法二
双击打开Lindorm-cli.exe程序,执行以下语句:
connect <url> <用户名> <密码>
连接成功无结果返回。
步骤三:使用Lindorm列存引擎
创建数据库
执行以下语句创建名为
test
的数据库。CREATE DATABASE test;
查看数据库列表。
SHOW DATABASES;
返回结果:
+--------------------+ | DATABASE | +--------------------+ | default | | test | | information_schema | +--------------------+
执行以下语句使用
test
数据库。USE test;
创建表
在
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));
查询已经创建的表。
SHOW TABLES;
返回结果:
+------------+------------+--------------+ | TABLE_NAME | TABLE_TYPE | TABLE_SCHEMA | +------------+------------+--------------+ | sensor | Common | test | +------------+------------+--------------+
查看表结构。
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 | +--------------+------------+-------------+-----------+----------------+------------+
查看表的分区规则。
SHOW TABLE VARIABLES FROM sensor like 'PARTITION_KEY';
返回结果:
+---------------+---------------------------------------------------+ | Variable_name | Value | +---------------+---------------------------------------------------+ | PARTITION_KEY | LIST(identity(update_date),bucket(256,device_id)) | +---------------+---------------------------------------------------+
写入数据
在主键表中,INSERT INTO和UPSERT 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;