在 上評估將SQL伺服器資料庫遷移至 MongoDB Atlas 的查詢效能 AWS - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 上評估將SQL伺服器資料庫遷移至 MongoDB Atlas 的查詢效能 AWS

由 Battulga Purevragchaa (AWS)、Krishnakumar Sathyanarayana (PeerIslands US Inc) 和 Babu Srinivasan (MongoDB ) 建立

環境:PoC 或試行

來源:Microsoft SQL Server

目標:MongoDB Atlas 或 MongoDB Enterprise Advanced

R 類型:Replatform

工作負載:Microsoft

技術:資料庫;遷移

Summary

此模式提供使用近乎實際的資料載入 MongoDB 的指引,並評估盡可能接近生產案例的 MongoDB 查詢效能。評估提供 輸入,協助您規劃從關聯式資料庫遷移至 MongoDB。此模式使用PeerIslands 測試資料產生器和效能分析工具來測試查詢效能。

此模式對於 Microsoft SQL Server 遷移至 MongoDB 特別有用,因為執行結構描述轉換並從目前SQL伺服器執行個體將資料載入至 MongoDB 可能非常複雜。相反地,您可以載入接近真實世界的資料到 MongoDB 中,了解 MongoDB 效能,並在開始實際遷移之前微調結構描述設計。

先決條件和限制

先決條件

  • 作用中AWS帳戶

  • 熟悉 MongoDB Atlas

  • 目標 MongoDB 結構描述

  • 一般查詢模式

限制

  • 資料載入時間和效能會受到 MongoDB 叢集執行個體大小的限制。我們建議您選擇建議用於生產的執行個體,以了解實際效能。

  • PeerIslands Test Data Generator 和 Performance Analyzer 目前僅支援線上資料載入和查詢。尚未支援離線批次處理 (例如,使用 Spark 連接器將資料載入 MongoDB)。

  • PeerIslands Test Data Generator 和 Performance Analyzer 支援集合中的欄位關係。它不支援跨集合的關係。

產品版本

架構

目標技術堆疊

  • MongoDB Atlas 或 MongoDB Enterprise Advanced

架構

評估將SQL伺服器資料庫遷移至 上 MongoDB Atlas 的查詢效能的架構AWS。

PeerIslands 測試資料產生器和效能分析工具是使用 Java 和 Angular 建置,並將產生的資料存放在 Amazon Elastic Block Store (Amazon ) 上EBS。此工具包含兩個工作流程:測試資料產生和效能測試。

  • 在測試資料產生中,您會建立範本,這是必須產生之資料模型的JSON表示法。建立範本後,您可以在目標集合中產生資料,如負載產生組態所定義。

  • 在效能測試中,您可以建立設定檔。設定檔是多階段測試案例,您可以在其中設定建立、讀取、更新和刪除 (CRUD) 操作、彙總管道、每個操作的權重,以及每個階段的持續時間。建立設定檔後,您可以根據組態在目標資料庫上執行效能測試。

PeerIslands 測試資料產生器和效能分析工具會將其資料存放在 Amazon 上EBS,因此您可以使用任何 EBS MongoDB 支援的連線機制,包括對等、允許清單和私有端點,將 Amazon 連線至 MongoDB。根據預設,該工具不包含操作元件;不過,如果需要,可以使用 Amazon Managed Service for Prometheus、Amazon Managed Grafana、Amazon CloudWatch和 AWS Secrets Manager 進行設定。

工具

  • PeerIslands 測試 Data Generator 和 Performance Analyzer 包含兩個元件。Test Data Generator 元件可協助您根據 MongoDB 結構描述產生高度客戶特定的真實世界資料。該工具完全以使用者介面驅動,具有豐富的資料庫,可用於在 MongoDB 上快速產生數十億筆記錄。此工具也提供在 MongoDB 結構描述中的欄位之間實作關係的功能。Performance Analyzer 元件可協助您產生高度客戶特定的查詢和彙總,並在 MongoDB 上執行實際的效能測試。您可以使用效能分析工具,針對您的特定使用案例,使用豐富的負載描述檔和參數化查詢來測試 MongoDB 效能。

最佳實務

請參閱下列資源:

史詩

任務描述所需的技能

了解目前SQL伺服器來源的資料庫佔用空間。

了解您目前的SQL伺服器足跡。這可以透過針對資料庫INFORMATION的結構描述執行查詢來實現。決定資料表的數目和每個資料表的大小。分析與每個資料表相關聯的索引。如需SQL分析的詳細資訊,請參閱 PeerIslands 網站上的部落格文章SQL2Mongo:Data Migration Journey

