O Lindorm-cli é uma interface de linha de comando (CLI) leve para conexão e gerenciamento de bancos de dados Lindorm. Utilize-o para executar operações SQL no Lindorm Time Series Database (LindormTSDB) — como criar tabelas, gravar dados e consultar resultados — sem precisar instalar um SDK completo.
Pré-requisitos
Antes de começar, verifique se você:
Adicionou o endereço IP do seu cliente à lista de permissões do Lindorm. Consulte Definir uma lista de permissões.
Etapa 1: Instalar o Lindorm-cli
-
Baixe o pacote do Lindorm-cli para o seu sistema operacional. No Linux, também é possível baixar diretamente pelo terminal:
Use as somas de verificação SHA256 da tabela para verificar a integridade do pacote baixado.
Sistema operacional
Link de download
SHA256
Linux
3a9ee33e24769cf47b3a90c3a1bba29d26f8aede7a64dbc13ea1f4f5426f04e4
Linux (arm64)
bc723d4a3a14a85c973c7082a56bb4934a40d2b9cccd72b5767352b8c334ce19
macOS (Intel)
34efd3f43a700e1fea72ee5e5933b9df3cf624569bcf59a2f8a6752dc7faab6c
macOS (Apple silicon)
0be9b346404a37d953714377b59f06b6492ff9c4e46dba4d5bf07c390ee284ad
Windows
54a447f263b93b158533f7ccd542cbf52e42fb66ce287d38065a798b7801fc48
# x86_64 wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-latest.tar.gz # arm64 wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gz -
Extraia o pacote. No Linux ou macOS:
tar zxvf lindorm-cli-linux-latest.tar.gzApós a extração, o binário
lindorm-cliestará na pastalindorm-cli-linux-latest. (Opcional) Adicione o binário ao seu$PATHpara poder executar olindorm-clide qualquer diretório. Caso pule esta etapa, execute o binário usando o caminho completo (por exemplo,./lindorm-cli).
Etapa 2: Conectar-se ao LindormTSDB
Linux e macOS
-
Acesse a pasta que contém o binário
lindorm-cli.cd <folder where lindorm-cli is stored> -
Conecte-se ao LindormTSDB.
Parâmetros:
Parâmetro
Obrigatório
Padrão
Descrição
-urlSim
—
A URL SQL do LindormTSDB. Exemplo:
jdbc:lindorm:tsdb:url=http://ld-bp12pc23yfb3*****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242. Também é possível usar um endpoint HTTP do LindormTSDB. Consulte Visualizar endpoints.-usernameNão
(nenhum)
O nome de usuário para o LindormTSDB. Omita se a autenticação de usuário não estiver ativada. Consulte Gerenciamento de usuários e permissões.
-passwordNão
(nenhum)
A senha para o LindormTSDB. Omita se a autenticação de usuário não estiver ativada. Para redefinir sua senha, consulte Alterar a senha.
-databaseNão
defaultO banco de dados ao qual se conectar. Para trocar de banco de dados após a conexão, execute
use <database name>../lindorm-cli -url <LindormTSDB SQL URL> -username <username> -password <password> -database <database name>Exemplo:
./lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-4xo90g5i370cu****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242 -username user -password test -database defaultUma conexão bem-sucedida retorna a versão do Lindorm-cli:
lindorm-cli version: 1.0.xxInsira
helppara visualizar os comandos disponíveis.
Windows
Método 1: Prompt de comando
-
Abra o Prompt de Comando (CMD) e acesse a pasta que contém o
lindorm-cli.exe.cd <folder where lindorm-cli.exe is stored> -
Conecte-se ao LindormTSDB.
lindorm-cli -url <LindormTSDB SQL URL> -username <username> -password <password> -database <database name>Uma conexão bem-sucedida retorna:
Connected to jdbc:lindorm:tsdb:url=http://****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 lindorm-cli version: 1.0.xx
Método 2: Clique duplo
Clique em Lindorm-cli.exe e execute:
connect <LindormTSDB SQL URL> <username> <password> -database <database name>
Se a conexão for bem-sucedida, nenhuma saída será retornada.
Etapa 3: Usar o LindormTSDB
Os exemplos a seguir utilizam uma tabela sensor que registra leituras de temperatura e umidade de dispositivos IoT.
Criar uma tabela
O LindormTSDB usa sintaxe SQL para DDL. Duas restrições se aplicam na criação de uma tabela de séries temporais:
A coluna de timestamp deve ser nomeada como
time. Ela armazena timestamps em milissegundos (ms).Especifique uma
PRIMARY KEYpara identificar exclusivamente uma fonte de dados — por exemplo, um ID de dispositivo em cenários de Internet das Coisas (IoT), um identificador de veículo em cenários de Internet dos Veículos (IoV) ou um parip:portem cenários de monitoramento.
A Basic Edition não oferece suporte a chaves primárias.
-
Crie a tabela
sensor.CREATE TABLE sensor ( device_id VARCHAR NOT NULL, region VARCHAR NOT NULL, time TIMESTAMP NOT NULL, temperature DOUBLE, humidity BIGINT, PRIMARY KEY(device_id, region, time) ); -
Verifique se a tabela foi criada.
SHOW TABLES;Saída esperada:
+-------------------+ | Tables_In_default | +-------------------+ | sensor | +-------------------+ -
Inspecione o esquema da tabela.
DESCRIBE TABLE sensor;Saída esperada:
+-------------+-----------+------------+------------+--------------+ | columnName | typeName | columnKind | primaryKey | partitionTag | +-------------+-----------+------------+------------+--------------+ | device_id | VARCHAR | TAG | true | true | | region | VARCHAR | TAG | true | true | | time | TIMESTAMP | TIMESTAMP | true | false | | temperature | DOUBLE | FIELD | false | false | | humidity | BIGINT | FIELD | false | false | +-------------+-----------+------------+------------+--------------+
Gravar dados
Pontos de dados com as mesmas tags e timestamp são tratados como o mesmo ponto de dados. Gravações posteriores substituem as anteriores.
Grave linhas individuais:
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);
Ou grave várias linhas em uma única instrução:
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);
Consultar dados
Consulta condicional
Consulte as leituras do dispositivo F07A1260 entre 2021-04-22 15:33:00 e 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';
Resultado:
+-----------+----------+---------------------------+-------------+----------+
| 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 |
+-----------+----------+---------------------------+-------------+----------+
Consulta de downsampling
Uma consulta de downsampling agrega valores dentro de intervalos de tempo fixos para reduzir o número de pontos de dados no conjunto de resultados. Use SAMPLE BY para definir o intervalo.
Obtenha a temperatura máxima do dispositivo F07A1260 em uma janela de 20 segundos:
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;
Resultado:
+-----------+----------+---------------------------+-----------------+
| 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 |
+-----------+----------+---------------------------+-----------------+
Consulta agregada
Calcule a temperatura máxima por região em todos os dispositivos:
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;
Resultado:
+----------+-----------------+
| region | max_temperature |
+----------+-----------------+
| north-cn | 13.2 |
| south-cn | 19.7 |
+----------+-----------------+
Importar e exportar arquivos CSV
Importar um arquivo CSV
Antes de importar um arquivo CSV, caso esteja conectado a uma instância do Lindorm, execute o comando exit para desconectar-se antes de prosseguir.
lindorm-cli -url <LindormTSDB SQL URL> -database <destination database name> -format=csv -input /path/of/data.csv -table sensor
É possível importar apenas um arquivo CSV por vez.
Certifique-se de que os campos no arquivo CSV correspondam aos campos da tabela de dados de séries temporais. Caso contrário, a importação falhará.
-
Para importações em lote concorrentes, especifique os seguintes parâmetros.
-batch: Define o número de entradas de dados a serem importadas para o servidor em cada operação. O valor padrão é 2000.
-concurrent: Define o número de threads para importações concorrentes. O valor padrão é 10.
Exportar um arquivo CSV
lindorm-cli -url <LindormTSDB SQL URL> -database <destination database name> -execute "select * from sensor" -format=csv -output /path/of/data.csv
Importar e exportar arquivos CSV
Importar um arquivo CSV
Antes de importar um arquivo CSV, caso esteja conectado a uma instância do Lindorm, execute o comando exit para desconectar-se antes de prosseguir.
lindorm-cli -url <LindormTSDB SQL URL> -database <destination database name> -format=csv -input /path/of/data.csv -table sensor
É possível importar apenas um arquivo CSV por vez.
Certifique-se de que os campos no arquivo CSV correspondam aos campos da tabela de dados de séries temporais. Caso contrário, a importação falhará.
-
Para importações em lote concorrentes, especifique os seguintes parâmetros.
-batch: Define o número de entradas de dados a serem importadas para o servidor em cada operação. O valor padrão é 2000.
-concurrent: Define o número de threads para importações concorrentes. O valor padrão é 10.
Exportar um arquivo CSV
lindorm-cli -url <LindormTSDB SQL URL> -database <destination database name> -execute "select * from sensor" -format=csv -output /path/of/data.csv
Comandos comuns do Lindorm-cli
|
Comando |
Descrição |
|
|
Lista os comandos disponíveis. |
|
|
Conecta-se a um servidor. |
|
|
Defina o formato de exibição de hora. Valores válidos: |
|
|
Alterna para um banco de dados diferente na sessão atual. |
|
|
Desconecta e sai do Lindorm-cli. |
Perguntas frequentes
Por que minha consulta não retorna resultados após a gravação de dados?
Execute DESCRIBE DATABASE <database name> e verifique se há um tempo de vida (TTL) configurado. Se a idade dos dados exceder o TTL, o LindormTSDB os exclui automaticamente e eles deixam de aparecer nos resultados da consulta.
O Lindorm-cli pode importar e exportar arquivos CSV?
Para pequenos conjuntos de dados, o Lindorm-cli oferece suporte à importação e exportação de CSV. Entre em contato com o suporte técnico do Lindorm (grupo DingTalk: s0s3eg3) para obter esse recurso.
Para grandes conjuntos de dados, use o DataX para importar dados. A exportação de dados em grande escala não é suportada.