

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beurteilen Sie die Abfrageleistung für die Migration von SQL Server-Datenbanken zu MongoDB Atlas auf AWS
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws"></a>

*Battulga Purevragchaa, Amazon Web Services*

*Krishnakumar Sathyanarayana PeerIslands , USA Inc*

*Babu Srinivasan, MongoDB*

## Zusammenfassung
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-summary"></a>

Dieses Muster bietet Anleitungen zum Laden von MongoDB mit nahezu realen Daten und zur Bewertung der MongoDB-Abfrageleistung, die dem Produktionsszenario so nahe wie möglich kommt. Die Bewertung liefert Informationen, die Ihnen bei der Planung Ihrer Migration von einer relationalen Datenbank zu MongoDB helfen. Das Muster verwendet [PeerIslands Test Data Generator und Performance Analyzer](https://tools.peerislands.io/), um die Abfrageleistung zu testen.

Dieses Muster ist besonders nützlich für die Migration von Microsoft SQL Server zu MongoDB, da das Durchführen von Schematransformationen und das Laden von Daten aus aktuellen SQL Server-Instanzen nach MongoDB sehr komplex sein kann. Stattdessen können Sie nahezu reale Daten in MongoDB laden, die MongoDB-Leistung verstehen und das Schemadesign verfeinern, bevor Sie mit der eigentlichen Migration beginnen.

## Voraussetzungen und Einschränkungen
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Vertrautheit mit [MongoDB Atlas](https://www.mongodb.com/docs/atlas/getting-started/)
+ MongoDB-Zielschema
+ Typische Abfragemuster

**Einschränkungen**
+ Die Ladezeiten und die Leistung von Daten werden durch die Größe der MongoDB-Clusterinstanz begrenzt. Wir empfehlen Ihnen, Instances auszuwählen, die für den Produktionseinsatz empfohlen werden, um die Leistung in der Praxis zu verstehen.
+ PeerIslands Test Data Generator und Performance Analyzer unterstützen derzeit nur Online-Datenladungen und -abfragen. Die Offline-Batchverarbeitung (z. B. das Laden von Daten in MongoDB mithilfe von Spark-Konnektoren) wird noch nicht unterstützt.
+ PeerIslands Test Data Generator und Performance Analyzer unterstützen Feldbeziehungen innerhalb einer Sammlung. Es unterstützt keine Beziehungen zwischen Sammlungen.

**Produkteditionen**
+ Dieses Muster unterstützt sowohl [MongoDB Atlas](https://www.mongodb.com/atlas) als auch [MongoDB Enterprise Advanced](https://www.mongodb.com/products/mongodb-enterprise-advanced).

## Architektur
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-architecture"></a>

**Zieltechnologie-Stack**
+ MongoDB Atlas oder MongoDB Enterprise Advanced

**Architektur**

![\[Architektur zur Bewertung der Abfrageleistung für die Migration der SQL Server-Datenbank zu MongoDB Atlas auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/25f0ab73-d587-4bd0-9fc0-ac675d5aa349/images/717caae4-d52e-4c78-bb7d-2ecb5acccd42.png)


PeerIslands Test Data Generator and Performance Analyzer wurde mithilfe von Java und Angular erstellt und speichert die generierten Daten im Amazon Elastic Block Store (Amazon EBS). Das Tool besteht aus zwei Workflows: Generierung von Testdaten und Leistungstests. 
+ Bei der Testdatengenerierung erstellen Sie eine Vorlage, bei der es sich um die JSON-Darstellung des Datenmodells handelt, das generiert werden muss. Nachdem Sie die Vorlage erstellt haben, können Sie die Daten in einer Zielsammlung generieren, wie in der Konfiguration zur Ladegenerierung definiert.
+ Bei Leistungstests erstellen Sie ein Profil. Ein Profil ist ein mehrstufiges Testszenario, in dem Sie CRUD-Operationen (Create, Lese, Update and Delete), Aggregationspipelines, die Gewichtung für jeden Vorgang und die Dauer jeder Phase konfigurieren können. Nachdem Sie das Profil erstellt haben, können Sie auf der Grundlage der Konfiguration Leistungstests für die Zieldatenbank ausführen.

PeerIslands Test Data Generator and Performance Analyzer speichert seine Daten auf Amazon EBS, sodass Sie Amazon EBS mit MongoDB verbinden können, indem Sie jeden von MongoDB unterstützten Verbindungsmechanismus verwenden, einschließlich Peering, Zulassungslisten und privaten Endpunkten. Standardmäßig enthält das Tool keine Betriebskomponenten. Es kann jedoch bei Bedarf mit Amazon Managed Service for Prometheus, Amazon Managed Grafana CloudWatch, Amazon und AWS Secrets Manager konfiguriert werden.

## Tools
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-tools"></a>
+ [PeerIslands Test Data Generator und Performance Analyzer bestehen](https://tools.peerislands.io/) aus zwei Komponenten. Die Komponente Test Data Generator hilft Ihnen dabei, hochgradig kundenspezifische, reale Daten auf der Grundlage Ihres MongoDB-Schemas zu generieren. Das Tool ist vollständig UI-gesteuert und verfügt über eine umfangreiche Datenbibliothek. Es kann verwendet werden, um schnell Milliarden von Datensätzen auf MongoDB zu generieren. Das Tool bietet auch Funktionen zum Implementieren von Beziehungen zwischen Feldern im MongoDB-Schema. Die Performance Analyzer-Komponente hilft Ihnen dabei, hochgradig kundenspezifische Abfragen und Aggregationen zu generieren und realistische Leistungstests auf MongoDB durchzuführen. Sie können den Performance Analyzer verwenden, um die MongoDB-Leistung mit umfangreichen Lastprofilen und parametrisierten Abfragen für Ihren speziellen Anwendungsfall zu testen.

## Best Practices
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-best-practices"></a>

Weitere Informationen finden Sie in den folgenden Ressourcen:
+ [Bewährte Methoden für das MongoDB-Schemadesign](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/) (MongoDB-Entwickler-Website)
+ [Bewährte Methoden für die Bereitstellung von MongoDB Atlas auf AWS](https://www.mongodb.com/presentation/best-practices-of-deploying-mongodb-atlas-on-aws) (MongoDB-Website)
+ [Sicheres Verbinden von Anwendungen mit einer MongoDB Atlas-Datenebene mit AWS PrivateLink (AWS-Blogbeitrag](https://aws.amazon.com/blogs/apn/connecting-applications-securely-to-a-mongodb-atlas-data-plane-with-aws-privatelink/))
+ [Leitfaden mit bewährten Methoden für die Leistung von MongoDB](https://www.mongodb.com/basics/best-practices) (MongoDB-Website)

## Epen
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-epics"></a>

### Verstehen Sie Ihre Quelldaten
<a name="understand-your-source-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Machen Sie sich mit dem Datenbank-Footprint der aktuellen SQL Server-Quelle vertraut. | Machen Sie sich mit Ihrem aktuellen SQL Server-Footprint vertraut. Dies kann erreicht werden, indem Abfragen anhand des `INFORMATION` Datenbankschemas ausgeführt werden. Ermitteln Sie die Anzahl der Tabellen und die Größe jeder Tabelle. Analysieren Sie den Index, der jeder Tabelle zugeordnet ist. Weitere Informationen zur SQL-Analyse finden Sie im Blogbeitrag [SQL2Mongo: Data Migration Journey](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) auf der PeerIslands Website. | DBA | 
| Verstehen Sie das Quellschema. | Ermitteln Sie das Tabellenschema und die geschäftliche Darstellung der Daten (z. B. Postleitzahlen, Namen und Währung). Verwenden Sie Ihr vorhandenes Entitätsbeziehungsdiagramm (ER) oder generieren Sie das ER-Diagramm aus der vorhandenen Datenbank. Weitere Informationen finden Sie im Blogbeitrag [SQL2Mongo: Data Migration Journey](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) auf der PeerIslands Website. | DBA | 
| Verstehen Sie Abfragemuster. | Dokumentieren Sie die 10 am häufigsten verwendeten SQL-Abfragen. Sie können die Tabellen **performance\$1schema.events\$1statements\$1summary\$1by\$1digest** verwenden, die in der Datenbank verfügbar sind, um die häufigsten Abfragen zu verstehen. [Weitere Informationen finden Sie im Blogbeitrag Mongo: Data Migration Journey auf der Website. SQL2](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) PeerIslands  | DBA | 
| Machen Sie sich mit den SLA-Verpflichtungen vertraut. | Dokumentieren Sie die angestrebten Service Level Agreements (SLAs) für Datenbankoperationen. Zu den typischen Messgrößen gehören Abfragelatenz und Abfragen pro Sekunde. Die Maßnahmen und ihre Ziele sind in der Regel in Dokumenten zu den nichtfunktionalen Anforderungen (NFR) enthalten. | DBA | 

### Definieren Sie das MongoDB-Schema
<a name="define-the-mongodb-schema"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Definieren Sie das Zielschema. | Definieren Sie verschiedene Optionen für das MongoDB-Zielschema. Weitere Informationen finden Sie unter [Schemas](https://www.mongodb.com/docs/atlas/app-services/schemas/) in der MongoDB Atlas-Dokumentation. Beachten Sie die bewährten Methoden und Entwurfsmuster, die auf den Tabellenbeziehungen basieren.  | MongoDB-Ingenieur | 
| Definieren Sie Zielabfragemuster. | Definieren Sie MongoDB-Abfragen und Aggregationspipelines. Diese Abfragen entsprechen den häufigsten Abfragen, die Sie für Ihre SQL Server-Arbeitslast erfasst haben. [Informationen zum Aufbau von MongoDB-Aggregationspipelines finden Sie in der MongoDB-Dokumentation.](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/) | MongoDB-Ingenieur | 
| Definieren Sie den MongoDB-Instanztyp. | Ermitteln Sie die Größe der Instanz, die Sie zum Testen verwenden möchten. Anleitungen finden Sie in der [MongoDB-Dokumentation](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | MongoDB-Ingenieur | 

### Bereiten Sie die Zieldatenbank vor
<a name="prepare-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie den MongoDB Atlas-Cluster ein. | Folgen Sie den Anweisungen in der MongoDB-Dokumentation, um einen [MongoDB-Cluster](https://www.mongodb.com/docs/atlas/tutorial/create-new-cluster/) auf AWS einzurichten. | MongoDB-Ingenieur | 
| Erstellen Sie Benutzer in der Zieldatenbank. | Konfigurieren Sie den MongoDB Atlas-Cluster für Zugriffs- und Netzwerksicherheit, indem Sie den Anweisungen in der [MongoDB-Dokumentation](https://www.mongodb.com/docs/atlas/connect-to-database-deployment/) folgen. | MongoDB-Ingenieur | 
| Erstellen Sie entsprechende Rollen in AWS und konfigurieren Sie die rollenbasierte Zugriffskontrolle für Atlas. | Richten Sie bei Bedarf weitere Benutzer ein, indem Sie den Anweisungen in der [MongoDB-Dokumentation](https://www.mongodb.com/docs/atlas/security/set-up-unified-aws-access/) folgen. Konfigurieren Sie [Authentifizierung und Autorisierung](https://www.mongodb.com/docs/atlas/security/config-db-auth/) über AWS-Rollen. | MongoDB-Ingenieur | 
| Richten Sie Compass für den MongoDB Atlas-Zugriff ein. | Richten Sie das [MongoDB Compass GUI Utility](https://www.mongodb.com/products/compass) ein, um die Navigation und den Zugriff zu vereinfachen. | MongoDB-Ingenieur | 

### Richten Sie die Grundlast mithilfe von Test Data Generator ein
<a name="set-up-the-base-load-by-using-test-data-generator"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie den Testdatengenerator. | Installieren Sie [PeerIsland Test Data Generator](https://github.com/PeerIslands/loadgen_binary) in Ihrer Umgebung. | MongoDB-Ingenieur | 
| Konfigurieren Sie den Testdatengenerator, um die entsprechenden Daten zu generieren. | Erstellen Sie eine Vorlage, indem Sie die Datenbibliothek verwenden, um spezifische Daten für jedes Feld im MongoDB-Schema zu generieren. Weitere Informationen finden Sie unter [MongoDB Data Generator & Perf. Videoanalysator](https://vimeo.com/570068857). | MongoDB-Ingenieur | 
| Skalieren Sie den Testdatengenerator horizontal, um die erforderliche Last zu generieren. | Verwenden Sie die von Ihnen erstellte Vorlage, um die Lastgenerierung für die Zielsammlung zu starten, indem Sie die erforderliche Parallelität konfigurieren. Legen Sie die Zeitrahmen und den Umfang für die Generierung der erforderlichen Daten fest. | MongoDB-Ingenieur | 
| Überprüfen Sie die Ladung in MongoDB Atlas. | Überprüfen Sie die in MongoDB Atlas geladenen Daten. | MongoDB-Ingenieur | 
| Generieren Sie die erforderlichen Indizes auf MongoDB. | Definieren Sie Indizes nach Bedarf auf der Grundlage von Abfragemustern. Bewährte Methoden finden Sie in der [MongoDB-Dokumentation](https://www.mongodb.com/docs/manual/applications/indexes/). | MongoDB-Ingenieur | 

### Führen Sie Leistungstests durch
<a name="conduct-performance-testing"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Lastprofile in Performance Analyzer ein. | Erstellen Sie ein Leistungstestprofil in Performance Analyzer, indem Sie spezifische Abfragen und deren entsprechende Gewichtung, Dauer des Testlaufs und Phasen konfigurieren. Weitere Informationen finden Sie unter [MongoDB Data Generator & Perf. Videoanalysator](https://vimeo.com/570068857). | MongoDB-Ingenieur | 
| Führen Sie Leistungstests durch. | Verwenden Sie das von Ihnen erstellte Leistungstestprofil, um den Test anhand der Zielsammlung zu starten, indem Sie die erforderliche Parallelität konfigurieren. Skalieren Sie das Leistungstest-Tool horizontal, um Abfragen gegen MongoDB Atlas auszuführen. | MongoDB-Ingenieur | 
| Testergebnisse aufzeichnen. | Zeichnen Sie die P95- und P99-Latenz für die Abfragen auf. | MongoDB-Ingenieur | 
| Optimieren Sie Ihr Schema und Ihre Abfragemuster. | Ändern Sie Indizes und Abfragemuster, um Leistungsprobleme zu beheben. | MongoDB-Ingenieur | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. | Löschen Sie alle temporären Ressourcen, die Sie für Test Data Generator und Performance Analyzer verwendet haben. | AWS-Administrator | 
| Aktualisieren Sie die Ergebnisse der Leistungstests. | Verstehen Sie die Leistung von MongoDB-Abfragen und vergleichen Sie sie mit Ihrer SLAs. Passen Sie bei Bedarf das MongoDB-Schema an und führen Sie den Vorgang erneut aus. | MongoDB-Ingenieur | 
| Schließe das Projekt ab. | Schließen Sie das Projekt ab und geben Sie Feedback. | MongoDB-Ingenieur | 

## Zugehörige Ressourcen
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-resources"></a>
+ GitHub [Repositorium: S3ToAtlas](https://github.com/mongodb-partners/S3toAtlas)
+ Schema: [MongoDB-Schemadesign](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/)
+ Aggregationspipelines: [MongoDB-Aggregationspipelines](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/)
+ MongoDB Atlas Sizing: Auswahl [der Größenstufen](https://www.mongodb.com/docs/atlas/sizing-tier-selection/)
+ Video: [MongoDB-Datengenerator](https://vimeo.com/570068857) und Perf. Analysator
+ Referenzen: [MongoDB-Dokumentation](https://www.mongodb.com/docs/)
+ Tutorials:**** [MongoDB-Entwicklerhandbuch,](https://www.mongodb.com/docs/develop-applications/) [MongoDB](https://www.youtube.com/playlist?list=PL4RCxklHWZ9v2lcat4oEVGQhZg6r4IQGV) Jumpstart
+ AWS Marketplace:**** [MongoDB Atlas auf AWS](https://aws.amazon.com/marketplace/seller-profile?id=c9032c7b-70dd-459f-834f-c1e23cf3d092) Marketplace
+ AWS-Partnerlösungen:**** [MongoDB Atlas auf AWS-Referenzbereitstellung](https://aws.amazon.com/quickstart/architecture/mongodb-atlas/)

Weitere Ressourcen:
+ [SQL-Analyse](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60)
+ [Foren der MongoDB-Entwickler-Community](https://www.mongodb.com/community/forums/)
+ [Fragen zur MongoDB-Leistungsoptimierung](https://www.mongodb.com/developer/products/mongodb/performance-tuning-tips/)
+ [Operational Analytics mit Atlas und Redshift](https://github.com/mongodb-partners/Atlas_to_Redshift)
+ [Anwendungsmodernisierung mit MongoDB Atlas und AWS Elastic Beanstalk](https://github.com/mongodb-partners/MEANStack_with_Atlas_on_AWS_EB)