DBA

了解來源結構描述。

決定資料表結構描述和資料的業務表示法 (例如郵遞區號、名稱和貨幣)。使用您現有的實體關係 (ER) 圖表,或從現有的資料庫產生 ER 圖表。如需詳細資訊,請參閱 PeerIslands 網站上的部落格文章SQL2Mongo:Data Migration Journey

DBA

了解查詢模式。

記錄您使用的前 10 個SQL查詢。您可以使用資料庫中可用的 performance_schema.events_statements_summary_by_digest 資料表來了解熱門查詢。如需詳細資訊,請參閱 PeerIslands 網站上的部落格文章SQL2Mongo:Data Migration Journey

DBA

了解SLA承諾。

記錄資料庫操作的目標服務層級協議 (SLAs)。典型的措施包括查詢延遲和每秒查詢數。措施及其目標通常可在非功能需求 (NFR) 文件中使用。

DBA
任務描述所需的技能

定義目標結構描述。

定義目標 MongoDB 結構描述的各種選項。如需詳細資訊,請參閱 MongoDB Atlas 文件中的結構描述。根據資料表關係考慮最佳實務和設計模式。如需詳細資訊,請參閱 MongoDB 文件中的資料模型範例和模式

MongoDB 工程師

定義目標查詢模式。

定義 MongoDB 查詢和彙總管道。這些查詢等同於您為SQL伺服器工作負載擷取的熱門查詢。若要了解如何建構 MongoDB 彙總管道,請參閱 MongoDB 文件

MongoDB 工程師

定義 MongoDB 執行個體類型。

決定您計劃用於測試的執行個體大小。如需指引,請參閱 MongoDB 文件

MongoDB 工程師
任務描述所需的技能

設定 MongoDB Atlas 叢集。

若要在 上設定 MongoDB 叢集AWS,請遵循 MongoDB 文件 中的指示。

MongoDB 工程師

在目標資料庫中建立使用者。

遵循 MongoDB 文件 中的指示,設定 MongoDB Atlas 叢集以進行存取和網路安全。

MongoDB 工程師

在 中建立適當的角色,AWS並為 Atlas 設定角色型存取控制。

如有需要,請依照 MongoDB 文件 中的指示設定其他使用者。透過AWS角色設定身分驗證和授權

MongoDB 工程師

為 MongoDB Atlas 存取設定 Compass。

設定 MongoDB Compass GUI公用程式,以方便導覽和存取。

MongoDB 工程師
任務描述所需的技能

安裝測試資料產生器。

在環境中安裝PeerIsland 測試資料產生器

MongoDB 工程師

設定測試資料產生器以產生適當的資料。

使用資料庫為 MongoDB 結構描述中的每個欄位產生特定資料,藉此建立範本。如需詳細資訊,請參閱 MongoDB Data Generator & Perf。Analyzer 影片。

MongoDB 工程師

水平擴展測試資料產生器以產生所需的負載。

使用您建立的範本,透過設定所需的平行處理開始針對目標集合產生負載。決定時間範圍並擴展以產生必要的資料。

MongoDB 工程師

驗證 MongoDB Atlas 中的負載。

檢查載入 MongoDB Atlas 的資料。

MongoDB 工程師

在 MongoDB 上產生所需的索引。

根據查詢模式,視需要定義索引。如需最佳實務,請參閱 MongoDB 文件

MongoDB 工程師
任務描述所需的技能

在 Performance Analyzer 中設定負載描述檔。

透過設定特定查詢及其對應的權重、測試執行持續時間和階段,在效能分析器中建立效能測試描述檔。如需詳細資訊,請參閱 MongoDB Data Generator & Perf。Analyzer 影片。

MongoDB 工程師

執行效能測試。

使用您建立的效能測試描述檔,透過設定所需的平行處理開始針對目標集合進行測試。水平擴展效能測試工具,以針對 MongoDB Atlas 執行查詢。

MongoDB 工程師

記錄測試結果。

記錄查詢的 P95, P99 延遲。

MongoDB 工程師

調整您的結構描述和查詢模式。

修改索引和查詢模式,以解決任何效能問題。

MongoDB 工程師
任務描述所需的技能

關閉臨時AWS資源。

刪除您用於測試資料產生器和效能分析器的所有臨時資源。

AWS 管理員

更新效能測試結果。

了解 MongoDB 查詢效能,並將其與您的 進行比較SLAs。如有必要,請微調 MongoDB 結構描述並重新執行程序。

MongoDB 工程師

結束專案。

關閉專案並提供意見回饋。

MongoDB 工程師

相關資源

其他資源: