這很重要
新專案不再支援適用於 PostgreSQL 的 Azure Cosmos DB。 請勿將此服務用於新專案。 請改用下列兩項服務之一:
使用 Azure Cosmos DB for NoSQL 作為專為高規模應用場景設計的分散式資料庫解決方案,其特色包括99.999% 的可用性服務等級協定(SLA)、即時自動調整,以及跨多個區域的自動容錯移轉。
針對使用開放原始碼超大規模 (Citus) 延伸模組的分區化 PostgreSQL 使用適用於 PostgreSQL 的 Azure 資料庫的彈性叢集功能。
一般在 PostgreSQL 中尋找資料表大小的方式 (pg_total_relation_size) 會大幅低報 Azure Cosmos DB for PostgreSQL 上的分散式資料表大小。
此函式在叢集上執行的所有動作,都是為了顯示協調器節點上的資料表大小。 實際上,分散式資料表中的資料是位於工作節點的分片上,而不是在協調器上。 分散式資料表大小的真實量值是以分區大小加總來取得。 Azure Cosmos DB for PostgreSQL 提供 Helper 函式來查詢這項資訊。
| 函式 | 傳回值 |
|---|---|
| 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 │
└───────────────┴───────┘