LoginSignup
5
4

More than 3 years have passed since last update.

InfluxDB 2.0 を使う(1) 値の登録・取得を試す

Last updated at Posted at 2019-11-22

はじめに

InfluxDB 2.0は、InfluxData社の時系列データベースInfluxDBの次期版です。本記事執筆時点ではアルファ版がリリースされています。基本的な使い方を見ていきます。

環境

  • OS: Debian 9.11
  • InfluxDB: v2.0.0-alpha.20

ダウンロードと起動

ダウンロードページ からv2.0.0-alphaをダウンロード・解凍します。
現れたファイルのうち、influxdがサーバ用実行ファイル、influxがコマンドラインインターフェースです。

influxdを起動します。一通りログが出力され待ち受け状態になります。

$ ./influxd
2019-11-22T07:48:02.547633Z info    Welcome to InfluxDB {"log_id": "xxxxxxxxxx", "version": "2.0.0-alpha.20", "commit": "xxxxxxxx", "build_date": "2019-11-21T00:44:08Z"}
2019-11-22T07:48:02.549365Z info    Resources opened    {"log_id": "xxxxxxxxxx", "service": "bolt", "path": "/home/debian/.influxdbv2/influxd.bolt"}
...

初期設定

サーバへの操作はinfluxで行います。以下、サーバと同一ホスト上で実行します。最初にinflux setupで初期設定を行います。ユーザとorganization、bucketの3点を作成します。organizationはユーザのグループ、bucketはinfluxdb v1でいうdatabaseに近い概念でしょうか。各用語については Glossary を合わせて参照して下さい。

$ ./influx setup
Welcome to InfluxDB 2.0!
Please type your primary username: your_name

Please type your password: 

Please type your password again: 

Passwords do not match!
Please type your password: 

Please type your password again: 

Please type your primary organization name: my_organization

Please type your primary bucket name: my_bucket

Please type your retention period in hours.
Or press ENTER for infinite.: 


You have entered:
  Username:          your_name
  Organization:      my_organization
  Bucket:            my_bucket
  Retention Period:  infinite
Confirm? (y/n): y

Your token has been stored in /home/debian/.influxdbv2/credentials.
User        Organization    Bucket
your_name   my_organization my_bucket

値の登録

値の登録はinflux writeを用います。引数に与える文字列の形式はv1のラインプロトコルと同じであるようです。最小限の入力として、measurement名とフィールド名、値の組が必要です。例えば以下のコマンドです。タイムスタンプの指定を省略しています。この場合、リクエスト時のサーバ時刻がタイムスタンプとして用いられます。

$ ./influx write 'my_measurement temperature=12.3'

以下は2019-11-22 00:00:00付でデータを登録する例です。時刻精度を合わせて指定しています。

$ ./influx write -p s 'my_measurement temperature=12.2 1574348400'

値の取得

値の取得はinflux queryを用います。InfluxDB v2では、クエリをFluxという独自言語で記述します。適当なファイルを作成し、以下を記述します。リクエスト時刻の24時間前より以降のデータを取得するというクエリです。

query.flux
from(bucket: "my_bucket")
  |> range(start:-24h)

以下のコマンドでクエリを実行します。

$ ./influx query @query.flux --org my_organization

実行結果は以下のようになります。登録した値が得られています。

Result: _result
Table: keys: [_start, _stop, _field, _measurement]
                   _start:time                      _stop:time           _field:string     _measurement:string                      _time:time                  _value:float  
------------------------------  ------------------------------  ----------------------  ----------------------  ------------------------------  ----------------------------  
2019-11-21T08:53:07.601788990Z  2019-11-22T08:53:07.601788990Z             temperature          my_measurement  2019-11-21T15:00:00.000000000Z                          12.2  
2019-11-21T08:53:07.601788990Z  2019-11-22T08:53:07.601788990Z             temperature          my_measurement  2019-11-22T08:22:23.218928987Z                          12.3  

_start:timeと_stop:timeがクエリされた時間範囲、_time:timeがデータのタイムスタンプに相当するようです。

おわりに

InfluxDB 2.0のセットアップと基本的な値の登録・取得の手順を見ました。

参考

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4