Solicitar una exportación de tabla en DynamoDB - Amazon DynamoDB

Solicitar una exportación de tabla en DynamoDB

La exportación de una tabla de DynamoDB le permite exportar datos de la tabla a un bucket de Amazon S3, habilitándolo a realizar análisis y consultas complejas sobre sus datos mediante otros servicios de AWS como Athena, AWS Glue, y Lake Formation. Puede solicitar la exportación de una tabla de DynamoDB mediante la AWS Management Console, la AWS CLI o la API de DynamoDB.

Si quiere utilizar la AWS CLI, primero tendrá que configurarla. Para obtener más información, consulte Acceso a DynamoDB.

Configuración y permisos de Amazon S3

Puede exportar los datos de la tabla a cualquier bucket de Amazon S3 en el que tenga permiso para escribir. El bucket de destino no tiene por qué estar en la misma región o tener el mismo propietario que la tabla fuente. Su política de AWS Identity and Access Management (IAM) debería permitir las acciones s3:AbortMultipartUpload, s3:PutObject y s3:PutObjectAcl, además del permiso dynamodb:ExportTableToPointInTime, como se muestra en el siguiente ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBExportAction", "Effect": "Allow", "Action": "dynamodb:ExportTableToPointInTime", "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table" }, { "Sid": "AllowWriteToDestinationBucket", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::your-bucket/*" } ] }

El siguiente código es un ejemplo de política de bucket de S3 (en la cuenta de destino).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStatement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*" } ] }

Revocar estos permisos mientras se lleva a cabo una exportación dará como resultado archivos parciales.

Solicitar una exportación mediante la AWS Management Console

En el siguiente ejemplo, se muestra cómo utilizar la consola de DynamoDB para exportar una tabla llamada MusicCollection.

nota

En este procedimiento se presupone que ha habilitado la recuperación a un momento dado. Para habilitar esta función en la tabla MusicCollection, dentro de la tabla, diríjase a la pestaña Overview (Información general) de la sección Table details (Detalles de la tabla) y seleccione la opción Enable (Habilitar) en Point-in-time recovery (Recuperación a un momento dado).

Para solicitar una exportación de tabla

  1. Inicie sesión en la AWS Management Console y abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/.

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

  3. Elija Export to S3 (Exportar a S3).

  4. Elija una tabla de origen y un bucket de S3 de destino. Si el bucket de destino es propiedad de su cuenta, puede utilizar el botón Browse S3 (Examinar S3) para encontrarlo. En caso contrario, ingrese la URL del bucket con el comando s3://bucketname/prefix format.. El prefix es una carpeta opcional para ayudarlo a mantener el bucket de destino organizado.

  5. De forma predeterminada, la tabla se exportará en formato DynamoDB JSON a partir del último tiempo restaurable en la ventana de recuperación a un momento dado y se cifrará con una clave de Amazon S3 (SSE-S3). Si desea cambiar esta configuración, expanda la sección Additional settings (Configuración adicional) de la página e ingrese la configuración de exportación que desee.

    nota

    Si elige cifrar la exportación usando una clave protegida por AWS Key Management Service (AWS KMS), la clave debe estar en la misma región que el bucket de S3 de destino.

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

Obtención de detalles sobre exportaciones pasadas en la AWS Management Console

Puede encontrar información sobre las tareas de exportación que ha ejecutado en el pasado haciendo clic en Streams and exports (Transmisiones y exportaciones) en la barra de navegación lateral y, a continuación, seleccione la pestaña Exports (Exportaciones). Esta pestaña contiene una lista de todas las exportaciones que ha creado en los últimos 90 días. Al seleccionar el ARN de una tarea enumerada en la pestaña Exports (Exportaciones), se recuperará información sobre esa exportación, incluyendo la configuración avanzada que haya elegido. Tenga en cuenta que aunque los metadatos de la tarea de exportación vencen tras 90 días y los trabajos anteriores a eso ya no se encuentran en esta lista, los objetos de su bucket de S3 permanecen siempre que lo permitan las políticas de bucket. DynamoDB nunca elimina ninguno de los objetos que crea en su bucket de S3 durante una exportación.

Solicitar una exportación mediante la AWS CLI

En el siguiente ejemplo se muestra cómo utilizar la AWS CLI para exportar una tabla existente denominada MusicCollection a un bucket de S3 denominado ddb-export-musiccollection.

nota

En este procedimiento se presupone que ha habilitado la recuperación a un momento dado. Para habilitarlo en la tabla MusicCollection, ejecute el siguiente comando.

aws dynamodb update-continuous-backups \ --table-name MusicCollection \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True

El siguiente comando exporta la MusicCollection a un bucket de S3 denominado ddb-export-musiccollection con un prefijo de 2020-Nov. Los datos de la tabla se exportarán en formato DynamoDB JSON de un tiempo específico dentro la ventana de recuperación a un momento dado y se cifrará con una clave de Amazon S3 (SSE-S3).

aws dynamodb export-table-to-point-in-time \ --table-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ --s3-bucket ddb-export-musiccollection \ --s3-prefix 2020-Nov \ --export-format DYNAMODB_JSON \ --export-time 1604632434 \ --s3-sse-algorithm AES256
nota

Si elige cifrar la exportación usando una clave protegida por AWS Key Management Service (AWS KMS), la clave debe estar en la misma región que el bucket de S3 de destino.

Obtención de detalles sobre exportaciones pasadas en la AWS CLI

Puede encontrar información acerca de las tareas de exportación que ha ejecutado en el pasado mediante el comando list-exports. Este comando devuelve una lista de todas las exportaciones que ha creado en los últimos 90 días. Tenga en cuenta que aunque los metadatos de la tarea de exportación vencen después de 90 días y los trabajos anteriores a eso ya no se regresan por medio del comando list-exports, los objetos de su bucket de S3 permanecen siempre que lo permitan las políticas de bucket. DynamoDB nunca elimina ninguno de los objetos que crea en su bucket de S3 durante una exportación.

En el siguiente ejemplo, utilizamos el parámetro opcional table-arn para enumerar solo las exportaciones de una tabla específica.

aws dynamodb list-exports \ --table-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog

Para recuperar información detallada sobre una tarea de exportación específica, incluyendo la configuración avanzada, utilice el comando describe-export.

aws dynamodb describe-export \ --export-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4