Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Demande d'exportation de table dans DynamoDB

Mode de mise au point
Demande d'exportation de table dans DynamoDB - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les exportations de tables DynamoDB vous permettent d'exporter les données des tables vers un compartiment Amazon S3, ce qui vous permet d'effectuer des analyses et des requêtes complexes sur vos données à l'aide AWS d'autres services tels qu'Athena, AWS Glue Amazon SageMaker AI, Amazon et. EMR AWS Lake Formation Vous pouvez demander une exportation de table à l'aide du AWS Management Console AWS CLI, du ou de DynamoDBAPI.

Note

Le demandeur paie les buckets Amazon S3 ne sont pas pris en charge.

DynamoDB prend en charge à la fois l'exportation complète et l'exportation incrémentielle :

  • Avec les exportations complètes, vous pouvez exporter un instantané complet de votre table à tout moment pendant la fenêtre de point-in-time restauration (PITR) vers votre compartiment Amazon S3.

  • Grâce aux exportations incrémentielles, vous pouvez exporter les données de votre table DynamoDB qui ont été modifiées, mises à jour ou supprimées entre une période spécifiée, dans PITR votre fenêtre, vers votre compartiment Amazon S3.

Prérequis

Activation d’PITR

Pour utiliser la fonctionnalité d'exportation vers S3, vous devez l'activer PITR sur votre table. Pour plus de détails sur la façon d'activerPITR, consultez la section P oint-in-time recovery. Si vous demandez l'exportation d'une table qui n'est pas PITR activée, votre demande échouera avec un message d'exception : « Une erreur s'est produite (PointInTimeRecoveryUnavailableException) lors de l'appel de l'ExportTableToPointInTimeopération : la restauration instantanée n'est pas activée pour la table 'my-dynamodb-table».

Configuration des autorisations S3

Vous pouvez exporter vos données de table vers n'importe quel compartiment Amazon S3 dans lequel vous êtes autorisé à écrire. Il n'est pas nécessaire que le compartiment de destination se trouve dans la même AWS région ou qu'il ait le même propriétaire que le propriétaire de la table source. Votre politique AWS Identity and Access Management (IAM) doit vous permettre d'effectuer des actions S3 (s3:AbortMultipartUpload,s3:PutObject, ets3:PutObjectAcl) et l'action d'exportation DynamoDB (). dynamodb:ExportTableToPointInTime Voici un exemple de politique qui accordera à vos utilisateurs les autorisations nécessaires pour effectuer des exportations vers un compartiment S3.

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

Si vous devez écrire dans un compartiment Amazon S3 qui se trouve dans un autre compte ou si vous n'êtes pas autorisé à écrire, le propriétaire du compartiment Amazon S3 doit ajouter une politique de compartiment pour vous permettre d'exporter depuis DynamoDB vers ce compartiment. Voici un exemple de politique concernant le compartiment Amazon S3 cible.

{ "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:::amzn-s3-demo-bucket/*" } ] }

La révocation de ces autorisations pendant une exportation entraînera la création de fichiers partiels.

Note

Si la table ou le compartiment vers lequel vous exportez est chiffré à l'aide de clés gérées par le client, les politiques relatives à cette KMS clé doivent autoriser DynamoDB à l'utiliser. Cette autorisation est accordée par le biais de l'IAMutilisateur/rôle qui déclenche la tâche d'exportation. Pour plus d'informations sur le chiffrement, y compris les meilleures pratiques, consultez Comment DynamoDB AWS KMS utilise et Utilisation d'une clé personnalisée. KMS

Demande d'exportation à l'aide de l' AWS Management Console

L'exemple suivant montre comment utiliser la console DynamoDB pour exporter une table existante nommée MusicCollection.

Note

Cette procédure part du principe que vous avez activé point-in-time la restauration. Pour l'activer pour la MusicCollection table, dans l'onglet Vue d'ensemble de la table, dans la section Détails de la table, choisissez Activer pour la oint-in-timerestauration P.

