Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

Benchmarks de migración

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.

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.

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:

  • Asignación de filtros

  • Filtros de tabla

  • Arreglos primitivos

  • Condiciones de arreglo

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.

La siguiente tabla describe la configuración de cada componente utilizado en las pruebas de referencia:

Componente
Configuración

Base de datos fuente (Oracle)

  • Plataforma: AWS RDS

  • vCPUs: 2

  • RAM: 8 GB

  • Región: AWS ap-southeast-2

  • Almacenamiento: El tipo de almacenamiento de AWS RDS varió según el tamaño de la base de datos y la complejidad del mapeo. Para obtener más información sobre los tipos de almacenamiento de AWS RDS, consulta la documentación Tipos de almacenamiento de AWS RDS.

La instancia de Oracle fue aislada y recibió tráfico exclusivamente de la instancia de Relational Migrator.

Relational Migrator

  • Plataforma: AWS ECS

  • vCPUs: 32

  • RAM: 64 GB

  • Región: AWS ap-southeast-2

  • Version: Relational Migrator v1.15

  • Modo: por defecto (modo incrustado con subprocesos múltiples habilitados)

Target Database (MongoDB Atlas)

  • Plataforma: MongoDB Atlas

  • Región: AWS ap-southeast-2

  • Configuración: la configuración del clúster de MongoDB Atlas varió según el tamaño de la base de datos y la complejidad de la asignación. Para aprender más sobre cómo modificar un clúster de MongoDB Atlas, consulte Modificar un clúster.

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.

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.

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.

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.

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.

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 IOPS o 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.

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.

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.

Volver

Referencia de riesgo

En esta página