データベース基本概念

時系列DB じけいれつでーたべーす

InfluxDBPrometheusIoT監視センサーデータTSDB
時系列DBについて教えて

簡単に言うとこんな感じ!

時系列DBは「時間軸の折れ線グラフをそのまま記録するDB」だよ!気温・CPU使用率・株価みたいに「時刻と値」がセットで大量に送られてくるデータを、圧縮しながら超高速に書き込める専用DBなんだ。IoT・サーバー監視・工場の設備管理でめちゃくちゃ使われてるんだ!


時系列DBとは

時系列DB(Time Series Database / TSDB)とは、時刻とともに変化するデータ(時系列データ)の蓄積・検索・集計に特化したデータベースです。温度センサー・サーバーメトリクス・株価・心拍数など、一定間隔で継続的に生成される計測値を効率よく管理するために設計されています。

RDBでも時系列データは格納できますが、数百台のサーバーから1秒ごとにメトリクスが届くような環境では、1日で数千万〜数億件のレコードが発生します。時系列DBは書き込みスループットを最大化する内部構造(タイムスタンプ順の追記・デルタエンコーディング・圧縮)を持ち、RDBの10〜100倍以上の書き込み性能を発揮します。

時系列DBには**データの自動期限切れ(Retention Policy)とダウンサンプリング(Continuous Query)**機能が標準で備わっています。たとえば「直近1週間は1秒精度・1ヶ月後は1分平均・1年後は1時間平均に圧縮して保持」といった自動管理が設定できます。


時系列DBの主な特徴

特徴説明
タイムスタンプが主キーすべてのデータに時刻が必ずついている
追記中心(Append-only)過去データの更新・削除はほぼ行わない
高圧縮デルタ差分・ゴリラ符号化で数十分の1に圧縮
Retention Policy古いデータを自動削除・ダウンサンプリング
時系列関数rate()・increase()・moving_avg()など専用関数
タグ/ラベルデータソースを識別するメタデータ(server=web01等)
時系列DBのデータフローとRetention Policy IoTセンサー群 1秒ごとに計測値 サーバー監視 CPU/Memory/Disk アプリメトリクス レスポンスタイム等 時系列DB 高速書き込み 高圧縮保存 時系列関数 自動ダウンサンプル Retention Policy の例 直近7日間 1秒精度でフル保持 7日〜3ヶ月 1分平均に圧縮 3ヶ月〜1年 1時間平均に圧縮 1年以降 自動削除(設定次第) 集計 Grafana等の可視化ツールと連携してリアルタイムダッシュボードを構築するのが一般的 Prometheus + Grafana(サーバー監視)、InfluxDB + Grafana(IoT)が定番構成

歴史と背景

  • 1990年代:RRDtool(Round Robin Database)がネットワーク監視用に登場。時系列DBの原型
  • 2013年:InfluxDBが公開。Go言語製で高性能・シンプルなAPIで急速に普及
  • 2012年:OpenTSDBがHBaseをバックエンドとした時系列DBとして公開
  • 2016年:Prometheusが誕生。KubernetesのデファクトモニタリングDBとして普及
  • 2017年:TimescaleDB(PostgreSQL拡張)が公開。SQLで時系列DBが使えると話題に
  • 2020年代:IoT・製造DX・スマートシティで時系列DBの需要が爆増

主な製品比較

製品特徴主な用途
InfluxDB専用クエリ言語Flux・高速書き込みIoT・アプリ監視
PrometheusPull型収集・alerting内蔵Kubernetesクラスタ監視
TimescaleDBPostgreSQL拡張・SQL対応SQLに慣れた開発者向け
OpenTSDBHBase基盤・大規模対応大企業の大規模監視
VictoriaMetrics超高圧縮・Prometheus互換大量メトリクスの長期保存

関連する規格・RFC

規格・RFC番号内容
Prometheus Data Modelメトリクスのラベルベースモデル
OpenMetricsPrometheusメトリクス形式のIETF標準化仕様
InfluxDB Line ProtocolInfluxDBへのデータ書き込みテキスト形式

関連用語