influx CLI を使用して Time Series Database (TSDB) for InfluxDB® インスタンスに接続し、読み取りおよび書き込み操作を実行できます。このトピックでは、これらの操作を実行する方法について説明します。
始める前に
Alibaba Cloud の公式 Web サイトで、TSDB for InfluxDB® インスタンスを購入します。詳細については、TSDB for InfluxDB® インスタンスを購入するをご参照ください。次に、インスタンスへのアクセスに使用できるアカウントを作成します。詳細については、ユーザーアカウントとデータベースの管理をご参照ください。 influx CLI を使用して TSDB for InfluxDB® インスタンスに接続するには、アカウントとそのパスワードが必要です。
CLI のダウンロード
CLI をダウンロードできるページで、次の図に示すように、v1.7.6 をクリックします。

次の図に示すように、OS のバイナリインストールパッケージを選択します。

パッケージを解凍します。Mac OS X と Linux の場合、バイナリファイル influx.exe は usr/bin/ パスで使用できます。Windows の場合、バイナリファイル influx.exe は、バイナリパッケージを解凍した後に自動的に作成されるディレクトリで使用できます。たとえば、Mac OS X を使用している場合は、次のコマンドを実行してインストールパッケージをダウンロードし、influx CLI が使用可能なディレクトリを開くことができます。
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6_darwin_amd64.tar.gz
tar zxvf influxdb-1.7.6_darwin_amd64.tar.gz
cd influxdb-1.7.6-1/usr/binCLI を使用して TSDB for InfluxDB® インスタンスに接続する
CLI を開きます。次のコマンドを実行して、購入したインスタンスに接続します。
./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242TSDB for InfluxDB® は、SSL を使用して安全なデータ転送を保証します。TSDB for InfluxDB® インスタンスに接続するたびに、-ssl、-username、-password、-host、および -port フラグを指定する必要があります。
フラグ
-sslは、サーバーと TSDB for InfluxDB® インスタンスの間に確立される接続が HTTPS 接続であることを指定します。-usernameは、TSDB for InfluxDB® インスタンスへのアクセスに使用できるユーザー名を指定します。-passwordは、ユーザー名のパスワードを指定します。-hostは、TSDB for InfluxDB® インスタンスのドメイン名を指定します。コンソールのインスタンス詳細ページでドメイン名を表示できます(次の図を参照)。
-port: ポート番号を指定します。デフォルト値は 3242 です。
CLI を使用してデータを書き込む
データを書き込む前に、データベースを作成します。詳細については、データベースの作成をご参照ください。この例では、mydb という名前のデータベースが作成されます。
単一ポイントを書き込む
influx CLI で次のコマンドを実行して、TSDB for InfluxDB に接続します。
./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242データを書き込むデータベースとして mydb を指定します。
> USE mydb Using database mydbデータベース mydb に単一ポイントを書き込みます。
> INSERT cpu,host=serverA,region=us_west value=0.64このステートメントは、データベース mydb にポイントを書き込み、デフォルトの保存ポリシーをポイントに添付します。
cpuはメジャーメントです。hostとregionはタグキーです。valueはフィールドです。ポイントはラインプロトコル形式で書き込まれます。詳細については、ラインプロトコルをご参照ください。ステートメントでタイムスタンプを指定しない場合、システムはローカルサーバーの UNIX タイムスタンプをポイントのタイムスタンプとして使用します。タイムスタンプはナノ秒単位です。TSDB for InfluxDB® では、すべてのタイムスタンプは協定世界時(UTC)です。
ファイルをインポートして複数のポイントを書き込む
この例では、複数のポイントを含む test.txt ファイルが使用されます。
# DML # CONTEXT-DATABASE: mydb # CONTEXT-RETENTION-POLICY: autogen h2o_feet,location=coyote_creek water_level=3.524,level\ description="between 3 and 6 feet"1439868600 h2o_feet,location=coyote_creek water_level=3.399,level\ description="between 3 and 6 feet"1439868960 h2o_feet,location=coyote_creek water_level=3.278,level\ description="between 3 and 6 feet"1439869320 h2o_feet,location=coyote_creek water_level=3.159,level\ description="between 3 and 6 feet"1439869680 h2o_feet,location=coyote_creek water_level=3.048,level\ description="between 3 and 6 feet"1439870040 h2o_feet,location=coyote_creek water_level=2.943,level\ description="below 3 feet"1439870400 h2o_feet,location=coyote_creek water_level=2.831,level\ description="below 3 feet"1439870760 h2o_feet,location=coyote_creek water_level=2.717,level\ description="below 3 feet"1439871120 h2o_feet,location=coyote_creek water_level=2.625,level\ description="below 3 feet"1439871480 h2o_feet,location=coyote_creek water_level=2.533,level\ description="below 3 feet"1439871840ファイルを TSDB for InfluxDB® インスタンスにインポートします。
./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242-import-path=test.txt-importを使用して、ファイルを TSDB for InfluxDB® インスタンスにインポートします。-pathは、インポートするファイルを指定します。このステートメントは、一度に複数のポイントをデータベース mydb にインポートします。h2o_feetはmeasurementです。locationはtagキーです。water_levelとlevel descriptionはfieldです。
CLI を使用してデータをクエリする
TSDB for InfluxDB® は、さまざまな InfluxQL ステートメントをサポートしています。InfluxQL は、SQL に似たクエリ言語です。InfluxQL を使用すると、ユーザーはデータをすばやく操作できます。詳細については、データ探索およびスキーマ探索をご参照ください。
TSDB for InfluxDB® インスタンスからデータをクエリする前に、インスタンスに接続します。
./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242データをクエリするデータベースを指定します。この例では、データソースはデータベース mydb です。
> USE mydb Using database mydb
指定されたメジャーメントに対応するすべてのポイントをクエリする
> SELECT * FROM "h2o_feet"
name: h2o_feet
time level description location water_level
----------------------------------------
1439868600 between 3and6 feet coyote_creek 3.524
1439868960 between 3and6 feet coyote_creek 3.399
1439869320 between 3and6 feet coyote_creek 3.278
1439869680 between 3and6 feet coyote_creek 3.159
1439870040 between 3and6 feet coyote_creek 3.048
1439870400 below 3 feet coyote_creek 2.943
1439870760 below 3 feet coyote_creek 2.831
1439871120 below 3 feet coyote_creek 2.717
1439871480 below 3 feet coyote_creek 2.625
1439871840 below 3 feet coyote_creek 2.533h2o_feet メジャーメントに対応するすべてのポイントが返されます。
指定されたメジャーメントに対応する指定されたフィールドをクエリし、フィールドで数学演算を実行する
> SELECT ("water_level"+2)*3 FROM "h2o_feet"
name: h2o_feet
time water_level
---------------
143986860016.572
143986896016.197
143986932015.834000000000001
143986968015.477
143987004015.144
143987040014.828999999999999
143987076014.492999999999999
143987112014.151000000000002
143987148013.875
143987184013.598999999999998water_level は、h2o_feet メジャーメントに対応するフィールドです。water_level フィールドの値は、次の式を使用して計算されます。(water_level + 2)* 3 。TSDB for InfluxDB® では、数学演算は標準の順序で実行されます。詳細については、数学演算をご参照ください。
フィールド値が指定された要件を満たすポイントをクエリする
> SELECT * FROM "h2o_feet" WHERE "water_level">3
name: h2o_feet
time level description location water_level
----------------------------------------
1439868600 between 3and6 feet coyote_creek 3.524
1439868960 between 3and6 feet coyote_creek 3.399
1439869320 between 3and6 feet coyote_creek 3.278
1439869680 between 3and6 feet coyote_creek 3.159
1439870040 between 3and6 feet coyote_creek 3.048ステートメントは、h2o_feet メジャーメントに対応するポイントをクエリします。water_level の値が 3 より大きいポイントが返されます。WHERE 句の詳細については、WHERE 句をご参照ください。
クエリ結果をグループ化する
> SELECT MEAN("water_level") FROM "h2o_feet" GROUP BY "location"
name: h2o_feet
tags: location=coyote_creek
time mean
--------
03.0057このクエリは、クエリ結果を location タグでグループ化し、location タグの各値に対応するすべての water_level 値の平均値を計算します。GROUP BY 句の詳細については、GROUP BY 句をご参照ください。
正規表現を使用してフィールドキーとタグキーをフィルタリングする
> SELECT /level/ FROM "h2o_feet"
name: h2o_feet
time level description water_level
--------------------------------
1439868600 between 3and6 feet 3.524
1439868960 between 3and6 feet 3.399
1439869320 between 3and6 feet 3.278
1439869680 between 3and6 feet 3.159
1439870040 between 3and6 feet 3.048
1439870400 below 3 feet 2.943
1439870760 below 3 feet 2.831
1439871120 below 3 feet 2.717
1439871480 below 3 feet 2.625
1439871840 below 3 feet 2.533このクエリは、「level」という文字列を含むすべてのフィールドキーとタグキーの値を返します。正規表現の詳細については、正規表現をご参照ください。