【いんふらっくすでぃーびー】

InfluxDB(インフラックスDB) とは?

💡 時間とともに流れ込むデータを、取りこぼさずキャッチする専門家
📌 このページのポイント
InfluxDB 時系列データフロー IoTセンサー サーバーメトリクス アプリログ Telegraf 収集エージェント InfluxDB TSMエンジン リテンションポリシー Fluxクエリエンジン 書込 Grafana ダッシュボード 可視化・アラート クエリ 時系列データの例 10:00 10:05 10:10 10:15
InfluxDB の時系列データ書き込み・クエリフロー
ひよこ ひよこ

時系列データって普通のデータベースに入れちゃダメなの?

ペンギン先生 ペンギン先生

入れること自体はできるけど、効率が全然違うんだ。たとえば1秒ごとにセンサーデータが来ると1日で8万6千件。これがセンサー1000個なら1日で8600万件だよ。普通のRDBだとこの書き込み速度についていけないんだ

ひよこ ひよこ

InfluxDBだとなんで速いの?

ペンギン先生 ペンギン先生

時系列データは「過去のデータを書き換えない」「時間順にアクセスする」という特徴があるから、それに合わせた特殊なストレージエンジン(TSM→Time-Structured Merge Tree)を使っているんだ。データを圧縮しながら高速に書き込めるよ

ひよこ ひよこ

おもしろい!SQLは使えるの?

ペンギン先生 ペンギン先生

InfluxDB 3.0ではSQL対応が進んでいるけど、伝統的にはFluxという独自のクエリ言語を使うよ。「過去1時間の平均CPU使用率を5分間隔で」みたいな時系列特有のクエリがとても書きやすいんだ

ひよこ ひよこ

どんな場面で使われてるの?

ペンギン先生 ペンギン先生

サーバーコンテナ監視が一番多いね。Telegrafでメトリクスを収集→InfluxDBに保存→Grafanaダッシュボード表示、というのが定番の構成だよ。IoTのセンサーデータや株価データにも使われているよ

ひよこ ひよこ

リテンションポリシーって何?

ペンギン先生 ペンギン先生

「30日経ったデータは自動で消す」みたいなルールを設定できる機能だよ。時系列データは溜まり続けるとストレージを圧迫するから、古いデータを自動で間引いたり削除したりする仕組みが最初から備わっているんだ

ひよこ ひよこ

TimescaleDBとどっちがいいの?

ペンギン先生 ペンギン先生

InfluxDBは時系列専用設計でシンプルだけどSQLとの互換性が限定的。TimescaleDBPostgreSQLベースだからSQL資産をフル活用できる。既存のPostgreSQLがあるならTimescaleDB、ゼロからモニタリング基盤を作るならInfluxDBが向いているよ

ひよこ ひよこ

無料で使えるの?

ペンギン先生 ペンギン先生

オープンソース版があるから無料で使えるよ。ただしクラスタリング機能はエンタープライズ版のみだから、大規模に使うなら有償ライセンスかInfluxDB Cloudを検討する必要があるね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「InfluxDB」って出てきたら「時系列データ専用の高速データベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「Influx Database」 = 流入データベース
💬 Influxは「流入」という意味で、時間とともに次々と流れ込んでくるデータを効率よく受け止めるイメージからきているよ
← 用語集にもどる