TimescaleDB は、時系列データに対して SQL をスケーラブルにするように設計されたオープンソース データベースです。 これは PostgreSQL から設計され、PostgreSQL 拡張機能としてパッケージ化されており、時間と空間にわたる自動パーティショニング (パーティショニング キー) と完全な SQL サポートを提供します。
TimescaleDB のインスタンスをインストールまたは管理したくない場合は、フルマネージド クラウド製品である Timescale の 30 日間の無料トライアルをお試しください。タイムスケールは従量課金制です。使用しないストレージ、バックアップ、スナップショット、イングレスまたはエグレスには料金はかかりません。
どのオプションが最適かを判断するには、Apache-2 バージョン、TimescaleDB コミュニティ (セルフホスト型)、および Timescale Cloud (ホスト型) の詳細について、機能比較、FAQ、ドキュメント、サポートなどの Timescale 製品を参照してください。
以下に TimescaleDB の概要を示します。詳細については、次の他のリソースを確認してください。
開発者向けドキュメント
スラックチャンネル
タイムスケール コミュニティ フォーラム
タイムスケールのリリースノートと将来の計画
参照と明確さのために、このリポジトリ内のすべてのコード ファイルは、ヘッダーでライセンス (Apache-2 オープンソース ライセンスまたはタイムスケール ライセンス (TSL) のいずれか) を参照しています。 Apache-2 ライセンス付きバイナリは、 -DAPACHE_ONLY=1
bootstrap
に渡すことでビルドできます。
寄稿者を歓迎します。
(TimescaleDB をソースからビルドするには、 「ソースからのビルド」の手順を参照してください。)
TimescaleDB は、時間と空間にわたる自動パーティショニング (パーティショニング キー) によって時系列データの PostgreSQL を拡張しますが、標準の PostgreSQL インターフェイスは保持します。
言い換えれば、TimescaleDB は、通常のテーブルのように見えるものを公開しますが、実際には、実際のデータを構成する多くの個々のテーブルの抽象化 (または仮想ビュー) にすぎません。ハイパーテーブルと呼ばれるこの単一テーブル ビューは、多くのチャンクで構成されており、これらのチャンクは、ハイパーテーブルのデータを 1 次元または 2 次元でパーティション化することによって作成されます。時間間隔と (オプションの) パーティション キーによって作成されます。デバイスID、場所、ユーザーIDなど。
事実上、TimescaleDB とのユーザー対話はすべてハイパーテーブルを使用して行われます。テーブルとインデックスの作成、テーブルの変更、データの挿入、データの選択などはすべてハイパーテーブル上で実行できます (またそうすべきです)。
使用と管理の両方の観点から見ると、TimescaleDB は PostgreSQL とまったく同じように見え、PostgreSQL と同様に管理およびクエリを実行できます。
PostgreSQL の初期設定は通常、最新のサーバーや TimescaleDB にとっては保守的すぎます。 timescaledb-tune を使用するか、手動で実行して、 postgresql.conf
設定が調整されていることを確認する必要があります。
-- timescaledb extensionCREATE EXTENSION timescaledb を作成することを忘れないでください。-- まず、通常の SQL テーブルCREATE TABLE 条件 ( time TIMESTAMPTZ NOT NULL、 場所のテキストが NULL ではありません。 温度 DOUBLE PRECISION NULL、 湿度 DOUBLE PRECISION NULL);-- 次に、それを timeSELECT create_hypertable('conditions', 'time'); によってパーティション化されたハイパーテーブルに変換します。
クイック スタート: ハイパーテーブルの作成
参考例
ハイパーテーブルへのデータの挿入は、通常の SQL コマンドによって行われます。
INSERT INTO 条件(時間、場所、温度、湿度) VALUES (NOW(), 'office', 70.0, 50.0);SELECT * FROM 条件 ORDER BY time DESC LIMIT 100;SELECT time_bucket('15 minutes', time) AS fifteen_min 、 場所、COUNT(*)、MAX(温度) AS max_temp、MAX(湿度) AS max_hum FROM 条件 WHERE 時間 > NOW() - 間隔 '3 時間' GROUP BY fifteen_min、場所 ORDER BY fifteen_min DESC、max_temp DESC;
さらに、TimescaleDB には、標準の PostgreSQL には存在しない時系列分析のための追加機能が含まれています。 (たとえば、上記のtime_bucket
関数。)
クイックスタート:基本操作
参考例
タイムスケールDB API
クラウド上のフルマネージド TimescaleDB である Timescale は、無料トライアルで利用できます。 TimescaleDB がプリインストールされたクラウド上に PostgreSQL データベースを作成すると、管理オーバーヘッドなしで TimescaleDB を使用してアプリケーションを強化できます。
TimescaleDB は、Linux、Windows、MacOS、Docker、Kubernetes などのいくつかのプラットフォーム用にあらかじめパッケージ化されたものもご利用いただけます。詳細については、「TimescaleDB のインストール」を参照してください。
ソースからビルドするには、「ソースからのビルド」を参照してください。
TimescaleDB の基本機能
TimescaleDB の高度な機能
TimescaleDB のテスト
timescaledb-tune: システムのリソースに基づいて PostgreSQL 構成を設定するのに役立ちます。
timescaledb-Parallel-copy: 複数のワーカー間で PostgreSQL のCOPY
を使用して、最初の一括読み込みを並列化します。
TimescaleDB を使用する理由
PostgreSQL からの移行
データの書き込み
クエリとデータ分析
チュートリアルとサンプルデータ
スラックチャンネル
Githubの問題
タイムスケール サポート: サポート オプションを参照 (コミュニティとサブスクリプション)
タイムスケール リリース ノート: 現在および過去のバージョンに関する詳細情報を確認し、購読して新しいリリース、修正、早期アクセス/ベータ プログラムに関する通知を受け取ります。
貢献者への指示
コードスタイルガイド