Определение размера таблицы и отношения в Azure Cosmos DB для PostgreSQL
Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)
Обычный способ поиска размеров таблиц в PostgreSQL, pg_total_relation_size
резко подсчитывает размер распределенных таблиц в Azure Cosmos DB для PostgreSQL.
Все, что эта функция выполняется в кластере, заключается в том, чтобы показать размер таблиц на узле координатора. В действительности данные в распределенных таблицах находятся в рабочих узлах (в сегментах), а не в координаторе. Действительная величина распределенной таблицы определяется путем сложения размеров сегментов. Azure Cosmos DB для PostgreSQL предоставляет вспомогательные функции для запроса этих сведений.
Function | Возвраты |
---|---|
citus_relation_size(relation_name) |
|
citus_table_size(relation_name) |
|
citus_total_relation_size(relation_name) |
|
Эти функции аналогичны трем стандартным функциям размера объекта PostgreSQL, за исключением случаев, когда они не могут подключиться к узлу и выдают ошибку.
Пример
Вывести список размеров всех распределенных таблиц можно следующим образом:
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 │
└───────────────┴───────┘
Следующие шаги
- Узнайте, как масштабировать кластер для хранения дополнительных данных.
- Различает типы таблиц в кластере.
- См. описание других полезных диагностических запросов.