Esta página explica los resultados de referencia de la migración de datos de Relational Migrator y proporciona recomendaciones basadas en esos resultados. Puedes utilizar los resultados y las recomendaciones para estimar los plazos de migración, seleccionar las configuraciones de infraestructura adecuadas y planificar los requisitos de recursos para tu migración de relacional a MongoDB.
Descripción general de benchmark
Los puntos de referencia de Relational Migrator midieron el rendimiento de la migración en función de los siguientes factores:
Schema mapping complexity
Relational database size
Relational database storage type
Configuración de la instancia del Relational Migrator
Configuración de MongoDB Atlas
Las pruebas de referencia utilizaron MongoDB Atlas e infraestructura de AWS. Sin embargo, los patrones de rendimiento y recomendaciones se aplican de manera amplia a otros proveedor de nube y a implementaciones on-premises. Para aprender más sobre la infraestructura utilizada en los benchmarks, consulte Configuración de referencia.
Complejidad del mapeo de esquemas
Relational Migrator allows you to transform your relational schema into a document model. The following terms describe different MongoDB schema mapping complexities used by the benchmarks:
Nivel de complejidad | Descripción |
|---|---|
One-to-one | Un esquema de MongoDB que coincida con tu esquema relacional: cada tabla se asigna a una sola colección de MongoDB y cada fila se asigna a un solo documento. Uso mínimo de funcionalidades avanzadas. |
Embedded Mappings | Un esquema de MongoDB que contiene algunos arreglos incrustados o documentos incrustados. Un máximo de dos niveles de documentos anidados. |
Avanzado | Un esquema de MongoDB que utiliza muchas funcionalidades avanzadas que pueden aumentar los tiempos de migraciones. Algunos ejemplos de funcionalidades avanzadas incluyen los siguientes:
The advanced schema has a maximum of three levels of nested documents. |
Para obtener más información sobre cómo mapear datos relacionales a esquemas de MongoDB, consulte Modelado de datos.
Configuración del Benchmark
La siguiente tabla describe la configuración de cada componente utilizado en las pruebas de referencia:
Componente | Configuración |
|---|---|
Base de datos fuente (Oracle) |
La instancia de Oracle fue aislada y recibió tráfico exclusivamente de la instancia de Relational Migrator. |
Relational Migrator |
|
Target Database (MongoDB Atlas) |
|
Resultados de benchmark
The following table shows the results of the benchmark tests. The benchmarks used the Atlas UI or mongostat to monitor document metrics. The Average Throughput (MB/s) column is rounded to two decimal places. The Cluster Documents/s column is rounded to the nearest ten thousand documents per second. For long-running One-to-one migrations, the Cluster Documents/s column provides an observed lower and upper bound due to speed changes during the benchmark.
Nota
The Oracle database showed no significant CPU or RAM usage during the benchmark testing.
Tamaño de la base de datos | Complejidad del mapeo | Tipo de almacenamiento Oracle RDS | Nivel de clúster Atlas | Duración de la migración | Rendimiento promedio (MB/s) | Cluster Documents/s |
|---|---|---|---|---|---|---|
10 GB | One-to-one | gp2 | M60 | minutos de 15 | 11.11 | 80,000 (insert) |
10 GB | Embedded Mappings | gp2 | M60 | minutos de 37 | 4.50 | 80,000 (insert), 40,000 (update) |
10 GB | Avanzado | gp2 | M60 | minutos de 47 | 3.55 | 90,000 (insert), 40,000 (update) |
100 GB | One-to-one | gp3 | M60 | 2 hours, 31 minutes | 11.04 | 80,000 a 100,000 (Insertar) |
100 GB | Embedded Mappings | gp3 | M80 | 16 hours, 25 minutes | 1.69 | 90,000 (insert), 40,000 (update) |
100 GB | Avanzado | gp3 | M140 | 15 hours, 47 minutes | 1.76 | 90,000 (insert), 40,000 (update) |
1 TB | One-to-one | IOPS SSD | M60 | 30 hours, 50 minutes | 9.01 | 85,000 a 100,000 (Insertar) |
El Relational Migrator siempre comienza con una serie de insert operaciones para escribir los documentos iniciales. Luego utiliza la operación update para insertar documentos incrustados o arreglos incrustados. Como resultado, los resultados de criterio One-to-one contienen solo operaciones de inserción, mientras que los resultados de Embedded Mappings y Advanced contienen tanto operaciones de inserción como de actualización.
Estimaciones del rendimiento
Based on the benchmark results, Relational Migrator can migrate approximately:
21 GB/hour for one-to-one schemas.
7 GB/hora para esquemas con hasta dos niveles de asignaciones integradas.
La velocidad de migración de bases de datos para esquemas uno a uno es aproximadamente lineal. Por ejemplo, una migración uno a uno de 100 GB tarda aproximadamente 10 veces más que una migración uno a uno de 10 GB.
Migration speed for more complex schemas does not scale linearly with database size. The more embedded documents, embedded arrays, and other features in your schema, the slower your migration speed.
Recomendaciones
Recommended Configurations
La siguiente tabla proporciona los niveles recomendados de clúster de Atlas y los tipos de almacenamiento de AWS RDS según el tamaño de la base de datos de origen y la complejidad del mapeo.
Source Dataset Size | Complejidad del mapeo | Recommended Atlas Cluster Tier | Tipo de almacenamiento recomendado de AWS RDS |
|---|---|---|---|
0-50 GB | One-to-one | M60 | gp2 |
0-50 GB | Embedded Mappings | M60 | gp2 |
0-50 GB | Avanzado | M60 | gp2 |
50 GB-300 GB | One-to-one | M60 | gp3 |
50 GB-300 GB | Embedded Mappings | M80 | gp3 |
50 GB-300 GB | Avanzado | M80 | gp3 |
300 GB-1 TB | One-to-one | M60 | gp3 |
300 GB-1 TB | Embedded Mappings | M140 | IOPS SSD |
300 GB-1 TB | Avanzado | M140 | IOPS SSD |
1 TB+ | One-to-one | M60 | IOPS SSD |
1 TB+ | Embedded Mappings | M200 | IOPS SSD |
1 TB+ | Avanzado | M200 | IOPS SSD |
Although the table specifies MongoDB Atlas and AWS RDS configurations, you can apply these recommendations to other cloud providers and self-managed deployments. To learn more about the infrastructure configuration associated with a given MongoDB Atlas cluster tier, see Cloud Providers. To learn more about AWS RDS storage types, see the AWS RDS Storage Types documentation.
Optimize Network Latency
Para minimizar la latencia de la red, asegúrese de que la base de datos de origen, el Relational Migrator y el clúster de destino se estén ejecutando en el mismo centro de datos.
Supervisar los cuellos de botella
To optimize migration performance, monitor metrics to identify performance bottlenecks. As a best practice, follow the flow of data when identifying performance bottlenecks: start by monitoring the source database, then move on to Relational Migrator, and finally the target cluster.
Cuellos de botella en bases de datos de origen
Si observas IOPS de lectura bajos (< 50), la base de datos de origen podría ser el cuello de botella. Considera tomar las siguientes acciones para mejorar el rendimiento de la base de datos de origen:
AWS RDS: utiliza
Provisioned IOPSo mejora el tipo de almacenamiento.On-premises: Para mejorar el rendimiento, es posible que requiera actualizaciones de almacenamiento físico o una migración a una solución de almacenamiento con mejor rendimiento.
Relational Migrator Cuellos de botella
Si observa que la CPU y la RAM en la instancia del Relational Migrator están completamente utilizadas, Relational Migrator es el cuello de botella. Consider increasing the instancia size to improve migración performance.
Los siguientes resultados de la prueba muestran el impacto de aumentar el número de vCPU y la RAM en la instancia de Relational Migrator en el rendimiento de la migración:
Source Database Size | Complejidad del mapeo | 16 vCPU, 32 GB de RAM Duración | 32 vCPU, 64 GB de RAM Duración | Mejora |
|---|---|---|---|---|
10 GB | One-to-one | minutos de 15 | minutos de 15 | 0% |
10 GB | Embedded Mappings | minutos de 50 | minutos de 37 | 26% |
10 GB | Avanzado | minutos de 63 | minutos de 47 | 25.40% |
100 GB | One-to-one | 3 hours, 34 minutes | 2 hours, 31 minutes | 29.44% |
100 GB | Embedded Mappings | 18 hours, 24 minutes | 16 hours, 25 minutes | 10.78% |
100 GB | Avanzado | 16 hours, 35 minutes | 15 hours, 47 minutes | 4.82% |
1 TB | One-to-one | 45 hours, 20 minutes | 30 hours, 50 minutes | 31.99% |
Cuando la instancia de Relational Migrator era el cuello de botella, aumentar el conteo de vCPU y la RAM resultó en una mejora de rendimiento del 25-%30.
Cuellos de botella de la base de datos de destino
If you observe low document insert or update rates compared to the benchmark results table, the MongoDB cluster might be the bottleneck. Consider taking the following actions to improve migration performance:
Aumentar las IOPS aprovisionadas
Increase vCPU or RAM
Increase cluster tier
Si observa que las actualizaciones se han limitado debido al atraso de la replicación, aumentar los IOPS aprovisionados tiene el mayor impacto en el rendimiento de la migración.