すべてのプロダクト
Search
ドキュメントセンター

Time Series Database:influx CLI を使用して TSDB for InfluxDB® に接続する

最終更新日:Jan 14, 2025

influx CLI を使用して Time Series Database (TSDB) for InfluxDB® インスタンスに接続し、読み取りおよび書き込み操作を実行できます。このトピックでは、これらの操作を実行する方法について説明します。

始める前に

Alibaba Cloud の公式 Web サイトで、TSDB for InfluxDB® インスタンスを購入します。詳細については、TSDB for InfluxDB® インスタンスを購入するをご参照ください。次に、インスタンスへのアクセスに使用できるアカウントを作成します。詳細については、ユーザーアカウントとデータベースの管理をご参照ください。 influx CLI を使用して TSDB for InfluxDB® インスタンスに接続するには、アカウントとそのパスワードが必要です。

CLI のダウンロード

  1. CLI をダウンロードできるページで、次の図に示すように、v1.7.6 をクリックします。

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

  3. パッケージを解凍します。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/bin

CLI を使用して TSDB for InfluxDB® インスタンスに接続する

CLI を開きます。次のコマンドを実行して、購入したインスタンスに接続します。

./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242

TSDB 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 という名前のデータベースが作成されます。

  • 単一ポイントを書き込む

    1. influx CLI で次のコマンドを実行して、TSDB for InfluxDB に接続します。

      ./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242
    2. データを書き込むデータベースとして mydb を指定します。

      > USE mydb
      Using database mydb
    3. データベース mydb に単一ポイントを書き込みます。

      > INSERT cpu,host=serverA,region=us_west value=0.64

      このステートメントは、データベース mydb にポイントを書き込み、デフォルトの保存ポリシーをポイントに添付します。cpu はメジャーメントです。hostregion はタグキーです。value はフィールドです。ポイントはラインプロトコル形式で書き込まれます。詳細については、ラインプロトコルをご参照ください。ステートメントでタイムスタンプを指定しない場合、システムはローカルサーバーの UNIX タイムスタンプをポイントのタイムスタンプとして使用します。タイムスタンプはナノ秒単位です。TSDB for InfluxDB® では、すべてのタイムスタンプは協定世界時(UTC)です。

  • ファイルをインポートして複数のポイントを書き込む

    1. この例では、複数のポイントを含む 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
    2. ファイルを 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_feetmeasurement です。locationtag キーです。water_levellevel descriptionfield です。

CLI を使用してデータをクエリする

TSDB for InfluxDB® は、さまざまな InfluxQL ステートメントをサポートしています。InfluxQL は、SQL に似たクエリ言語です。InfluxQL を使用すると、ユーザーはデータをすばやく操作できます。詳細については、データ探索およびスキーマ探索をご参照ください。

  1. TSDB for InfluxDB® インスタンスからデータをクエリする前に、インスタンスに接続します。

    ./influx -ssl -username <Username> -password <Password> -host <Domain name> -port 3242
  2. データをクエリするデータベースを指定します。この例では、データソースはデータベース 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.533

h2o_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.598999999999998

water_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」という文字列を含むすべてのフィールドキーとタグキーの値を返します。正規表現の詳細については、正規表現をご参照ください。