次の方法で共有


Azure Cosmos DB for PostgreSQL のアプリケーションの種類を決定する

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

クラスターに対して効率的なクエリを実行するには、テーブルがサーバー間で適切に分散されている必要があります。 推奨される分散は、アプリケーションの種類とそのクエリ パターンによって異なります。

Azure Cosmos DB for PostgreSQL で適切に機能するアプリケーションの種類は大きく 2 つあります。 データ モデリングの最初の手順は、アプリケーションにより近く似ているものを特定することです。

概略

マルチテナント アプリケーション リアルタイム アプリケーション
スキーマに数十または数百のテーブルが含まれる場合がある 少数のテーブル
一度に 1 つのテナント (会社、ストア) に関連するクエリ 集計による比較的単純な分析クエリ
Web クライアントにサービスを提供する OLTP ワークロード 大量に取り込まれるほとんど不変のデータ
テナントごとの分析クエリを処理する OLAP ワークロード 多くの場合に大規模なイベントのテーブルを中心とする

例と特性

マルチテナント アプリケーション

これらは通常、他の企業、アカウント、または組織にサービスを提供する SaaS アプリケーションです。 ほとんどの SaaS アプリケーションは本質的にリレーショナルです。 ノード間でデータを分散させるための自然なディメンションがあります。tenant_id によってシャード化するだけです。

Azure Cosmos DB for PostgreSQL により、アプリケーションを再設計する必要なく、データベースを何百万ものテナントにスケールアウトできます。 結合、外部キー制約、トランザクション、ACID、一貫性など、必要なリレーショナル セマンティクスを維持できます。

  • :デジタル マーケティング ソリューションや販売自動化ツールなど、他のビジネス向けに店舗をホストする Web サイト。
  • 特性:テナント間で情報を結合するのではなく、単一のテナントに関連するクエリ。 これには、Web クライアントにサービスを提供する OLTP ワークロードや、テナントごとの分析クエリを処理する OLAP ワークロードが含まれます。 データベース スキーマに数十または数百のテーブルがあることも、マルチテナント データ モデルの指標です。

Azure Cosmos DB for PostgreSQL を使用してマルチテナント アプリをスケーリングするには、アプリケーション コードに対する最小限の変更も必要です。 Ruby on Rails や Django などの人気のあるフレームワークをサポートしています。

リアルタイム分析

数値、統計、またはカウント クエリに対してすばやく結果を得るために、大規模な並列処理、数百のコアの調整を必要とするアプリケーション。 Azure Cosmos DB for PostgreSQL を使用すると、複数のノード間で SQL クエリをシャード化して並列化することで、1 秒未満で数十億のレコードに対してリアルタイムのクエリを実行できるようになります。

リアルタイム分析データ モデルのテーブルは、通常、user_id、host_id、device_id などの別列によって分散されます。

  • :1 秒未満の応答時間を必要とするお客様向け分析ダッシュボード。
  • 特性:多くの場合にデバイス、サイト、またはユーザーイベントの大きなテーブルを中心とし、ほとんど不変のデータの大量の取り込みを必要とする少数のテーブル。 複数の集計と GROUP BY を含む比較的単純な (ただし、計算量が多い) 分析クエリ。

上記のいずれかの状況に似ている場合、次の手順は、クラスター内のデータをシャードする方法を決定することです。 データベース管理者のディストリビューション列の選択では、パフォーマンスを確保するために、一般的なクエリのアクセス パターンと一致している必要があります。

次の手順