influx CLI は、データベースと対話するために使用できる軽量ツールです。 CLI のダウンロード方法と使用方法については、「コマンドライン インターフェース」をご参照ください。 デフォルトでは、CLI はポート 3242 を使用して、TSDB for InfluxDB® の HTTP API エンドポイントにリクエストを送信します。 これにより、CLI は TSDB for InfluxDB® と直接通信できます。
CLI は、データベースにネイティブ HTTP リクエストを送信することもできます。 詳細については、「HTTP API を使用してデータを書き込む」および「HTTP API を使用してデータをクエリする」のトピックにある curl コマンドの例をご参照ください。
データの読み取りと書き込み
Alibaba Cloud管理コンソールで TSDB for InfluxDB® インスタンスを作成した後、TSDB for InfluxDB® からデータを読み取ったり、TSDB for InfluxDB® にデータを書き込んだりできます。
TSDB for InfluxDB® は、時系列に基づいてデータを保存します。 時系列には、cpu_load や temperature などの測定値が含まれます。 時系列には、ゼロ個以上のデータ ポイントを含めることができます。 各データ ポイントは、測定値を示します。 データ ポイントは、1 つのタイムスタンプ、1 つのmeasurement、少なくとも 1 つのキーと値のペアであるfield、およびゼロ個以上のキーと値のペアであるtags で構成されます。 タイムスタンプは、time 列に格納されます。 measurement は、cpu_load などの属性を測定するために使用されるメトリックです。 field は、「value=0.64」や「temperature=21.2」などの測定値です。 tag は、「host=server01」、「region=EMEA」、または「dc=Frankfurt」などのメタデータを格納します。
measurement は、概念的には SQL テーブルに似ています。 このテーブルでは、タイムスタンプは常にプライマリ インデックスであり、tags とfields はテーブルの列です。 インデックスは、fields ではなくtags に作成できます。 違いは、TSDB for InfluxDB® は数百万の measurement を格納でき、null 値を格納しないことです。 TSDB for InfluxDB® は、スキーマレス データベースを提供します。 したがって、スキーマを事前に定義する必要はありません。
データ ポイントは、Line Protocol を使用して TSDB for InfluxDB® に書き込まれます。 Line Protocol は、次の形式を使用します。
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]次の例は、TSDB for InfluxDB® にデータ ポイントを書き込むために使用できる形式を示しています。
cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000Line Protocol の詳細については、「Line Protocol リファレンス」をご参照ください。
CLI を使用して TSDB for InfluxDB® に単一のデータ ポイントを書き込むには、INSERT と入力し、データ ポイント情報を入力します。 次のステートメントは例を示しています。
> INSERT cpu,host=serverA,region=us_west value=0.64
>この例では、指定されたデータ ポイントを TSDB for InfluxDB® に書き込みます。 データ ポイントでは、measurement はcpu、タグはhost とregion、value は0.64 です。
書き込まれたデータ ポイントをクエリするには、次のステートメントを実行します。
> SELECT "host", "region", "value" FROM "cpu"
> name: cpu
------------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
>前の例では、データ ポイントを書き込むときにタイムスタンプを指定しませんでした。 タイムスタンプが含まれていないデータ ポイントの場合、TSDB for InfluxDB® は、データ ポイントがクエリされるときに、ローカルの現在時刻をタイムスタンプとしてデータ ポイントに割り当てます。 したがって、データ ポイントに対して返されるタイムスタンプは、例のタイムスタンプと異なる場合があります。
measurement に 2 つの field が含まれるデータ ポイントを書き込むには、次のステートメントを実行します。 データ ポイントのデータ型は、前の例とは異なります。
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
>クエリのすべての field と tag を返す場合は、* 演算子を使用できます。
> SELECT * FROM "temperature"
name: temperature
-----------------
time external internal machine type
2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
>LIMIT 句ではなく * 演算子を使用して大規模データベースからデータをクエリすると、パフォーマンスの問題が発生する可能性があります。 Ctrl + C キーボード ショートカットを使用して、長時間実行されているクエリをキャンセルできます。
TSDB for InfluxDB® は、このトピックでは説明されていない他の機能も提供します。たとえば、Go スタイルに準拠した正規表現のサポートなどです。 次のステートメントは例を示しています。
> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM "cpu_load_short"
--
> SELECT * FROM "cpu_load_short" WHERE "value" > 0.9このクイック スタート ガイドでは、TSDB for InfluxDB® にデータを書き込み、TSDB for InfluxDB® からデータをクエリするために実行する必要がある手順について説明します。 データの書き込みとクエリ方法の詳細については、HTTP API を使用してデータを書き込む および HTTP API を使用してデータをクエリする をご参照ください。 TSDB for InfluxDB® に関連する概念の詳細については、主要な概念 をご参照ください。
InfluxDB® は、TSDB for InfluxDB® と提携しておらず、TSDB for InfluxDB® を推奨していない InfluxData によって登録された商標です。