大量資料載入最佳做法

僅適用於 Cloud Firestore Enterprise 版。

本頁說明使用 mongoimport 等工具,將大量資料載入與 MongoDB 相容的 Cloud Firestore 時,應遵循的最佳做法。

Cloud Firestore 是高度分散式系統,可自動擴充,滿足您的業務需求。Cloud Firestore根據系統收到的負載,動態分割及合併資料。

系統會自動根據負載進行分割,不需要預先設定。與其他文件資料庫相比,Cloud Firestore以負載為準的分割系統具有一些重要且獨特的特徵,在建立資料模型時請務必留意。

Cloud Firestore 的分散式特性可能需要變更某些設計選擇,特別是針對已針對資料庫最佳化的工作負載,因為主要副本是寫入輸送量的瓶頸。

最佳做法

如果工作負載在單一執行緒用戶端中處理大量資料,可能會造成瓶頸。用戶端或許可以使用單一執行緒大量載入資料,因為用戶端和伺服器的輸送量相符。Cloud Firestore 資料庫可處理的平行處理量大幅增加,但您必須設定用戶端,才能並行傳送要求。

mongoimport

使用 mongoimport 工具時,系統預設會依序提出要求。如要縮短載入 Cloud Firestore 的時間,請使用 --numInsertionWorkers 標記設定工作站數量。正確設定可能需要根據用戶端大小進行調整,但我們一般建議至少從 32 開始。

非同步程式設計

使用 MongoDB 相容 API 開發自己的軟體時,您可以透過下列方式提升平行處理能力:

  • 非同步架構:使用非同步架構可並行處理及回應要求。您在呼叫資料庫時,不必開發任何複雜的集區或佇列。每個要求流程都可以使用獨立連線,並平行發出資料庫呼叫。
  • 使用平行運算服務:使用 Cloud Run 等服務時,系統可以調度處理資料所需的運算工作站數量。

暫時性失敗

使用 Cloud Firestore 等大型分散式系統時,可能會遇到暫時性故障,例如網路中斷或文件爭用。

大量載入資訊時,請務必維持失敗寫入的重試策略,但不要讓較大的大量載入作業失敗。