Azure Cosmos DB for PostgreSQL でテーブルと関係のサイズを確認する
適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)
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 │
└───────────────┴───────┘
次のステップ
- より多くのデータを保持するためにクラスターをスケーリングする方法を学習します。
- クラスター内のテーブルの種類を区別します。
- その他の有用な診断クエリを参照してください。