使用適用於 MongoDB 的 Azure Cosmos DB API 時的移轉後最佳化步驟
適用於: MongoDB
重要
請先讀完本指南,然後再執行您的移轉後步驟。
此 MongoDB 移轉後指南是 MongoDB 移轉系列的一部分。 重要的 MongoDB 移轉步驟為移轉前、移轉和移轉後,如下所示。
移轉後的概觀
將 MongoDB 資料庫中儲存的資料遷移至 Azure Cosmos DB 的 MongoDB 版 API 之後,您就可以連線到 Azure Cosmos DB 並管理這些資料。 本指南提供您在移轉後應考慮進行的步驟。 如需移轉步驟,請參閱將 MongoDB 移轉至適用於 MongoDB 的 Azure Cosmos DB API 教學課程。
遵循下列步驟來執行移轉後
注意
唯一強制的移轉後步驟是將應用程式中的連接字串變更為指向新的 Azure Cosmos DB 帳戶。 所有其他移轉後步驟都是建議的最佳化,以改善資料層的效能。 不過,如果您立即執行應用程式完全移轉,而沒有其他步驟,則您的應用程式會立即看到具有非最佳索引和一致性的影響。 具體而言,如果您在設定索引之前先進行完全移轉,應用程式可能會看到價格/效能立即下降。 請注意,這是可以補救的 - 一旦最佳化了索引,就會預期 Azure Cosmos DB 在價格/效能方面通常優於現狀解決方案。
必要條件
在本指南中,我們假設您使用某種形式的追蹤成品 (例如試算表) 來維護您的移轉進度記錄。 如果您還沒有這麼做,建議您閱讀移轉前指南,以取得有關建置資料資產移轉試算表、探索現有 MongoDB 資源,以及規劃移轉的指引。
最佳化編製索引原則
若要最佳化價格和效能,建議您逐步執行資料資產移轉試算表,並為每個資源設計索引設定。
- 我們實際上建議在移轉前階段期間規劃您的索引。 將資料行新增至您的資料資產移轉試算表,以進行索引設定。
Azure Cosmos DB for MongoDB 伺服器版本 3.6 和更新版本只會自動為 _id 欄位編製索引。 無法卸除此欄位。 其會自動根據每個分區索引鍵強制執行 _id 欄位的唯一性。 若要為其他欄位編製索引,請套用 MongoDB 索引管理命令。 這個預設的編製索引原則與 Azure Cosmos DB for NoSQL 不同,後者預設會為所有欄位編製索引。
針對 Azure Cosmos DB for MongoDB 伺服器版本 3.2,所有資料欄位預設會在資料移轉至 Azure Cosmos DB 時自動編製索引。 在許多情況下,此預設的編製索引原則是可接受的。 一般而言,移除索引會最佳化寫入要求,而具有預設編製索引原則 (例如,自動編製索引) 會最佳化讀取要求。
Azure Cosmos DB 提供的索引功能包括新增複合索引、唯一索引和存留時間 (TTL) 索引。 索引管理介面對應至 createIndex() 命令。 深入了解 Azure Cosmos DB 中的索引,以及適用於 MongoDB 的 Azure Cosmos DB API 中的索引。
- 在移轉後期間套用這些索引設定。
- Azure Database Migration Service 會自動移轉具有唯一索引的 MongoDB 集合。 不過,必須先建立唯一索引,然後再進行移轉。 當您的集合中已經有資料時,Azure Cosmos DB 不支援建立唯一索引。 如需詳細資訊,請參閱 Azure Cosmos DB 中的唯一索引鍵。
全域散發您的資料
全球所有 Azure 區域都有提供 Azure Cosmos DB。
- 若要全域散發您的資料,請遵循在適用於 MongoDB 的 Azure Cosmos DB API 上全域散發資料一文中的指引。 在選取 Azure Cosmos DB 帳戶的預設一致性層級之後,您可以關聯一或多個 Azure 區域 (取決於您的全域散發需求)。 針對高可用性和商務持續性,我們一律建議至少在 2 個區域中執行。 您可以檢閱最佳化在 Azure Cosmos DB 中進行多重區域部署的成本的秘訣。
設定一致性層級
Azure Cosmos DB 提供 5 個定義完善的一致性層級。 若要了解 MongoDB 與 Azure Cosmos DB 一致性層級之間的對應,請閱讀一致性層級和 Azure Cosmos DB API。 預設一致性層級是工作階段一致性層級。 變更一致性層級是選擇性的,而且您可以針對您的應用程式將其最佳化。 若要使用 Azure 入口網站來變更一致性層級:
- 移至 [設定] 下的 [預設一致性] 刀鋒視窗。
- 選取您的一致性層級
大部分的使用者會將其一致性層級保留為預設的工作階段一致性設定。 不過,有各種一致性層級的可用性和效能權衡取捨。
連線或完全移轉您的應用程式
完全移轉或連線您應用程式的流程,可讓您在完成移轉後,將您的應用程式切換為使用 Azure Cosmos DB。 請執行以下步驟:
- 在新的視窗中,登入 Azure 入口網站。
- 從 Azure 入口網站的左窗格中,開啟 [所有資源] 功能表,並尋找您已將資料移轉至其中的 Azure Cosmos DB 帳戶。
- 開啟 [連接字串] 刀鋒視窗。 右窗格中有您成功連接到您的帳戶所需的所有資訊。
- 使用應用程式設定中的連線資訊 (或其他相關位置),以反映應用程式中適用於 MongoDB 的 Azure Cosmos DB API 連線。
如需詳細資訊,請參閱將 MongoDB 應用程式連線至 Azure Cosmos DB 頁面。
針對最佳效能進行微調
關於索引、全域散發和一致性的一個便利事實 - 這些全都可以視您所需輕鬆地設定和重新設定。 因此,一旦您完成了應用程式完全轉移,我們就會建議您監視應用程式的效能,並視需要調整這些設定,以便符合您應用程式的需求。
下一步
- 正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎?
- 如果您知道現有資料庫叢集中的虛擬核心和伺服器數目,請參閱使用虛擬核心或 vCPU 來估計要求單位
- 如果您知道目前資料庫工作負載的一般要求率,請參閱使用 Azure Cosmos DB 容量規劃工具來估計要求單位
- 將 MongoDB 應用程式連線至 Azure Cosmos DB
- 使用 Studio 3T 連線至 Azure Cosmos DB 帳戶
- 如何使用 Azure Cosmos DB 適用於 MongoDB 的 API 來設定全域散發讀取
- 使用 Azure Cosmos DB 適用於 MongoDB 的 API 讓資料過期
- Azure Cosmos DB 中的一致性層級
- Azure Cosmos DB 中的編製索引
- Azure Cosmos DB 中的要求單位