[英]How to bulk delete (say millions) of documents spread across millions of logical partitions in Cosmos db sql api?
[英]Some questions about Cosmos DB Physical and Logical Partitions
我試圖了解 Azure Cosmos DB 中物理/邏輯分區和吞吐量可用性之間的關系,並有幾個問題。
參考文檔: https://docs.microsoft.com/en-us/azure/cosmos-db/partitioning-overview 。
根據文檔,這是我的理解:
現在我的問題是:
它是基於邏輯分區占用的空間還是基於物理分區中所有邏輯分區消耗的吞吐量或完全其他的東西。 例如,
對此的任何見解都將受到高度贊賞。
更新
根據評論,我將原始問題分為兩部分。 可以在此處找到問題的第二部分: 物理分區在 Cosmos DB 中的邏輯分區之間拆分的可用吞吐量如何? .
一些答案。
如果你配置一個 20K RU/s 的新容器,Cosmos 實際上會創建 3 個分區。 但是,如果您從較少開始,例如 5K RU,然后按比例放大它將創建 1 個分區,然后增加到 2 個分區。 造成差異的原因是我們試圖減少初始分區拆分的數量,因為用戶傾向於在初始配置期間攝取數據,通常伴隨着吞吐量的額外增加。 為了減少分區拆分的數量,我們以大約 10K RU/s 的 60% 配置了一個物理分區。 但是,我們並沒有普遍應用這 60%,因為它很浪費。 這只是我們在初始配置期間根據觀察到的用戶模式進行的優化。 這也是您不應該關心物理分區而是關注邏輯分區鍵的眾多原因之一。 這里的 60% 是一個實現細節,可以隨時更改。
是的。
還沒有,但即將到來。 沒有預計到達時間。
吞吐量總是均勻分布的,所以是的,18K 分布在 3 個分區中,每個分區將獲得 6K RU/s。
是基於邏輯分區占用的空間還是基於所有邏輯分區消耗的吞吐量
物理分區的拆分基於提供的吞吐量以及單個分區上消耗的存儲。 Cosmos 何時創建新物理分區的示例
從文檔來看,邏輯分區的大小或利用率似乎並不重要,我可以讓一些邏輯分區獲得比其他分區更多的請求,但只要我不超過物理分區的可用吞吐量,我應該沒問題。 這個對嗎?
這是真的。 邏輯分區大小確實很重要,這意味着它不能超過 20GB。 利用率也限制在 10K RU/s。 我們無法控制如何將邏輯分區拆分為物理分區,因此您無法真正知道您的邏輯分區位於哪個物理分區。同樣,無法確保您不超過 10K物理分區的吞吐量。 這就是為什么 MS 建議您選擇分區鍵以便適當平衡利用率的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.