Lindorm-cli は、Lindorm データベースへの接続と管理のために Lindorm が提供する軽量のコマンドラインインターフェイスです。Lindorm-cli を使用して、テーブルの作成、データのクエリ、データの書き込みなどの基本的な SQL 操作を実行できます。このトピックでは、Lindorm 時系列エンジンに接続して使用する方法について説明します。
前提条件
クライアント 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.gz3a9ee33e24769cf47b3a90c3a1bba29d26f8aede7a64dbc13ea1f4f5426f04e4
Linux-arm64
直接ダウンロードコマンド:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gzbc723d4a3a14a85c973c7082a56bb4934a40d2b9cccd72b5767352b8c334ce19
Mac (Intel チップ)
34efd3f43a700e1fea72ee5e5933b9df3cf624569bcf59a2f8a6752dc7faab6c
Mac (Arm チップ)
0be9b346404a37d953714377b59f06b6492ff9c4e46dba4d5bf07c390ee284ad
Windows
54a447f263b93b158533f7ccd542cbf52e42fb66ce287d38065a798b7801fc48
インストールパッケージを解凍します。
Linux の場合は、次のコマンドを実行してパッケージを解凍します。
tar zxvf lindorm-cli-linux-latest.tar.gz解凍後、
lindorm-cli-linux-latestフォルダーにlindorm-cliファイルが格納されています。
手順2:Lindorm 時系列エンジンへの接続
Linux または Mac にデプロイされたクライアント
lindorm-cliファイルを含むディレクトリに移動します。cd <lindorm-cli directory>次のコマンドを実行して、時系列エンジンに接続します。
./lindorm-cli -url <Lindorm time series SQL endpoint> -username <username> -password <password> -database <target 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パラメーターの説明
パラメーター
必須
説明
Lindorm 時系列 SQL エンドポイント
はい
Lindorm 時系列エンジンの時系列 SQL エンドポイント。例:
jdbc:lindorm:tsdb:url=http://ld-bp12pc23yfb3*****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242。説明Lindorm-cli での接続は、時系列 HTTP エンドポイントもサポートしています。
ユーザー名
いいえ
Lindorm 時系列エンジンへの接続に使用するユーザー名。
時系列エンジンでユーザー認証と権限検証が無効になっている場合、ユーザー名やパスワードを指定する必要はありません。詳細については、「ユーザーと権限の管理」をご参照ください。
パスワード
いいえ
Lindorm 時系列エンジンへの接続に使用するパスワード。パスワードを忘れた場合は、Lindorm ワイドテーブルエンジンのクラスター管理システムでリセットしてください。詳細については、「ユーザーパスワードの変更」をご参照ください。
ターゲットデータベース名
いいえ
Lindorm-cli を使用して接続するデータベース。デフォルトのデータベースは default です。セッション中に、
use <target database name>を実行して別のデータベースに切り替えます。接続に成功すると、次の出力が表示されます。
Connected to jdbc:lindorm:tsdb:url=http://ld-4xo90g5i370cu****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242 lindorm-cli version: 1.0.xx1.0.xxは Lindorm-cli のバージョン番号です。
Windows にデプロイされたクライアント
方法1
コマンドプロンプト (CMD) を開き、
lindorm-cli.exeが含まれるディレクトリに移動します。cd <lindorm-cli.exe directory>CMD で、次のコマンドを実行して時系列エンジンに接続します。
lindorm-cli -url <Lindorm time series SQL endpoint> -username <username> -password <password> -database <target database name>接続に成功すると、次の出力が表示されます。
Connected to jdbc:lindorm:tsdb:url=http://****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 lindorm-cli version: 1.0.xx1.0.xxは Lindorm-cli のバージョン番号です。
方法2
Lindorm-cli.exe をダブルクリックしてプログラムを開き、次のコマンドを実行します。
connect <Lindorm time series SQL endpoint> <username> <password> -database <target database name>接続に成功しても出力は表示されません。
手順3:Lindorm 時系列エンジンの使用
テーブルの作成
時系列テーブルを作成します。
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 をサポートしていません。通常、データソースからの一意の識別子を PRIMARY KEY として使用します。例としては、IoT シナリオにおけるデバイス ID、IoV (Internet of Vehicles) シナリオにおける車両 ID、監視シナリオにおけるアプリケーション ID、または
ip:portなどが挙げられます。タイムスタンプの列名は 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 | +-------------+-----------+------------+------------+--------------+
データの書き込み
2 つのデータポイントのタグ値とタイムスタンプが同じ場合、それらは同じデータポイントと見なされます。後の書き込みによって、前の書き込みは上書きされます。
一度に 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:Lindorm 時系列エンジンへの現在の接続を終了します。
よくある質問
データが正常に挿入された後にクエリ結果が空になるのはなぜですか。
書き込みが成功した後にクエリがデータを返さない場合は、DESCRIBE DATABASE <database name> を実行して、データベースに Time-to-Live (TTL) 設定があるかどうかを確認してください。TTL より古いデータは自動的に削除され、照会できません。
Lindorm-cli は時系列データをインポートまたはエクスポートできますか。
データ量が少ない場合は、Lindorm-cli を使用して CSV ファイルを迅速にインポートまたはエクスポートできます。必要に応じて、Lindorm テクニカルサポート (DingTalk ID: s0s3eg3) にお問い合わせください。
データ量が多い場合は、DataX を使用してデータをインポートしてください。大規模なデータのエクスポートはサポートされていません。