Important
Azure Cosmos DB for PostgreSQL は、新しいプロジェクトではサポートされなくなりました。 このサービスは、新しいプロジェクトには使用しないでください。 代わりに、次の 2 つのサービスのいずれかを使用します。
Azure Cosmos DB for NoSQL は、99.999% 可用性サービス レベル アグリーメント (SLA)、インスタント 自動スケール、および複数のリージョン間の自動フェールオーバーを使用する 大規模 なシナリオ向けに設計された分散データベース ソリューションに使用します。
オープンソースの Citus 拡張機能を使用して、シャード化された PostgreSQL 用の Azure Database For PostgreSQL のエラスティック クラスター機能 を使用します。
PostgreSQL でテーブル サイズを確認するための通常の方法 pg_total_relation_size では、Azure Cosmos DB for PostgreSQL での分散テーブルのサイズが極端に小さく報告されます。
この関数は、クラスターでは、コーディネーター ノード上のテーブルのサイズを明らかにするだけです。 実際には、分散テーブル内のデータはコーディネーター ノードではなく、ワーカー ノード (シャード内) 上にあります。 分散テーブル サイズの実際の値は、シャード サイズの合計として取得されます。 Azure Cosmos DB for PostgreSQL には、この情報のクエリを実行するためのヘルパー関数が用意されています。
| 機能 | 戻り値 |
|---|---|
| citus_relation_size(relation_name) |
|
| citus_table_size(relation_name) | |
| citus_total_relation_size(relation_name) |
|
これらの関数は、標準の PostgreSQL オブジェクト サイズ関数のうちの 3 つに似ていますが、ノードに接続できない場合はエラーになる点が異なります。
例
すべての分散テーブルのサイズを一覧表示する方法を次に示します。
SELECT logicalrelid AS name,
pg_size_pretty(citus_table_size(logicalrelid)) AS size
FROM pg_dist_partition;
出力:
┌───────────────┬───────┐
│ name │ size │
├───────────────┼───────┤
│ github_users │ 39 MB │
│ github_events │ 37 MB │
└───────────────┴───────┘
次のステップ
- より多くのデータを保持するためにクラスターをスケーリングする方法を学習します。
- クラスター内のテーブルの種類を区別します。
- その他の有用な診断クエリを参照してください。