簡體   English   中英

如何在 Firestore 中更新 100 萬個文檔?

[英]How to update 1 Million documents in Firestore?

為了方便閱讀,我使用了去規范化。 工作流程是這樣的。

有兩個collections

  1. 用戶
  2. 事件

事件有開始、結束時間戳和狀態。 開始、結束時間戳指示事件何時開始和結束如果通過偵聽每分鍾調度程序更新其即將到來或實時或已完成或已取消狀態,狀態將保持不變。

當用戶注冊一個事件時,我將事件 object 復制到 users/{user-id}/events 下。 這是必需的,因為我需要獲取用戶注冊的事件。

問題

假設有 100 萬用戶訂閱了狀態為“即將到來”的事件。 當狀態從 Upcoming 變為 Live 時,我需要為所有用戶更新 users/{user-id}/events 集合下的所有文檔。

如果我進行順序批寫入,則需要將近 1000000/500 = 2000 個批次,並且需要將近 15 到 30 分鍾來更新一次事件更改。 隨着事件的增加,我認為它有太多問題。

我非常擔心每秒對整個 firestore 進行 10,000 次更新以使用並行批處理寫入的限制。

如何處理這種情況,以便寫入不會達到限制並可以盡快寫入?

如果您知道您的寫入處理速度有多快,您可以使用 Cloud Tasks 來限制寫入速率。 完整的討論可能超出了單個 Stack Overflow 答案的 scope。 在熟悉Cloud Tasks之后,我建議您專門查看為您將用於處理所有寫入的隊列配置速率限制 分配到隊列的任務可以調用 function 來執行刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM