在 Azure Cosmos DB for PostgreSQL 選擇分區計數
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)
選擇每個分散式資料表的分區計數,就是擁有更多分區的彈性與查詢規劃和執行其額外負荷之間的平衡。 若您決定在散發之後變更資料表的分區計數,您可以使用 alter_distributed_table 函式。
多租用戶 SaaS 使用案例
最佳選擇會根據該資料的存取模式而有所不同。 例如,在多租用戶 SaaS 資料庫使用案例中,我們建議在 32 - 128 個分區之間選擇。 針對較小的工作負載,假設有 < 100 GB,您可以從 32 個分區開始著手,而針對較大的工作負載,您可以選擇 64 或 128 個。 此選項可讓您從 32 部到 128 部背景工作電腦進行規模調整。
即時分析使用案例
在即時分析使用案例中,分區計數應該與背景工作角色的核心總數相關。 為了確保平行處理原則上限,您應該在每個節點上建立足夠的分區,使每個 CPU 核心至少有一個分區。 我們通常會建議建立大量初始分區,例如目前 CPU 核心數目的 2 或 4 倍。 如果您新增更多背景工作角色和 CPU 核心,則會擁有更多分區可在未來進行規模調整。
請記住,針對每個查詢,Azure Cosmos DB for PostgreSQL 會針對每個分區開啟一個資料庫連線,而且這些連線受到限制。 請留意讓分區計數夠小,這樣分散式查詢通常不需要等候連線。 另一種方式是所需的連線,(max concurrent queries * shard count)
不應超過系統中可能的總連線 (number of workers * max_connections per worker)
。