データベース

時系列DB じけつれつでぃーびー

時系列DBInfluxDBPrometheusTimescaleDBIoT監視
時系列DBについて教えて

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

「時刻+測定値」のセットを大量に高速保存・集計するために特化したDBだよ。サーバーのCPU使用率やIoTセンサーの温度など、「時間の流れとともに変化するデータ」を扱う監視・IoTシステムの心臓部なんだ!


時系列DBとは

時系列DB(Time Series Database、TSDB)は、タイムスタンプに紐づいた数値データを大量に保存・検索・集計するために最適化されたデータベースです。普通のRDBに比べて書き込み速度が高速で、自動データ圧縮時間ベースの集計(ダウンサンプリング)機能を持ちます。

通常のRDBでも時刻カラムを作れば時系列データは扱えますが、毎秒大量のデータが書き込まれる監視環境では書き込みスループットが限界に達したり、古いデータの管理(保持期間設定・自動削除)が煩雑になったりします。時系列DBはこれらを解決するために設計されています。

主要な時系列DBにはInfluxDB(高機能・IoT向け)、PrometheusKubernetesモニタリングのデファクトOSS)、TimescaleDB(PostgreSQL拡張で使いやすい)などがあります。クラウドサービスではAmazon TimestreamAzure Time Series Insightsが該当します。


主要な時系列DBの比較

製品特徴主な用途
PrometheusPull型収集・AlertManager連携・k8s標準インフラ監視
InfluxDBライン プロトコル・Flux言語・高書き込み性能IoT・APM
TimescaleDBPostgreSQL互換・SQLで操作可業務+時系列の混在
Grafana MimirPrometheusをスケールアウト拡張大規模監視
Amazon Timestreamフルマネージド・SQLライクAWSネイティブ
VictoriaMetrics軽量・Prometheus互換・高圧縮率大規模監視

時系列DBの核心機能

  • 自動TTL(有効期限) — 古いデータを自動削除(例:30日以上前のデータを削除)
  • ダウンサンプリング — 細かいデータを粗くまとめて長期保存(例:1秒→5分→1時間)
  • タグ(ラベル — データに付与するメタデータ。Prometheusでは「ラベル」と呼ぶ
  • 連続クエリ — データが書き込まれるたびに自動で集計を実行

歴史と背景

  • 2011年 — InfluxDB開発開始(2013年正式公開)
  • 2012年 — SoundCloud社がPrometheusを開発
  • 2016年 — PrometheusがCNCFに参加(2018年にGraduated)
  • 2017年 — TimescaleDBが公開(PostgreSQL拡張として)
  • 2018年 — Amazon Timestreamが発表・GA(2021年)
  • 現在 — Grafana + Prometheus + Alertmanagerの組み合わせがクラウド監視のデファクトに

Prometheus + Grafana 監視スタック

Prometheusベース監視スタック アプリ/ Exporter /metricsを公開 Prometheus スクレイプ・保存・AlertManager Grafana ダッシュボード可視化 Pull PromQL Alertmanager Slack/PagerDuty通知 アラート

関連する規格・RFC

規格内容
OpenMetricsPrometheusのメトリクスフォーマットをIETF標準化したもの
PromQLPrometheusのクエリ言語(事実上の業界標準)
InfluxDB Line ProtocolInfluxDBのデータ書き込みフォーマット

関連用語