クラウド
上級

TimescaleDB (時系列DB)(タイムスケールディービー)

Timescale Inc. 2017年公開のPostgreSQL 拡張時系列データベース。Hypertable・時系列圧縮・Continuous Aggregate で IoT / 監視 / 金融時系列に特化。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
DB
TimescaleDB
時系列

概要

TimescaleDB はTimescale Inc. (米New York・Mike Freedman / Ajay Kulkarni 創業) が2017年4月に公開した、PostgreSQL の拡張機能 (extension) として時系列データ専用機能を追加するデータベース。Hypertable (時間自動パーティション)・時系列圧縮 (90%+ 圧縮率)・Continuous Aggregate (定期集計)・Retention Policy (古いデータ自動削除) を統合、IoT / 監視 / 金融時系列・センサーデータの定番に。Apache 2.0 / Timescale License (TSL) 両ライセンスで、PostgreSQL 完全互換性を保ちつつ時系列特化機能を提供。

TimescaleDB 主要特徴

特徴説明
ベースPostgreSQL extension
データモデルリレーショナル (PostgreSQL 準拠)
Hypertable時間別自動パーティション
圧縮Columnar 90%+ 圧縮
Continuous Aggregate定期集計 (1分/1時間/1日)
Retention Policy古いデータ自動削除
SQLPostgreSQL 標準 + 時系列拡張関数
距離計測gapfill / interpolate
CompressionNative Compression

Hypertable

TimescaleDB の中核機能・時間で自動パーティション分割するテーブル:

-- 通常のPostgreSQLテーブル
CREATE TABLE measurements (
    time TIMESTAMPTZ NOT NULL,
    sensor_id INTEGER,
    value DOUBLE PRECISION
);

-- Hypertable 化 (1コマンドで時系列対応)
SELECT create_hypertable('measurements', 'time');

-- 自動で1週間別Chunk に分割保存
INSERT INTO measurements VALUES (
    '2024-01-01 10:00:00', 1, 23.5
);

裏側で:

  • 日付別Chunk (子テーブル) 作成
  • 古いChunk は自動圧縮
  • クエリ時に必要Chunk のみ読込
  • パフォーマンス向上

時系列圧縮

通常PostgreSQL Row 形式から Columnar 形式へ自動変換、90%+ 圧縮率:

-- Compression Policy 設定
ALTER TABLE measurements SET (
    timescaledb.compress,
    timescaledb.compress_segmentby = 'sensor_id',
    timescaledb.compress_orderby = 'time DESC'
);

-- 30日経過したChunk を自動圧縮
SELECT add_compression_policy('measurements', INTERVAL '30 days');

圧縮後はread-only に変換、Storage コストを 1/10 に。

Continuous Aggregate

定期集計を事前計算しキャッシュ:

CREATE MATERIALIZED VIEW measurements_hourly
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 hour', time) AS bucket,
       sensor_id,
       AVG(value) AS avg_value,
       MAX(value) AS max_value
FROM measurements
GROUP BY bucket, sensor_id;

-- 自動更新 (5分毎)
SELECT add_continuous_aggregate_policy(
    'measurements_hourly',
    start_offset => INTERVAL '1 hour',
    end_offset => INTERVAL '5 minutes',
    schedule_interval => INTERVAL '5 minutes'
);

リアルタイム集計の数百倍高速化、Grafana 等のダッシュボード向け。

主要採用先

企業用途
Ciscoネットワーク監視
Bloomberg金融時系列
Schneider ElectricIoT
EarthCube気象データ
Hewlett Packard監視
ComcastTV 視聴ログ
Walmart在庫変動

TimescaleDB vs 競合

DB時系列特化RDBMS互換
TimescaleDB◯◯ (PostgreSQL)
InfluxDB◯❌ (独自)
QuestDB◯△ (一部SQL)
ClickHouse△△
Prometheus◯ (監視特化)❌
Apache IoTDB◯ (IoT特化)❌

Timescale Cloud

2020年公開のマネージドサービス:

  • AWS マネージド
  • 自動スケール・バックアップ
  • $0.20-2 / 時間
  • 無料Tier
  • Enterprise + 24/7サポート

関連用語との違い

  • vs InfluxDB: PostgreSQL拡張 / 独自DB
  • vs ClickHouse: 取引可能 / 分析特化
  • vs Prometheus: 一般時系列 / 監視特化

FAQ

Q1: なぜPostgreSQL 拡張? A: 既存PostgreSQL エコシステム (Driver / GUI / 監視) を完全活用できる。学習コスト最小・移行リスク最小。

Q2: ライセンス? A: Apache 2.0 (Core) + TSL (Timescale License・Compression / Continuous Aggregate 等の重要機能)。完全OSSはCore のみ、Cloud 製品で収益化。

Q3: 個人で使う? A: IoT ホビープロジェクト (Home Assistant / Grafana ダッシュボード) で実用。Raspberry Pi 上でも軽量動作可。

この記事について
カテゴリークラウド
難易度上級
作成日2026/5/15