TimescaleDB プロジェクトは PostgreSQL の拡張機能として実装されており、
TimescaleDB 1.7 の変更点には次のようなものがあります。
- DBMS との統合のサポートが追加されました
PostgreSQL 12 。 PostgreSQL 9.6.x および 10.x のサポートは廃止されました (Timescale 2.0 は PostgreSQL 11 以降のみをサポートします)。 - 継続的に実行される集計関数 (リアルタイムで継続的に受信するデータの集計) を使用したクエリの動作が変更されました。このようなクエリでは、マテリアライズド ビューと、まだマテリアライズされていない新しく到着したデータが結合されるようになりました (以前は、集計はすでにマテリアライズされたデータのみを対象としていました)。新しい動作は、新しく作成された連続集計に適用されます。既存のビューの場合は、「ALTER VIEW」を介して「timescaledb.materialized_only=false」パラメータを設定する必要があります。
- データを再グループ化し、古いデータの削除ポリシーを処理する機能など、一部の高度なデータ ライフサイクル管理ツールが商用版からコミュニティ バージョンに移行されました (現在のデータのみを保存し、古いレコードを自動的に削除、集約、またはアーカイブできます)。
TimescaleDB DBMS を使用すると、リレーショナル DBMS 固有の使いやすさと、特殊な NoSQL システム固有のスケーリングおよび機能を組み合わせて、本格的な SQL クエリを使用して蓄積されたデータを分析できることを思い出してください。ストレージ構造を最適化することで、高速なデータ追加を実現します。データセットのバッチ追加、メモリ内インデックスの使用、履歴スライスの遡及ロード、トランザクションの使用がサポートされています。
TimescaleDB の重要な機能は、データ配列の自動パーティショニングのサポートです。入力データ ストリームは、パーティション化されたテーブル全体に自動的に分散されます。セクションは、時間に応じて (各セクションには一定期間のデータが保存されます)、または任意のキー (デバイス ID、場所など) に関連して作成されます。パフォーマンスを最適化するために、パーティション分割されたテーブルを異なるディスクに分散できます。
クエリの場合、パーティション データベースはハイパーテーブルと呼ばれる 1 つの大きなテーブルのように見えます。ハイパーテーブルは、受信データを蓄積する多数の個別テーブルの仮想表現です。ハイパーテーブルは、クエリやデータの追加だけでなく、インデックスの作成や構造の変更 (「ALTER TABLE」) などの操作にも使用され、データベースの低レベルのセグメント化された構造が開発者から隠蔽されます。ハイパーテーブルを使用すると、任意の集計関数、サブクエリ、通常のテーブルとのマージ操作 (JOIN)、およびウィンドウ関数を使用できます。
出所: オープンネット.ru