Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

時系列DB InfluxDBを試す

Posted at

#背景

JINS MEMEにより、ボコボコ 生データが取れるようになったので、あまり手を付けていなかった時系列DBを試してみる。

#情報ソース

最新は2.0系でこちら。

WSLでインストールすると1.6が入ったので、情報としてはおそらくこちら。

#WSLへのインストール

2021/10/17 私の環境のWSL。古いバージョンを使用してる場合などは以下に表示されるように'wsl --update'で更新しておいたほうが良いでしょう。

WSL環境
# wsl --status
既定の配布: Ubuntu2
既定のバージョン: 2

Linux 用 Windows サブシステムの最終更新日: 2021/10/08
Windows Subsystem for Linux カーネルは、'wsl --update' を使用して手動で更新できますが、システム設定が原因で自動更新が発生することはありません。
カーネルの自動更新を受け取るには、 Windows Update の設定を有効にしてください:' Windowsの更新に、その他のMicrosoftの製品の更新情報を受け取る'。
詳細については、 https://aka.ms/wsl2kernel.
 を参照してください
カーネル バージョン: 5.10.60.1

InfluxDBをインストールする。

インストール
> sudo apt install influxdb influxdb-client -y

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  influxdb influxdb-client
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 8049 kB of archives.
After this operation, 28.7 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu groovy/universe amd64 influxdb amd64 1.6.4-2ubuntu1 [5476 kB]
Get:2 http://archive.ubuntu.com/ubuntu groovy/universe amd64 influxdb-client amd64 1.6.4-2ubuntu1 [2573 kB]
Fetched 8049 kB in 3s (3116 kB/s)
Selecting previously unselected package influxdb.
(Reading database ... 47169 files and directories currently installed.)
Preparing to unpack .../influxdb_1.6.4-2ubuntu1_amd64.deb ...
Unpacking influxdb (1.6.4-2ubuntu1) ...
Selecting previously unselected package influxdb-client.
Preparing to unpack .../influxdb-client_1.6.4-2ubuntu1_amd64.deb ...
Unpacking influxdb-client (1.6.4-2ubuntu1) ...
Setting up influxdb-client (1.6.4-2ubuntu1) ...
Setting up influxdb (1.6.4-2ubuntu1) ...
Adding system user `influxdb' (UID 112) ...
Adding new user `influxdb' (UID 112) with group `nogroup' ...
Not creating home directory `/var/lib/influxdb'.
Adding group `influxdb' (GID 119) ...
Done.
Adding user `influxdb' to group `influxdb' ...
Adding user influxdb to group influxdb
Done.
Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.
invoke-rc.d: could not determine current runlevel
Processing triggers for systemd (246.6-1ubuntu1.7) ...
Processing triggers for man-db (2.9.3-2) ...

最後のほうに書いてくれていますが、systemdの設定もしてくれているようです。
サービス状態を確認して、起動していなければ(していないと思うが)起動しましょう。

起動
# service influxdb status
 * influxd is not running
root@DESKTOP-UIMJQCQ:~# service influxdb start
 * Starting database influxd                                                                                                                                     [ OK ]
root@DESKTOP-UIMJQCQ:~# service influxdb status
 * influxd is running

#動作確認

この辺に従って、最初の確認などをします。(めちゃくちゃ丁寧な記載だ。みならいたい)
このprecisionオプションはタイムスタンプのフォーマットをrfc3339(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)にするということらしい。

クライアント起動
$ influx -precision rfc3339

つづいてDatabase作成

Database作成
> CREATE DATABASE mydb
>
> show databases
name: databases
name
----
_internal
mydb
> USE mydb
Using database mydb

通常のデータベースでいうところのTableがmeasurementとなるようです。
で、レコード作成は最初にmeasurementを指定して、あとは=でfield-keyと値を指定すると。

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

こんな感じ。確かに作成されていることが確認できます。

レコード作成
> INSERT cpu,host=serverA,region=us_west value=0.64
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
time                           host    region  value
----                           ----    ------  -----
2021-10-17T05:55:04.498741763Z serverA us_west 0.64

#データ投入

NiFiの詳細は飛ばしますが、NiFiにはfluxdbのデータ入出力機能があり簡単にデータ投入が可能です。

SnapCrab_NoName_2021-10-17_15-24-5_No-00.png

全体としては、以下のような形で5分間で約6000件、遅延なくデータを突っ込むことができています。
SnapCrab_NoName_2021-10-17_15-25-54_No-00.png

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?