Azure Database for PostgreSQL 向け TimescaleDB で IoT と時系列のワークロードを強化する

3月 18, 2019 に投稿済み

Principal Program Manager, Azure SQL Engineering

Timescale とのパートナーシップにより、Azure Database for PostgreSQLTimescaleDB のサポートがいよいよ開始されました。これにより、お客様が IoT と時系列ワークロードを構築できます。TimescaleDB には確かな実績があり、石油およびガス、金融サービス、製造など、さまざまな業界の運用環境にデプロイされています。このパートナーシップはオープン ソース コミュニティ支援への Microsoft のコミットメントを強化するもので、これにより、Microsoft のユーザーが、PostgreSQL の革新的なテクノロジを利用できるようになります。

TimescaleDB を使用すると、高速取り込みおよび複雑なクエリに対応するためのスケーリングを実現しながら、完全な SQL をネイティブでサポートできます。PostgreSQL が重要な構成要素として使用されているため、ユーザーは、PostgreSQL の親しみやすさと信頼性、そして TimescaleDB の拡張性とパフォーマンスを得ることができます。新規または既存の Azure Database for PostgreSQL サーバーで TimescaleDB を有効にすると、2 つのデータベースを実行してリレーショナル データと時系列データを収集する必要がなくなります。

使用方法

Azure Database for PostgreSQL サーバーがない場合は、Azure CLI コマンド az postgres up を使って作成できます。その後、次のコマンドを実行して、TimescaleDB をお使いの Postgres ライブラリに追加します。

az postgres server configuration set --resource-group mygroup ––server-name myserver --name shared_preload_libraries --value timescaledb

サーバーを再起動して、新しいライブラリを読み込みます。

az postgres server restart --resource-group mygroup --name myserver​

次に、お使いの Postgres データベースを接続して実行します。

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

これで TimescaleDB ハイパーテーブルを最初から作成できます。また、ご自身の既存の時系列データを移行することもできます。 TimescaleDB および Azure Database for PostgreSQL の他の拡張機能の詳細については、「Azure Database for PostgreSQL の PostgreSQL 拡張機能」を参照してください。 

アプリケーションの基盤としての Postgres と TimescaleDB

PostgreSQL により、多くの IoT シナリオが可能になります。詳細については、ブログ記事「Creating IoT applications with Azure Database for PostgreSQL (Azure Database for PostgreSQL による IoT アプリケーションの作成)」を参照してください。 TimescaleDB を使用すると、このエクスペリエンスがさらに向上します。また、IoT 組織が、コンピューターによって生成されたデータに隠された分析情報を利用することで、新しい機能を構築し、プロセスの自動化して、効率性をさらに高めることができます。

課題 ソリューション
IoT デバイスにより大量のデータが生成され、これを効率よく格納する必要がある。 データは TimescaleDB によって自動的にチャンクにパーティション分割され、これらの種類のワークロードに合わせてスケーリングされます。
IoT データが複雑 (ペア デバイスのメタデータ、地理空間データ、時系列データなど)。 TimescaleDB は、リレーショナル機能と時系列固有の関数を組み合わせて、PostGIS などの他の PostgreSQL 拡張機能に対応します。
複数のユーザー (分析を行う社内ユーザーまたはリアルタイムでデータを確認する外部ユーザー) が IoT データにアクセスする必要がある。 TimescaleDB では、組織全体が使い慣れたクエリ言語、完全な SQL を利用できます。
広範なエコシステムを備えたデータベースを必要とする、カスタマイズ可能で多様な取り込みパイプラインが IoT データに求められる。 TimescaleDB は、PostgreSQL のツールと拡張機能のエコシステム全体を継承します。
IoT アプリケーションが根本的にデータで構成されている。このため、信頼できるデータベースに格納する必要がある。 TimescaleDB は、PostgreSQL の 20 年を超える信頼性と安定性を継承します。

TimescaleDB は PostgreSQL の他に、素晴らしいパフォーマンスも提供します。時系列データが頻繁に使用される IoT ユース ケースについては、高い挿入レートに対応するために、自動チャンク パーティション分割が実装されます。次の例では、TimescaleDB を備えた Azure PostgreSQL と TimescaleDB がない Azure PostgreSQL を比較しています。時間経過とともに挿入パフォーマンスが低下しているのがわかります。大量の時系列データを使用する IoT ユースケースでは、TimescaleDB を使用することで、リレーショナル機能と拡張性の両方を必要とする IoT アプリケーションに大きな価値がもたらされます。

TimescaleDB を備えた Azure PostgreSQL と TimescaleDB がない Azure PostgreSQL の比較。時間経過とともに挿入パフォーマンスが低下している。

注: General Purpose Compute Gen5、8 仮想コア、45 GB RAM、Premium Storage

IoT が時系列データベース向けユース ケースであるのは明らかですが、実際のところ、時系列データはあらゆる場所に存在します。時系列データは、事実上、関連付けられているタイムスタンプによって時間経過とともに収集されます。TimescaleDB を使用すると、開発者が PostgreSQL を使い続けながら、TimescaleDB を利用して、時系列ワークロードに合わせてスケーリングできます。

次のステップ

いつものように、フィードバックをお待ちしております。Azure Database for PostgreSQL に関する交流や、ご質問、機能提案については、Microsoft のフィードバック ページフォーラムをご利用ください。