Migración de una tabla mediante la exportación a S3 y la importación desde S3 - Amazon DynamoDB

Migración de una tabla mediante la exportación a S3 y la importación desde S3

Requisitos previos 

Información sobre precios

AWS cobra por PITR (en función del tamaño de la tabla y del tiempo durante el que se habilite PITR). Si no necesita PITR salvo para la exportación, puede desactivarla una vez que termine. AWStambién cobra por las solicitudes realizadas en S3, por almacenar los datos exportados en S3 y por la importación (en función del tamaño sin comprimir de los datos importados).

Para obtener más información sobre los precios de DynamoDB, consulte Precios de DynamoDB.

nota

Hay límites en cuanto al tamaño y la cantidad de objetos al importar de S3 a DynamoDB. Para obtener más información, consulte Cuotas de importación.

Paso 1: solicitar la exportación de una tabla a Amazon S3

  1. Inicie sesión en la consola de administración de AWS y abra la consola de DynamoDB.

  2. En el panel de navegación del lado izquierdo de la consola, elija Exports to S3 (Exportación a S3).

  3. Elija una tabla de origen y un bucket de S3 de destino. Introduzca la URL del bucket de la cuenta de destino utilizando el formato s3://bucketname/prefix. El prefijo es una carpeta opcional para ayudar a mantener organizado el bucket de destino.

  4. Seleccione Exportación completa. Una exportación completa genera la instantánea completa de la tabla tal y como estaba en el momento que especifique.

    1. Seleccione Hora actual para exportar la instantánea completa de la tabla más reciente.

    2. En Formato de archivo exportado, elija entre DynamoDB JSON y Amazon Ion. La opción predeterminada es DynamoDB JSON.

  5. Haga clic en el botón Export (Exportar) para comenzar la exportación.

  6. Las exportaciones de tablas pequeñas deberían concluir en cuestión de minutos, pero las tablas que tienen terabytes podrían tardar más de una hora.

Paso 2: solicitar la importación de una tabla desde Amazon S3

  1. Inicie sesión en la consola de administración de AWS y abra la consola de DynamoDB.

  2. En el panel de navegación del lado izquierdo de la consola, elija Import from S3 (Importar desde S3).

  3. En la página que aparece, seleccione Import from S3 (Importar desde S3).

  4. Introduzca la URL de origen de Amazon S3. También puede encontrarla utilizando el botón Buscar S3: s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/.

  5. Especifique si es S3 bucket owner (Propietario del bucket de S3).

  6. En Compresión de archivos de importación, seleccione GZIP para que coincida con la de la exportación.

  7. En Formato de archivo de importación, seleccione DynamoDB JSON para que coincida con el de la exportación.

  8. Seleccione el botón Siguiente y elija las opciones de la nueva tabla que se creará para almacenar sus datos.

  9. Vuelva a seleccionar Next (Siguiente) para revisar las opciones de importación y, a continuación, haga clic en Import (Importar) para iniciar la tarea de importación. Verá su nueva tabla en la lista de Tablas con el estado Creando. En este momento no se puede acceder a la tabla.

  10. Una vez completada la importación, el estado se mostrará como Active y podrá empezar a utilizar la tabla.

  11. Las importaciones pequeñas deberían terminar en cuestión de minutos, pero las tablas que tienen terabytes podrían tardar más de una hora.

Mantenimiento de las tablas sincronizadas durante la migración

Si puede pausar las operaciones de escritura en la tabla de origen durante la migración, el origen y la salida deberían coincidir exactamente después de la migración. Si no puede pausar las operaciones de escritura, lo normal es que la tabla de destino se quede un poco por detrás de la de origen tras la migración. Para poner al día la tabla de origen, puede utilizar flujos (DynamoDB Streams o Kinesis Data Streams para DynamoDB) para reproducir las escrituras que se produjeron en la tabla de origen desde la copia de seguridad o la exportación.

Debería empezar leyendo los registros de flujo antes de la fecha y hora en que exportó la tabla de origen a S3. Por ejemplo, si la exportación a S3 se produjo a las 14:00 horas y la importación a la tabla de destino concluyó a las 23:00 horas, deberá iniciar la lectura del flujo de DynamoDB a las 13:58 horas. La tabla de opciones de flujo para la captura de datos de cambios resume las características de cada modelo de flujo.

El uso de DynamoDB Streams con Lambda ofrece un enfoque simplificado para sincronizar los datos entre las tablas de DynamoDB de origen y destino. Puede utilizar una función de Lambda para reproducir cada escritura de la tabla de destino.

nota

Los elementos se mantienen en DynamoDB Streams durante 24 horas, por lo que debe planificar la realización de su copia de seguridad y restauración o la exportación e importación dentro de ese periodo de tiempo.