Pour demander une exportation de table
  1. Connectez-vous à la console DynamoDB AWS Management Console et ouvrez-la à l'adresse. https://console.aws.amazon.com/dynamodb/

  2. Dans le panneau de navigation sur le côté gauche de la console, choisissez Exportations vers S3.

  3. Sélectionnez le bouton Exporter vers S3.

  4. Choisissez une table source et un compartiment S3 de destination. Si le compartiment de destination appartient à votre compte, vous pouvez utiliser le bouton Browse S3 (Parcourir S3) pour le trouver. Sinon, entrez le nom URL du compartiment à l'aide s3://bucketname/prefix format. du prefix dossier facultatif pour vous aider à organiser votre compartiment de destination.

  5. Choisissez Exportation complète ou Exportation incrémentielle. Une exportation complète sort l'instantané complet de votre table telle qu'elle était à l'instant spécifié. Une exportation incrémentielle sort les modifications apportées à votre table au cours de la période d'exportation spécifiée. Votre sortie est compactée afin de ne contenir que l'état final de l'article à partir de la période d'exportation. L'élément n'apparaît qu'une seule fois dans l'exportation, même s'il a été mis à jour plusieurs fois au cours de la même période d'exportation.

    Full export
    1. Sélectionnez l'instant précis à partir duquel vous voulez que l'instantané complet de la table soit exporté. Cela peut se produire à n'importe quel moment dans la PITR fenêtre. Vous pouvez également sélectionner Heure actuelle pour exporter l'instantané le plus récent.

    2. Pour le format de fichier exporté, choisissez entre JSONDynamoDB et Amazon Ion. Par défaut, votre table sera exportée au format DynamoDB JSON à partir de l'heure de restauration la plus récente dans la fenêtre de restauration instantanée et chiffrée à l'aide d'une clé Amazon S3 (-S3). SSE Vous pouvez modifier ces paramètres d'exportation si nécessaire.

      Note

      Si vous choisissez de chiffrer votre exportation à l'aide d'une clé protégée par AWS Key Management Service (AWS KMS), la clé doit se trouver dans la même région que le compartiment S3 de destination.

    Incremental export
    1. Sélectionnez la Période d'exportation pour laquelle vous souhaitez exporter les données incrémentielles. Choisissez une heure de début dans la PITR fenêtre. La durée de la période d'exportation doit être au minimum de 15 minutes et ne pas dépasser 24 heures. L'heure de début de la période d'exportation est incluse et l'heure de fin est exclue.

    2. Choisissez entre le Mode absolu et le Mode relatif.

      1. Le Mode absolu exporte les données incrémentielles correspondant à la période que vous spécifiez.

      2. Le Mode relatif exporte les données incrémentielles pour une période d'exportation relative à la date de soumission de votre tâche d'exportation.

    3. Pour le format de fichier exporté, choisissez entre JSONDynamoDB et Amazon Ion. Par défaut, votre table sera exportée au format DynamoDB JSON à partir de l'heure de restauration la plus récente dans la fenêtre de restauration instantanée et chiffrée à l'aide d'une clé Amazon S3 (-S3). SSE Vous pouvez modifier ces paramètres d'exportation si nécessaire.

      Note

      Si vous choisissez de chiffrer votre exportation à l'aide d'une clé protégée par AWS Key Management Service (AWS KMS), la clé doit se trouver dans la même région que le compartiment S3 de destination.

    4. Pour Type de vue d'exportation, sélectionnez Ancienne et nouvelle images ou Nouvelles images uniquement. Nouvelle image indique l'état le plus récent de l'élément. Ancienne image indique l'état de l'élément juste avant les « date et heure de début » spécifiées. Le paramètre par défaut est Ancienne et nouvelle images. Pour en savoir plus sur les nouvelles et anciennes images, consultez Sortie d'une exportation incrémentielle.

    1. Sélectionnez l'instant précis à partir duquel vous voulez que l'instantané complet de la table soit exporté. Cela peut se produire à n'importe quel moment dans la PITR fenêtre. Vous pouvez également sélectionner Heure actuelle pour exporter l'instantané le plus récent.

    2. Pour le format de fichier exporté, choisissez entre JSONDynamoDB et Amazon Ion. Par défaut, votre table sera exportée au format DynamoDB JSON à partir de l'heure de restauration la plus récente dans la fenêtre de restauration instantanée et chiffrée à l'aide d'une clé Amazon S3 (-S3). SSE Vous pouvez modifier ces paramètres d'exportation si nécessaire.

      Note

      Si vous choisissez de chiffrer votre exportation à l'aide d'une clé protégée par AWS Key Management Service (AWS KMS), la clé doit se trouver dans la même région que le compartiment S3 de destination.

  6. Choisissez Exporter pour commencer.

