LoginSignup
1
1

More than 3 years have passed since last update.

InfluxDBについて調べなおしたので自分用まとめ

Posted at

InfluxDBについて調べなおしたので
忘れないうちに自分用にまとめておくことにした

InfluxDBとは

・アメリカのinfluxdata社が開発している時系列のデータベースでOSS版もある
・TSMエンジンが採用され、高い取り込み速度とデータ圧縮を可能にしている
・ソースはGo言語で書かれている
・SQLに似たinfluxQLというものが採用されれている
・HTTPapiで操作ができる
・タグをうまく使用することによって効率的にクエリを実行できる
という特徴がある

自分も使用することが多いのだが、時系列にデータが保存されるのでIoTで使用するときに便利だと感じている
特にオープンソース版を使用することにより手軽に試すことができるのでプロトタイプに使用している

入手方法

こちらからダウンロードしてインストールすることにより、使用することができるようになる

ここからは使用OSがubuntuになる
コンソールからInfluxDBを立ち上げる

$sudo systemctl status influxdb

デフォルトの状態で8086のポートを使用するので開けておく必要がある

$sudo ufw status

現在の状態を確認して、必要があればポート開放

$ sudo ufw allow 8086
$ sudo ufw reload

準備ができたのでInfluxDBを使用していく

コンソールからinfluxと入力することでCLIが立ち上がる
image.png
きちんと立ち上がると、コマンドプロンプトの見た目が変化する

まずは新しいDBを作成する

$create database hogehogedb

作成したDBを確認する

show databases

image.png
新しくDBが作成されていることを確認

データベースの作成が終ると
データベースはクエリと書き込みの準備ができている

InfluxDBで使用される用語

MEASUREMENT
RDBでいうところのテーブルに該当する
概念的にはプライマリインデックスが常に次官であるSQLテーブルであると考えることができる
tagsとfieldsは事実上テーブルの列のことである

point
RDBでいうところのレコードの概念
timestamp, measurement, key, valueから形成される
実際にデータの部分をfieldといいkey, valueの形で格納されている

pointの書き込みにはILP(Influx Line Protocol)という形式が用いられる

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

実際の書き込みにはINSERTコマンドが用いられる

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

SELECTコマンドでデータのクエリを行うことができる
※クエリとはデータの問い合わせや参照のこと

代表的なSQLの例

CREATE:データベース・テーブルの作成
ALTER:データベース・テーブルの定義変更
DROP:データベース・テーブルの削除
SELECT:データ検索
UPDATE:データ更新
INSERT:データ挿入
DELETE:データ削除

クエリに時間がかかっているときは
ctrl + cでクエリをキャンセルすることができる

以上のことがわかっていれば最低限の動作確認を行うことができる

参考情報

Helve’s Python memo
みかんのゆるふわ技術ブログ
influxdata document

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