

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Valuta le prestazioni delle query per la migrazione dei database SQL Server su MongoDB Atlas su AWS
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws"></a>

*Battulga Purevragcha, Amazon Web Services*

*Krishnakumar PeerIslands Sathyanarayana, US Inc*

*Babu Srinivasan, MongoDB*

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

Questo modello fornisce indicazioni per caricare MongoDB con dati simili a quelli reali e valutare le prestazioni delle query di MongoDB che si avvicinano il più possibile allo scenario di produzione. La valutazione fornisce input per aiutarti a pianificare la migrazione a MongoDB da un database relazionale. Il modello utilizza [PeerIslands Test Data Generator e Performance Analyzer per testare le prestazioni delle](https://tools.peerislands.io/) query.

Questo modello è particolarmente utile per la migrazione di Microsoft SQL Server a MongoDB, poiché eseguire trasformazioni dello schema e caricare dati dalle istanze correnti di SQL Server a MongoDB può essere molto complesso. Invece, puoi caricare dati quasi reali in MongoDB, comprendere le prestazioni di MongoDB e perfezionare la progettazione dello schema prima di iniziare la migrazione vera e propria.

## Prerequisiti e limitazioni
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Familiarità con [MongoDB Atlas](https://www.mongodb.com/docs/atlas/getting-started/)
+ Schema MongoDB di destinazione
+ Schemi di interrogazione tipici

**Limitazioni**
+ I tempi di caricamento dei dati e le prestazioni saranno limitati dalla dimensione dell'istanza del cluster MongoDB. Ti consigliamo di scegliere istanze consigliate per l'uso in produzione per comprendere le prestazioni del mondo reale.
+ PeerIslands Test Data Generator and Performance Analyzer attualmente supportano solo caricamenti e interrogazioni di dati online. L'elaborazione batch offline (ad esempio, il caricamento di dati in MongoDB utilizzando i connettori Spark) non è ancora supportata.
+ PeerIslands Test Data Generator and Performance Analyzer supportano le relazioni tra campi all'interno di una raccolta. Non supporta le relazioni tra le raccolte.

**Edizioni del prodotto**
+ [Questo modello supporta sia [MongoDB Atlas che MongoDB Enterprise Advanced](https://www.mongodb.com/atlas).](https://www.mongodb.com/products/mongodb-enterprise-advanced)

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

**Stack tecnologico Target**
+ MongoDB Atlas o MongoDB Enterprise Advanced

**Architettura**

![Architettura per valutare le prestazioni delle query per la migrazione del database SQL Server a MongoDB Atlas su AWS.](http://docs.aws.amazon.com/it_it/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 è stato creato utilizzando Java e Angular e archivia i dati generati su Amazon Elastic Block Store (Amazon EBS). Lo strumento è composto da due flussi di lavoro: generazione di dati di test e test delle prestazioni. 
+ Nella generazione dei dati di test, si crea un modello, che è la rappresentazione JSON del modello di dati che deve essere generato. Dopo aver creato il modello, è possibile generare i dati in una raccolta di destinazione, come definito dalla configurazione di generazione del carico.
+ Nei test delle prestazioni, si crea un profilo. Un profilo è uno scenario di test in più fasi in cui è possibile configurare le operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD), le pipeline di aggregazione, il peso per ogni operazione e la durata di ogni fase. Dopo aver creato il profilo, è possibile eseguire test delle prestazioni sul database di destinazione in base alla configurazione.

PeerIslands Test Data Generator and Performance Analyzer archivia i dati su Amazon EBS, in modo da poter connettere Amazon EBS a MongoDB utilizzando qualsiasi meccanismo di connessione supportato da MongoDB, tra cui peering, elenchi di autorizzazione ed endpoint privati. Per impostazione predefinita, lo strumento non include componenti operativi; tuttavia, può essere configurato con Amazon Managed Service for Prometheus, Amazon Managed Grafana, Amazon CloudWatch e AWS Secrets Manager, se necessario.

## Tools (Strumenti)
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-tools"></a>
+ [PeerIslands Test Data Generator and Performance Analyzer](https://tools.peerislands.io/) include due componenti. Il componente Test Data Generator ti aiuta a generare dati reali altamente specifici per il cliente in base al tuo schema MongoDB. Lo strumento è completamente basato sull'interfaccia utente con una ricca libreria di dati e può essere utilizzato per generare rapidamente miliardi di record su MongoDB. Lo strumento fornisce anche funzionalità per implementare relazioni tra i campi nello schema MongoDB. Il componente Performance Analyzer ti aiuta a generare query e aggregazioni altamente specifiche per il cliente ed eseguire test realistici delle prestazioni su MongoDB. Puoi utilizzare Performance Analyzer per testare le prestazioni di MongoDB con profili di carico avanzati e query parametrizzate per il tuo caso d'uso specifico.

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

Consulta le seguenti risorse:
+ [Best practice per la progettazione di schemi MongoDB](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/) (sito Web per sviluppatori MongoDB)
+ [Best practice per la distribuzione di MongoDB Atlas su AWS (sito Web MongoDB)](https://www.mongodb.com/presentation/best-practices-of-deploying-mongodb-atlas-on-aws)
+ [Connessione sicura delle applicazioni a un piano dati MongoDB Atlas con AWS PrivateLink (post sul blog AWS](https://aws.amazon.com/blogs/apn/connecting-applications-securely-to-a-mongodb-atlas-data-plane-with-aws-privatelink/))
+ [Guida alle migliori pratiche per le prestazioni di MongoDB (sito Web MongoDB](https://www.mongodb.com/basics/best-practices))

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

### Comprendi i tuoi dati di origine
<a name="understand-your-source-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Comprendi l'impronta del database dell'attuale sorgente di SQL Server. | Comprendi il tuo attuale footprint di SQL Server. Ciò può essere ottenuto eseguendo query sullo `INFORMATION` schema del database. Determina il numero di tabelle e le dimensioni di ciascuna tabella. Analizza l'indice associato a ciascuna tabella. Per ulteriori informazioni sull'analisi SQL, consulta il post di blog [SQL2Mongo: Data Migration Journey](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) sul PeerIslands sito Web. | DBA | 
| Comprendi lo schema sorgente. | Determina lo schema della tabella e la rappresentazione aziendale dei dati (ad esempio codici postali, nomi e valuta). Utilizza il diagramma ER (Entity Relationship) esistente o genera il diagramma ER dal database esistente. Per ulteriori informazioni, consulta il post del blog [SQL2Mongo: Data Migration Journey](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) sul sito web. PeerIslands  | DBA | 
| Comprendi i modelli di interrogazione. | Documenta le 10 principali query SQL che utilizzi. Puoi utilizzare le tabelle **performance\_schema.events\_statements\_summary\_by\_digest disponibili nel database per comprendere le query** principali. Per ulteriori informazioni, consulta il post del blog Mongo: Data Migration [Journey sul SQL2 sito](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60) PeerIslands web. | DBA | 
| Comprendi gli impegni SLA. | Documenta gli accordi sui livelli di servizio (SLAs) previsti per le operazioni del database. Le misure tipiche includono la latenza delle query e le query al secondo. Le misure e i relativi obiettivi sono in genere disponibili nei documenti sui requisiti non funzionali (NFR). | DBA | 

### Definire lo schema MongoDB
<a name="define-the-mongodb-schema"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Definire lo schema di destinazione. | Definisci varie opzioni per lo schema MongoDB di destinazione. Per ulteriori informazioni, consulta [Schemi nella documentazione](https://www.mongodb.com/docs/atlas/app-services/schemas/) di MongoDB Atlas. Considerate le migliori pratiche e i modelli di progettazione basati sulle relazioni tra tabelle.  | Ingegnere MongoDB | 
| Definisci modelli di query target. | Definisci le query e le pipeline di aggregazione di MongoDB. Queste query sono l'equivalente delle principali query acquisite per il carico di lavoro di SQL Server. [Per capire come costruire pipeline di aggregazione MongoDB, consulta la documentazione di MongoDB.](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/) | Ingegnere MongoDB | 
| Definire il tipo di istanza MongoDB. | Determina la dimensione dell'istanza che intendi utilizzare per il test. Per informazioni, consulta la documentazione di [MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | Ingegnere MongoDB | 

### Preparare il database di destinazione
<a name="prepare-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il cluster MongoDB Atlas. | [Per configurare un cluster MongoDB su AWS, segui le istruzioni nella documentazione di MongoDB.](https://www.mongodb.com/docs/atlas/tutorial/create-new-cluster/) | Ingegnere MongoDB | 
| Crea utenti nel database di destinazione. | [Configura il cluster MongoDB Atlas per l'accesso e la sicurezza della rete seguendo le istruzioni nella documentazione di MongoDB.](https://www.mongodb.com/docs/atlas/connect-to-database-deployment/) | Ingegnere MongoDB | 
| Crea ruoli appropriati in AWS e configura il controllo degli accessi basato sui ruoli per Atlas. | Se necessario, configura altri utenti seguendo le istruzioni nella documentazione di [MongoDB](https://www.mongodb.com/docs/atlas/security/set-up-unified-aws-access/). Configura [l'autenticazione e l'autorizzazione](https://www.mongodb.com/docs/atlas/security/config-db-auth/) tramite i ruoli AWS. | Ingegnere MongoDB | 
| Configura Compass per l'accesso a MongoDB Atlas. | Configura l'utilità [MongoDB Compass GUI](https://www.mongodb.com/products/compass) per facilitare la navigazione e l'accesso. | Ingegnere MongoDB | 

### Imposta il carico di base utilizzando Test Data Generator
<a name="set-up-the-base-load-by-using-test-data-generator"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Test Data Generator. | Installa [PeerIsland Test Data Generator](https://github.com/PeerIslands/loadgen_binary) nel tuo ambiente. | Ingegnere MongoDB | 
| Configura Test Data Generator per generare i dati appropriati. | Crea un modello utilizzando la libreria di dati per generare dati specifici per ogni campo dello schema MongoDB. Per ulteriori informazioni, consulta [MongoDB Data Generator & Perf. Video sull'analizzatore.](https://vimeo.com/570068857) | Ingegnere MongoDB | 
| Generatore di dati di test scalabile orizzontalmente per generare il carico richiesto. | Utilizza il modello che hai creato per avviare la generazione del carico sulla raccolta di destinazione configurando il parallelismo richiesto. Determina i tempi e la scala per generare i dati necessari. | Ingegnere MongoDB | 
| Convalida il carico in MongoDB Atlas. | Controlla i dati caricati in MongoDB Atlas. | Ingegnere MongoDB | 
| Genera gli indici richiesti su MongoDB. | Definisci gli indici come richiesto, in base ai modelli di query. Per le best practice, consulta la documentazione di [MongoDB](https://www.mongodb.com/docs/manual/applications/indexes/). | Ingegnere MongoDB | 

### Effettuare test delle prestazioni
<a name="conduct-performance-testing"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura i profili di carico in Performance Analyzer. | Crea un profilo di test delle prestazioni in Performance Analyzer configurando query specifiche e il peso, la durata dell'esecuzione del test e le fasi corrispondenti. Per ulteriori informazioni, consulta [MongoDB Data Generator & Perf. Video sull'analizzatore.](https://vimeo.com/570068857) | Ingegnere MongoDB | 
| Esegui test delle prestazioni. | Utilizza il profilo di test delle prestazioni che hai creato per avviare il test rispetto alla raccolta target configurando il parallelismo richiesto. Scala orizzontalmente lo strumento di test delle prestazioni per eseguire query su MongoDB Atlas. | Ingegnere MongoDB | 
| Registra i risultati dei test. | Registra la latenza P95, P99 per le query. | Ingegnere MongoDB | 
| Ottimizza lo schema e i modelli di query. | Modifica gli indici e i modelli di query per risolvere eventuali problemi di prestazioni. | Ingegnere MongoDB | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. | Elimina tutte le risorse temporanee utilizzate per Test Data Generator e Performance Analyzer. | Amministratore AWS | 
| Aggiorna i risultati dei test delle prestazioni. | Comprendi le prestazioni delle query di MongoDB e confrontale con le tue. SLAs Se necessario, perfeziona lo schema MongoDB ed esegui nuovamente il processo. | Ingegnere MongoDB | 
| Concludi il progetto. | Chiudi il progetto e fornisci feedback. | Ingegnere MongoDB | 

## Risorse correlate
<a name="assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws-resources"></a>
+ GitHub [archivio: S3ToAtlas](https://github.com/mongodb-partners/S3toAtlas)
+ Schema: progettazione dello schema [MongoDB](https://www.mongodb.com/developer/products/mongodb/mongodb-schema-design-best-practices/)
+ [Pipeline di aggregazione: pipeline di aggregazione MongoDB](https://www.mongodb.com/docs/manual/core/aggregation-pipeline/)
+ [Dimensionamento MongoDB Atlas: selezione del livello di dimensionamento](https://www.mongodb.com/docs/atlas/sizing-tier-selection/)
+ Video: Generatore di [dati MongoDB](https://vimeo.com/570068857) e Perf. Analizzatore
+ Riferimenti: documentazione [MongoDB](https://www.mongodb.com/docs/)
+ [Tutorial: guida per sviluppatori MongoDB, MongoDB****[Jumpstart](https://www.mongodb.com/docs/develop-applications/)](https://www.youtube.com/playlist?list=PL4RCxklHWZ9v2lcat4oEVGQhZg6r4IQGV)
+ AWS Marketplace:**** [MongoDB Atlas](https://aws.amazon.com/marketplace/seller-profile?id=c9032c7b-70dd-459f-834f-c1e23cf3d092) su AWS Marketplace
+ Soluzioni per partner AWS:**** [MongoDB Atlas sulla](https://aws.amazon.com/quickstart/architecture/mongodb-atlas/) distribuzione di riferimento AWS

Risorse aggiuntive:
+ [Analisi SQL](https://engineering.peerislands.io/sql2mongo-data-migration-journey-fec91a421d60)
+ [Forum della comunità di sviluppatori MongoDB](https://www.mongodb.com/community/forums/)
+ [Domande sull'ottimizzazione delle prestazioni di MongoDB](https://www.mongodb.com/developer/products/mongodb/performance-tuning-tips/)
+ [Analisi operativa con Atlas e Redshift](https://github.com/mongodb-partners/Atlas_to_Redshift)
+ [Modernizzazione delle applicazioni con MongoDB Atlas e AWS Elastic Beanstalk](https://github.com/mongodb-partners/MEANStack_with_Atlas_on_AWS_EB)