Les données exportées ne sont pas cohérentes du point de vue des transactions. Vos opérations de transaction peuvent être réparties entre deux sorties d'exportation. Un sous-ensemble d'articles peut être modifié par une opération de transaction reflétée dans l'exportation, tandis qu'un autre sous-ensemble de modifications dans la même transaction n'est pas reflété dans la même demande d'exportation. Cependant, les exportations sont cohérentes au final. Si une transaction est annulée lors d'une exportation, vous aurez le reste de la transaction lors de votre prochaine exportation contiguë, sans doublons. Les périodes de temps utilisées pour les exportations reposent sur une horloge système interne et peuvent varier d'une minute par rapport à l'horloge locale de votre application.

Pour en savoir plus sur les exportations passées, consultez le AWS Management Console

Vous pouvez trouver des informations sur les tâches d'exportation que vous avez exécutées dans le passé en choisissant la section Exports vers S3 dans la barre latérale de navigation. Cette section contient la liste de toutes les exportations que vous avez créées au cours des 90 derniers jours. Sélectionnez l'une ARN des tâches répertoriées dans l'onglet Exportations pour récupérer les informations relatives à cette exportation, y compris les paramètres de configuration avancés que vous avez choisis. Notez que, bien que les métadonnées de tâche d'exportation expirent après 90 jours et que les tâches plus anciennes ne figurent plus dans cette liste, les objets restent dans votre compartiment S3 aussi longtemps que leurs politiques de compartiment le permettent. DynamoDB ne supprime jamais aucun des objets qu'il crée dans votre compartiment S3 lors d'une exportation.

Demande d'exportation à l'aide de l' AWS CLI

L'exemple suivant montre comment utiliser le AWS CLI pour exporter une table existante nommée MusicCollection vers un compartiment S3 appeléddb-export-musiccollection.

Note

Cette procédure part du principe que vous avez activé point-in-time la restauration. Pour l'activer pour la table MusicCollection, exécutez la commande suivante.

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

La commande suivante exporte MusicCollection vers un compartiment S3 nommé ddb-export-musiccollection-9012345678 en y ajoutant le préfixe 2020-Nov. Les données des tables seront exportées au format JSON DynamoDB à partir d'un moment précis pendant la période de récupération et chiffrées à l'aide d'une clé SSE Amazon S3 (-S3).

Note

Si vous demandez une exportation de table entre comptes, veillez à inclure l'option --s3-bucket-owner.

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

La commande suivante effectue une exportation incrémentielle en fournissant un nouveau --export-type et une --incremental-export-specification. Remplacez ce qui apparaît en italique par vos propres valeurs. Les temps sont exprimés en secondes depuis l'epoch.

aws dynamodb export-table-to-point-in-time \ --table-arn arn:aws:dynamodb:REGION:ACCOUNT:table/TABLENAME \ --s3-bucket BUCKET --s3-prefix PREFIX \ --incremental-export-specification ExportFromTime=1693569600,ExportToTime=1693656000,ExportViewType=NEW_AND_OLD_IMAGES \ --export-type INCREMENTAL_EXPORT

La commande suivante exporte MusicCollection vers un compartiment S3 nommé ddb-export-musiccollection-9012345678 en y ajoutant le préfixe 2020-Nov. Les données des tables seront exportées au format JSON DynamoDB à partir d'un moment précis pendant la période de récupération et chiffrées à l'aide d'une clé SSE Amazon S3 (-S3).

Note

Si vous demandez une exportation de table entre comptes, veillez à inclure l'option --s3-bucket-owner.

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

Si vous choisissez de chiffrer votre exportation à l'aide d'une clé protégée par AWS Key Management Service (AWS KMS), la clé doit se trouver dans la même région que le compartiment S3 de destination.

Pour en savoir plus sur les exportations passées, consultez le AWS CLI

