在 Azure Cosmos DB 中最佳化多重區域成本

適用於:NoSQL MongoDB Cassandra Gremlin Table

您可以隨時在 Azure Cosmos DB 帳戶中新增及移除區域。 您為各種 Azure Cosmos DB 資料庫和容器設定的輸送量,將保留在與您的帳戶相關聯的每個區域中。 如果每小時佈建的輸送量 (亦即在 Azure Cosmos DB 帳戶的所有資料庫和容器中設定的每秒要求單位 (簡稱 RU/s) 總和) 為 T,而資料庫帳戶相關聯的 Azure 區域數目為 N,則 Azure Cosmos DB 帳戶任一小時的總佈建輸送量等於 T x N RU/s。

單一寫入區域佈建的輸送量和多個可寫入區域佈建的輸送量的成本可能有所不同。 如需詳細資訊,請參閱 Azure Cosmos DB 價格

多個寫入區域的成本

在多重區域寫入系統中,寫入作業的淨可用 RU/s 會增加 N 倍,其中 N 是寫入區域的數目。 不同於單一區域寫入,每個區域現在都可寫入,且支援衝突解決。 從成本規劃觀點來看,若要在全域執行 M RU/s 程度的寫入,則需要在容器或資料庫層級設定 M RU/s。 接著,您可以根據需要加入任意數目的區域,並將其用於寫入以執行 M RU/s 程度的全域寫入。

範例

假設您在單一區域寫入情境中有一個容器。 該容器會佈建 10K RU/s 的輸送量,並儲存本月 0.5 TB 的資料。 現在,假設您以相同的儲存體和輸送量新增另一個區域,而且想要從應用程式寫入這兩個區域中的容器。

此範例會詳細說明新的每月總消耗用量:

每月使用量
單一寫入區域中容器的輸送量帳單 10K RU/s * 730 hours
多個寫入區域 (兩個) 中容器的輸送量帳單 2 * 10K RU/s * 730 hours
單一寫入區域中容器的儲存體帳單 0.5 TB (or 512 GB)
兩個寫入區域中容器的儲存體帳單 2 * 0.5 TB (or 1,024 GB)

注意

此範例假設一個月有 730 小時。

改善每個區域的輸送量使用率

如果使用率不高,您可以採取步驟來使用讀取區域中的變更摘要,進而最大限度利用讀取區域中的 RU/s。 或者,如果使用率過高,您可以移至另一個次要區域。 例如,一或多個使用量不足的讀取區域將視為效率不佳。 請務必先確保將寫入區域中的佈建輸送量 (RU/s) 最佳化。

大部分情況下,寫入成本會高於讀取成本,但大型查詢除外。 保持平均的使用率絕非易事。 整體而言,請監視您區域中耗用的輸送量,並視需要新增或移除區域,以調整讀取和寫入輸送量。 請務必了解部署在相同區域中的任何應用程式對於延遲造成的影響。