時系列DB じけつれつでぃーびー
時系列DBInfluxDBPrometheusTimescaleDBIoT監視
時系列DBについて教えて
簡単に言うとこんな感じ!
「時刻+測定値」のセットを大量に高速保存・集計するために特化したDBだよ。サーバーのCPU使用率やIoTセンサーの温度など、「時間の流れとともに変化するデータ」を扱う監視・IoTシステムの心臓部なんだ!
時系列DBとは
時系列DB(Time Series Database、TSDB)は、タイムスタンプに紐づいた数値データを大量に保存・検索・集計するために最適化されたデータベースです。普通のRDBに比べて書き込み速度が高速で、自動データ圧縮や時間ベースの集計(ダウンサンプリング)機能を持ちます。
通常のRDBでも時刻カラムを作れば時系列データは扱えますが、毎秒大量のデータが書き込まれる監視環境では書き込みスループットが限界に達したり、古いデータの管理(保持期間設定・自動削除)が煩雑になったりします。時系列DBはこれらを解決するために設計されています。
主要な時系列DBにはInfluxDB(高機能・IoT向け)、Prometheus(KubernetesモニタリングのデファクトOSS)、TimescaleDB(PostgreSQL拡張で使いやすい)などがあります。クラウドサービスではAmazon Timestream、Azure Time Series Insightsが該当します。
主要な時系列DBの比較
| 製品 | 特徴 | 主な用途 |
|---|---|---|
| Prometheus | Pull型収集・AlertManager連携・k8s標準 | インフラ監視 |
| InfluxDB | ライン プロトコル・Flux言語・高書き込み性能 | IoT・APM |
| TimescaleDB | PostgreSQL互換・SQLで操作可 | 業務+時系列の混在 |
| Grafana Mimir | Prometheusをスケールアウト拡張 | 大規模監視 |
| 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 監視スタック
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| OpenMetrics | PrometheusのメトリクスフォーマットをIETF標準化したもの |
| PromQL | Prometheusのクエリ言語(事実上の業界標準) |
| InfluxDB Line Protocol | InfluxDBのデータ書き込みフォーマット |
関連用語
- Elasticsearch・OpenSearch — ログ分析での組み合わせ(ELKスタック)
- データウェアハウス — 長期の時系列データ分析基盤
- Kubernetes — Prometheusが標準監視ツールとして使われる環境