Determinar o tamanho da tabela e da relação no Azure Cosmos DB para PostgreSQL

APLICA-SE A: Azure Cosmos DB para PostgreSQL (com tecnologia da extensão da base de dados Citus para PostgreSQL)

A forma habitual de encontrar tamanhos de tabela no PostgreSQL, pg_total_relation_size, sub-comunica drasticamente o tamanho das tabelas distribuídas no Azure Cosmos DB para PostgreSQL. Tudo o que esta função faz num cluster é revelar o tamanho das tabelas no nó de coordenação. Na realidade, os dados em tabelas distribuídas residem nos nós de trabalho (em partições horizontais) e não no coordenador. Uma verdadeira medida do tamanho da tabela distribuída é obtida como uma soma de tamanhos de partições horizontais. O Azure Cosmos DB para PostgreSQL fornece funções auxiliares para consultar estas informações.

Função Devoluções
citus_relation_size(relation_name)
  • Tamanho dos dados reais na tabela (o "fork principal").
  • Uma relação pode ser o nome de uma tabela ou índice.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size mais:

    • tamanho dos índices

Estas funções são análogas a três das funções de tamanho de objeto PostgreSQL padrão, exceto se não conseguirem ligar a um nó. Erro.

Exemplo

Eis como listar os tamanhos de todas as tabelas distribuídas:

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

Resultado:

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

Passos seguintes