1 votos

Migración de DynamoDB a RDS

Estoy considerando las diferentes opciones disponibles para realizar la migración de una Base de datos DynamoDB de RDS. La estructura de datos tiene mucho más sentido en un formato relacional.

Hay 8 mesas con alrededor de 1 millón de documentos en cada una de ellas. Hemos trabajado a cabo el mapeo entre primaria y claves foráneas.

A partir de la documentación que he leído en AWS tengo un par de opciones.

  • AWS data pipeline -> S3 -> convertir a csv -> AWS Servicio de Migración de datos
  • Programa personalizado escribe tablas para S3 en formato csv -> AWS Migración de Base de datos
  • Programa personalizado que se lee de dynamoDB -> inserta inmediatamente en RDS mesa por mesa hasta que se completa.
  • Tal vez el uso de AWS Data pipeline para copia de DynamoDB a RDS directamente?

Ha nadie tenía experiencia con este tipo de migración? Hay otras opciones?

3voto

MLu Puntos 439

8 millones de documentos no es que muchos, no pasar demasiado tiempo tratando de sobre-optimizar un proceso que al final puede ejecutar sólo una vez y sólo por un par de minutos.

Si la escala de la DynamoDB el rendimiento de la lectura a 10k unidades de capacidad por segundo debe ser capaz de leer el conjunto de datos completo en menos de 15 minutos. Al mismo tiempo que ejecuta su RDS en una lo suficientemente grande como instancia de modo que puede mantener la escritura de los 8M filas sin frenar. No use db.t2.* clase que utiliza la CPU créditos y una vez que se ejecute se ralentiza. En lugar de utilizar algo grande (por ejemplo db.r4.2xlarge) con una gran cantidad de memoria y una vez que la importación se realiza inmediatamente puede rebajar a lo que se adapte a sus necesidades a largo plazo para ahorrar dinero. También considere la posibilidad de Aurora , en lugar de la antigua RDS.

Usted puede experimentar con diferentes maneras en un pequeño subconjunto de registros y una vez que el proceso de las obras a ejecutar en el conjunto de datos completo. Probablemente elegiría un simple programa personalizado que se lee de DynamoDB en un lado y escribe a la RDS en el otro lado. Y me gustaría que la ejecución de una instancia de EC2 para el rendimiento y la optimización de costes razones (para evitar el tráfico que sale de AWS que cuesta un poco de dinero). A menos que usted ya utiliza Datos de Tuberías para algo más que probablemente no vale la pena aprender para un pequeño one-off de trabajo. Pero si usted ya sabe cómo utilizar los Datos de Tuberías de usarla. En el final todo lo que se puede leer a partir de DynamoDB y escribir en RDS va a hacer el trabajo, así que elige algo que usted ya está familiarizado con.

Espero que ayude :)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: