Déterminer la taille des tables et des relations dans Azure Cosmos DB for PostgreSQL

S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)

La méthode habituellement utilisée pour déterminer la taille de tables dans PostgreSQL, pg_total_relation_size, sous-estime la taille des tables distribuées sur Azure Cosmos DB for PostgreSQL. Sur un cluster, cette fonction affiche la taille des tables du nœud coordinateur. En réalité, les données des tables distribuées résident sur les nœuds Worker (dans des partitions), et non sur le coordinateur. Une mesure réelle de la taille d’une table distribuée est obtenue sous la forme d’une somme des tailles de partitions. Azure Cosmos DB pour PostgreSQL fournit des fonctions d’assistance pour interroger ces informations.

Fonction Retours
citus_relation_size(nom_relation)
  • Taille des données réelles dans la table (la « branche principale »).
  • Une relation peut représenter le nom d’une table ou d’un index.
citus_table_size(nom_relation)
citus_total_relation_size(nom_relation)
  • citus_table_size plus :

    • taille des index

Ces fonctions sont analogues à trois des fonctions de taille d’objet PostgreSQL standard, sauf si elles ne peuvent pas se connecter à un nœud, auquel cas elles génèrent une erreur.

 Exemple

Voici comment répertorier les tailles de toutes les tables distribuées :

SELECT logicalrelid AS name,
       pg_size_pretty(citus_table_size(logicalrelid)) AS size
  FROM pg_dist_partition;

Sortie :

┌───────────────┬───────┐
│     name      │ size  │
├───────────────┼───────┤
│ github_users  │ 39 MB │
│ github_events │ 37 MB │
└───────────────┴───────┘

Étapes suivantes