【たいむすけーるでぃーびー】

TimescaleDB(タイムスケールDB) とは?

公開:
💡 PostgreSQLの安心感はそのまま、時系列データの超高速処理をプラス
📌 このページのポイント
PostgreSQL + TimescaleDB 拡張アーキテクチャ PostgreSQL SQL対応 / ACID / JOINサポート / 豊富なエコシステム TimescaleDB 拡張 ハイパーテーブル 時間パーティション自動管理 連続集約 事前計算で高速クエリ ネイティブ圧縮 最大95%のデータ圧縮 ハイパーテーブル(見た目は1テーブル) 1月 2月 3月 4月 ... 標準SQLがそのまま使える SELECT time_bucket('1h', ts), avg(value) FROM metrics ... CREATE EXTENSION timescaledb;
PostgreSQL + TimescaleDB の拡張アーキテクチャ
ひよこ ひよこ
TimescaleDBってInfluxDBと何が違うの?どっちも時系列でしょ?
ペンギン先生 ペンギン先生
大きな違いはTimescaleDBがPostgreSQLの拡張だということ。つまりSQLがフルで使えるし、JOINサブクエリも普通にできるんだ。InfluxDBは時系列専用で独自の世界だけど、TimescaleDBはPostgreSQLの資産をすべて活かせるよ
ひよこ ひよこ
ハイパーテーブルって何?
ペンギン先生 ペンギン先生
見た目は普通のテーブルだけど、裏側で時間ごとに自動でパーティション(チャンク)に分割してくれる仕組みだよ。たとえば1日ごとにチャンクを切ると、過去のデータ検索が特定のチャンクだけスキャンすればよくなるから高速になるんだ
ひよこ ひよこ
連続集約ってどんな機能?
ペンギン先生 ペンギン先生
「1時間ごとの平均値」みたいな集計を、クエリのたびに計算するんじゃなくて事前にバックグラウンドで計算しておく機能だよ。ダッシュボードを開いたときにすぐ結果が返ってくるから、モニタリング用途にとても便利なんだ
ひよこ ひよこ
PostgreSQLの拡張ってことは、既存のPostgreSQLに追加できるの?
ペンギン先生 ペンギン先生
そう!既存のPostgreSQLにCREATE EXTENSIONするだけで使えるんだ。pgAdminやpsqlなどの使い慣れたツールもそのまま使えるし、pg_dumpでバックアップもとれるよ
ひよこ ひよこ
圧縮機能ってどのくらい効くの?
ペンギン先生 ペンギン先生
公式ベンチマークでは最大95%の圧縮率が報告されているよ。たとえば100GBのデータが5GBになるイメージ。しかも圧縮後のデータにもSQLクエリできるから、アーカイブ用途にも最適なんだ
ひよこ ひよこ
おもしろい!デメリットはあるの?
ペンギン先生 ペンギン先生
PostgreSQLに依存するから、PostgreSQL自体の制約も引き継ぐよ。たとえば書き込みスループットInfluxDBほど尖っていない場合もある。でもSQLエコシステムの恩恵は計り知れないから、チームにPostgreSQLの経験者がいるなら第一候補にして間違いないね
ひよこ ひよこ
どんなプロジェクトに向いてる?
ペンギン先生 ペンギン先生
IoTデータの蓄積、アプリケーションメトリクス監視、金融の時系列分析などが定番だよ。特に「時系列データも扱いたいけど、普通のリレーショナルデータとJOINもしたい」という要件にはTimescaleDBがベストマッチだね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TimescaleDB」って出てきたら「PostgreSQLに時系列の超パワーを追加する拡張」と思えればだいたいOK!
📖 おまけ:英語の意味
「Timescale Database」 = タイムスケール(時間軸)データベース
💬 時間のスケール(尺度・規模)を自在に扱えるデータベースという意味だよ
← 用語集にもどる