Lindorm-cli は、Lindorm データベースへの接続と管理のために Lindorm が提供する軽量のコマンドラインインターフェイス (CLI) です。Lindorm-cli を使用して、テーブルの作成、データのクエリ、データの書き込みなどの基本的な SQL 操作を実行できます。このトピックでは、Lindorm-cli を使用して Lindorm 時系列データベース (LindormTSDB) に接続して使用する方法について説明します。
前提条件
クライアントの IP アドレスが Lindorm のホワイトリストに追加されていること。詳細については、「ホワイトリストを設定する」をご参照ください。
ステップ 1: Lindorm-cli のインストール
お使いのオペレーティングシステムに対応する Lindorm-cli インストールパッケージをダウンロードします。ダウンロードリンクは次の表にリストされています。
説明次の表の SHA256 チェックサムを使用して、ダウンロードした Lindorm-cli インストールパッケージの整合性と信頼性を検証できます。
オペレーティングシステム
ダウンロードリンク
SHA256 チェックサム
Linux
次のコマンドを実行してパッケージをダウンロードすることもできます:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-latest.tar.gz21945c466e2de2c256edd16afdfbb2234301573feb649a673939471a3d882b1a
Linux-arm64
次のコマンドを実行してパッケージをダウンロードすることもできます:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gzbcae4d8479201d69e4883105d1a7f933fa46d78e19c171e8e1ebfbee28f6d953
Mac (Intel チップ)
e82cb1678ea5b263813ccb87fff0149526c36a2654082785efe5a6aaeb4eb24b
Mac (Arm チップ)
538d5fef122b416ca2ab63fd7074b77ef25840e9feb8d3490405aae36a537a68
Windows
e61078108a72b85382363e9619b8820aa5245bad60dec79ffd4bf9fea976e280
インストールパッケージを解凍します。
たとえば、Linux オペレーティングシステムでは、次のコマンドを実行してパッケージを解凍します。
tar zxvf lindorm-cli-linux-latest.tar.gzパッケージが解凍されると、
lindorm-cliファイルはlindorm-cli-linux-latestフォルダに保存されます。
ステップ 2: LindormTSDB への接続
クライアントが Linux または macOS にデプロイされている場合
lindorm-cliファイルが保存されているフォルダに移動します。cd <The folder where lindorm-cli is stored>次の文を実行して LindormTSDB に接続します。
./lindorm-cli -url <LindormTSDB SQL URL> -username <username> -password <password> -database <destination database name>接続例
./lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-4xo90g5i370cu****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242 -username user -password test -database defaultパラメーターの説明
パラメーター
必須
説明
LindormTSDB SQL URL
はい
LindormTSDB の LindormTSDB SQL URL。例:
jdbc:lindorm:tsdb:url=http://ld-bp12pc23yfb3*****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242。説明Lindorm-cli を使用して LindormTSDB に接続するために LindormTSDB HTTP URL を使用することもできます。
ユーザー名
いいえ
LindormTSDB への接続に使用されるユーザー名。
LindormTSDB でユーザー認証と権限検証が有効になっていない場合、ユーザー名とパスワードを設定する必要はありません。詳細については、「ユーザーと権限の管理」をご参照ください。
パスワード
いいえ
LindormTSDB への接続に使用されるパスワード。パスワードを忘れた場合は、LindormTable のクラスター管理システムでパスワードを変更できます。
ターゲットデータベース名
いいえ
Lindorm-cli を使用して接続するデータベース。デフォルトのデータベースは `default` です。接続中に、
use <ターゲットデータベース名>文を実行してターゲットデータベースに切り替えることができます。接続が成功すると、次の結果が返されます:
lindorm-cli version: 1.0.xx上記の結果では、
1.0.xxは Lindorm-cli のバージョン番号を示します。
クライアントが Windows オペレーティングシステムにデプロイされている場合
方法 1
コマンドプロンプト (CMD) を開き、
lindorm-cli.exeファイルが保存されているフォルダに移動します。cd <The folder where lindorm-cli.exe is stored>コマンドプロンプトで次のコマンドを実行して LindormTSDB に接続します:
lindorm-cli -url <LindormTSDB endpoint for SQL> -username <username> -password <password> -database <Database name>接続が成功すると、次の結果が返されます:
Connected to jdbc:lindorm:tsdb:url=http://****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 lindorm-cli version: 1.0.xxこの結果では、
1.0.xxは Lindorm-cli のバージョン番号です。
方法 2
Lindorm-cli.exe プログラムをダブルクリックし、次の文を実行します:
connect <LindormTSDB SQL URL> <username> <password> -database <destination database name>接続が成功した場合、結果は返されません。
ステップ 3: LindormTSDB の使用
テーブルの作成
時系列データテーブルを作成します。
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) );説明時系列データテーブルを作成するときは、プライマリキー (PRIMARY KEY) を指定することをお勧めします。Basic Edition は PRIMARY KEY をサポートしていません。データソースの一意の識別子は、通常、IoT シナリオのデバイス ID、IoV (Internet of Vehicles) シナリオの一意の車両識別子、または監視シナリオのアプリケーション ID や
ip:portなど、PRIMARY KEY として指定されます。タイムスタンプ列の名前は time である必要があります。この列は、データのタイムスタンプをミリ秒 (ms) 単位で示します。
sensor テーブルが作成されたかどうかを確認します。
SHOW TABLES;次の結果が返されます:
+-------------------+ | Tables_In_default | +-------------------+ | sensor | +-------------------+時系列データテーブルのフィールド情報を表示します。
DESCRIBE TABLE sensor;次の結果が返されます:
+-------------+-----------+------------+------------+--------------+ | 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 | +-------------+-----------+------------+------------+--------------+
データの書き込み
データポイントが同じタグとタイムスタンプを持つ場合、それらは同じデータポイントと見なされます。後から書き込まれたデータは、先に書き込まれたデータを上書きします。
データポイントを 1 つずつ書き込みます。
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);
データのクエリ
条件付きクエリ
デバイス F07A1260 のデータを 2021-04-22 15:33:00 から 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';次の結果が返されます:
+-----------+----------+---------------------------+-------------+----------+
| 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 |
+-----------+----------+---------------------------+-------------+----------+ダウンサンプリングクエリ
ダウンサンプリングクエリは、時系列データのサンプルレートを減らします。これにより、結果セット内のデータポイントの数が減少します。
次の例は、デバイス F07A1260 の温度を 2021-04-22 15:33:00 から 2021-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 |
+-----------+----------+---------------------------+-----------------+集計クエリ
すべてのリージョンにわたる最高温度を計算します:
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 |
+----------+-----------------+一般的な Lindorm-cli コマンド
help: ヘルプ情報を表示します。connect: サーバーに接続します。precision: 時刻表示フォーマットを指定します。有効な値は rfc3339、h、m、s、ms、u、および ns です。exitまたはquit: 現在の LindormTSDB インスタンスから切断します。
よくある質問
データ挿入後にクエリ結果が空になるのはなぜですか?
データを書き込んだ後にクエリ結果が空になる場合は、DESCRIBE DATABASE <データベース名> 文を実行して、データベースに存続時間 (TTL) が設定されているかどうかを確認します。データの保持期間が TTL を超えると、データは自動的に削除され、クエリできなくなります。
Lindorm-cli を使用して時系列データをインポートおよびエクスポートできますか?
少量のデータの場合、Lindorm-cli を使用して CSV ファイルを迅速にインポートまたはエクスポートできます。この機能については、Lindorm テクニカルサポート (DingTalk グループ番号: s0s3eg3) にお問い合わせください。
大量のデータの場合、DataX を使用してデータをインポートすることをお勧めします。大規模なデータのエクスポートはサポートされていません。