중요합니다
Azure Cosmos DB for PostgreSQL은 더 이상 새 프로젝트에 지원되지 않습니다. 새 프로젝트에는 이 서비스를 사용하지 마세요. 대신 다음 두 서비스 중 하나를 사용합니다.
99.999% SLA(가용성 서비스 수준 약정), 인스턴트 자동 크기 조정 및 여러 지역에서 자동 장애 조치(failover)를 사용하는 대규모 시나리오용으로 설계된 분산 데이터베이스 솔루션에는 NoSQL용 Azure Cosmos DB를 사용합니다.
오픈 소스 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 개체 크기 함수와 유사합니다.
예시
모든 분산 테이블의 크기를 나열하는 방법은 다음과 같습니다.
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 │
└───────────────┴───────┘