Vous pouvez trouver des informations sur des demandes d'exportation que vous avez exécutées antérieurement à l'aide de la commande list-exports. Cette commande envoie la liste de toutes les exportations que vous avez effectuées au cours des 90 derniers jours. Notez que, bien que les métadonnées de tâche d'exportation expirent après 90 jours et que la commande list-exports ne renvoie plus les tâches plus anciennes, les objets restent dans votre compartiment S3 aussi longtemps que leurs politiques de compartiment le permettent. DynamoDB ne supprime jamais aucun des objets qu'il crée dans votre compartiment S3 lors d'une exportation.

Les exportations ont le statut PENDING tant qu'elles n'ont pas abouti ou échoué. En cas de réussite, le statut passe àCOMPLETED. En cas d'échec, le statut passe FAILED à « failure_message et failure_reason ».

Dans l'exemple suivant, nous utilisons le paramètre factultatif table-arn pour répertorier uniquement les exportations d'une table spécifique.

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

Pour extraire des informations détaillées sur une tâche d'exportation spécifique, dont ses paramètres de configuration avancés, utilisez la commande describe-export.

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

Demande d'exportation à l'aide du AWS SDK

Utilisez ces extraits de code pour demander une exportation de table en utilisant le code AWS SDK de votre choix.

Python

Exportation complète

import boto3 from datetime import datetime # remove endpoint_url for real use client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/export_table_to_point_in_time.html client.export_table_to_point_in_time( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', ExportTime=datetime(2023, 9, 20, 12, 0, 0), S3Bucket='bucket', S3Prefix='prefix', S3SseAlgorithm='AES256', ExportFormat='DYNAMODB_JSON' )

Exportation incrémentielle

import boto3 from datetime import datetime client = boto3.client('dynamodb') client.export_table_to_point_in_time( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', IncrementalExportSpecification={ 'ExportFromTime': datetime(2023, 9, 20, 12, 0, 0), 'ExportToTime': datetime(2023, 9, 20, 13, 0, 0), 'ExportViewType': 'NEW_AND_OLD_IMAGES' }, ExportType='INCREMENTAL_EXPORT', S3Bucket='bucket', S3Prefix='prefix', S3SseAlgorithm='AES256', ExportFormat='DYNAMODB_JSON' )

Exportation complète

import boto3 from datetime import datetime # remove endpoint_url for real use client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/export_table_to_point_in_time.html client.export_table_to_point_in_time( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', ExportTime=datetime(2023, 9, 20, 12, 0, 0), S3Bucket='bucket', S3Prefix='prefix', S3SseAlgorithm='AES256', ExportFormat='DYNAMODB_JSON' )

Exportation incrémentielle

import boto3 from datetime import datetime client = boto3.client('dynamodb') client.export_table_to_point_in_time( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', IncrementalExportSpecification={ 'ExportFromTime': datetime(2023, 9, 20, 12, 0, 0), 'ExportToTime': datetime(2023, 9, 20, 13, 0, 0), 'ExportViewType': 'NEW_AND_OLD_IMAGES' }, ExportType='INCREMENTAL_EXPORT', S3Bucket='bucket', S3Prefix='prefix', S3SseAlgorithm='AES256', ExportFormat='DYNAMODB_JSON' )

Obtenir des informations sur les exportations passées à l'aide du AWS SDK

Utilisez ces extraits de code pour obtenir des informations sur les anciennes exportations de tables en utilisant le code AWS SDK de votre choix.

Python

List

import boto3 client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/list_exports.html print( client.list_exports( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', ) )

Décrivez

import boto3 client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/describe_export.html print( client.describe_export( ExportArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE/export/01695353076000-06e2188f', )['ExportDescription'] )

List

import boto3 client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/list_exports.html print( client.list_exports( TableArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE', ) )

Décrivez

import boto3 client = boto3.client('dynamodb') # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/describe_export.html print( client.describe_export( ExportArn='arn:aws:dynamodb:us-east-1:0123456789:table/TABLE/export/01695353076000-06e2188f', )['ExportDescription'] )

Rubrique suivante :

Format d'exportation

Rubrique précédente :

Exporter vers Amazon S3
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.