Demande d'importation 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.

Demande d'importation de table dans DynamoDB

L'importation DynamoDB vous permet d'importer depuis un compartiment Amazon S3 versune nouvelle table DynamoDB. Vous pouvez demander une importation de table à l'aide de la console DynamoDB, CLIdu CloudFormationou de DynamoDB. API

Si vous souhaitez utiliser AWS CLI, vous devez d'abord le configurer. Pour de plus amples informations, veuillez consulter Accès à DynamoDB.

Note
  • La fonction Importer une table interagit avec plusieurs AWS Des services tels qu'Amazon S3 et CloudWatch. Avant de commencer une importation, assurez-vous que l'utilisateur ou le rôle qui invoque l'importation APIs est autorisé à accéder à tous les services et ressources dont dépend la fonctionnalité.

  • Ne modifiez pas les objets Amazon S3 pendant que l'importation est en cours, car cela peut entraîner l'échec ou l'annulation de l'opération.

Pour plus d'informations sur les erreurs et le dépannage, consultez Quotas de format d'importation et validation

Configuration des IAM autorisations

Vous pouvez importer des données à partir d'un compartiment Amazon S3 dans lequel vous êtes autorisé à lire. Le compartiment de destination ne doit pas nécessairement se trouver dans la même région ou avoir le même propriétaire que la table source. Votre AWS Identity and Access Management (IAM) doit inclure les actions pertinentes sur le compartiment Amazon S3 source, ainsi que CloudWatch les autorisations requises pour fournir des informations de débogage. Un exemple de stratégie est illustré ci-dessous.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBImportAction", "Effect": "Allow", "Action": [ "dynamodb:ImportTable", "dynamodb:DescribeImport" ], "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table*" }, { "Sid": "AllowS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket/*", "arn:aws:s3:::your-bucket" ] }, { "Sid": "AllowCloudwatchAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws-dynamodb/*" }, { "Sid": "AllowDynamoDBListImports", "Effect": "Allow", "Action": "dynamodb:ListImports", "Resource": "*" } ] }

Autorisations Amazon S3

Lorsque vous lancez une importation sur une source de compartiment Amazon S3 appartenant à un autre compte, assurez-vous que le rôle ou l'utilisateur a accès aux objets Amazon S3. Vous pouvez vérifier cela en exécutant la commande GetObject d'Amazon S3 et en utilisant les informations d'identification. Lorsque vous utilisez leAPI, le paramètre du propriétaire du compartiment Amazon S3 prend par défaut l'ID de compte de l'utilisateur actuel. Pour les importations entre comptes, assurez-vous que ce paramètre est correctement renseigné avec l'ID de compte du propriétaire du compartiment. Le code suivant est un exemple de politique de compartiment Amazon S3 dans le compte source.

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

AWS Key Management Service

Lors de la création de la nouvelle table à importer, si vous sélectionnez une clé de chiffrement au repos qui n'appartient pas à DynamoDB, vous devez fournir AWS KMS autorisations requises pour exploiter une table DynamoDB chiffrée à l'aide de clés gérées par le client. Pour plus d'informations, voir Autoriser l'utilisation de votre AWS KMS clé. Si les objets Amazon S3 sont chiffrés avec un chiffrement côté serveur KMS (SSE-KMS), assurez-vous que le rôle ou l'utilisateur à l'origine de l'importation a accès au déchiffrement à l'aide du AWS KMS clé. Cette fonctionnalité ne prend pas en charge les clés de chiffrement fournies par le client (SSE-C) pour chiffrer les objets Amazon S3.

CloudWatch autorisations

Le rôle ou l'utilisateur qui lance l'importation aura besoin des autorisations de création et de gestion pour le groupe de journaux et les flux de journaux associés à l'importation.

Demande d'importation à l'aide du AWS Management Console

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

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

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

  3. Sur la page qui s'affiche, sélectionnez Import from S3 (Importer depuis S3).

  4. ChoisissezImport from S3 (Importer depuis S3).

  5. Dans Source S3 URL, entrez la source Amazon S3URL.

    Si le compartiment source vous appartient, choisissez Browse S3 pour le rechercher. Vous pouvez également saisir le compartiment URL au format suivant —s3://bucket/prefix. prefixIl s'agit d'un préfixe de clé Amazon S3. Il s'agit soit du nom de l'objet Amazon S3 que vous souhaitez importer, soit du préfixe de clé partagé par tous les objets Amazon S3 que vous souhaitez importer.

    Note

    Vous ne pouvez pas utiliser le même préfixe que votre demande d'exportation DynamoDB. La fonction d'exportation crée une structure de dossiers et des fichiers manifestes pour toutes les exportations. Si vous utilisez le même chemin Amazon S3, une erreur se produira.

    Dirigez plutôt l'importation vers le dossier qui contient les données de cette exportation spécifique. Dans ce cas, le format du chemin correct seras3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/, où XXXXXXXX-XXXXXX est l'ID d'exportation. Vous pouvez trouver l'ID d'exportation dans l'exportationARN, qui a le format suivant —arn:aws:dynamodb:<Region>:<AccountID>:table/<TableName>/export/<XXXXXXXX-XXXXXX>. Par exemple, arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4.

  6. Spécifiez si vou s êtes lePropriétaire du compartiment S3. Si le compartiment source appartient à un autre compte, sélectionnez A different AWS compte. Ensuite, entrez l'ID de compte du propriétaire du compartiment.

  7. Sous Compression de fichier d'importation, sélectionnez Aucune compression GZIPou ZSTDle cas échéant.

  8. Sélectionnez le format de fichier d'importation approprié. Les options sont JSONDynamoDB, Amazon Ion ou. CSV Si vous sélectionnez CSV, vous aurez deux options supplémentaires : CSVen-tête et caractère CSV délimiteur.

    Pour l'CSVen-tête, choisissez si l'en-tête doit être extrait de la première ligne du fichier ou s'il doit être personnalisé. Si vous sélectionnez Customize your headers (Personnalisez vos en-têtes), vous pouvez spécifier les valeurs d'en-tête que vous souhaitez importer. CSVLes en-têtes spécifiés par cette méthode distinguent les majuscules et minuscules et devraient contenir les clés de la table cible.

    Pour le caractère CSV délimiteur, vous définissez le caractère qui séparera les éléments. La virgule est sélectionnée par défaut. Si vous sélectionnez Custom delimiter character (Séparateur personnalisé), le séparateur doit correspondre au modèle regex : [,;:|\t ].

  9. Sélectionnez le bouton Next (Suivant), puis sélectionnez les options de la nouvelle table qui sera créée pour stocker vos données.

    Note

    La clé primaire et la clé de tri doivent correspondre aux attributs du fichier, faute de quoi l'importation échouera. Les attributs sont sensibles à la casse.

  10. Sélectionnez à nouveau Next (Suivant) pour vérifier vos options d'importation, puis cliquez sur Import (Importer) pour commencer la tâche d'importation. Vous verrez d'abord votre nouvelle table répertoriée dans les Tables avec le statut Creating (Création en cours). Pour le moment, la table n'est pas accessible.

  11. Une fois l'importation terminée, le statut indique Active et vous pouvez commencer à utiliser la table.

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

Vous pouvez trouver des informations sur les tâches d'importation que vous avez exécutées dans le passé en cliquant sur Import from S3 (Importer depuis S3) dans la barre latérale de navigation, puis en sélectionnant l'onglet Imports (Importations). Le panneau d'importation contient la liste de toutes les importations que vous avez effectuées au cours des 90 derniers jours. La sélection ARN d'une tâche répertoriée dans l'onglet Importations permet de récupérer les informations relatives à cette importation, y compris les paramètres de configuration avancés que vous avez choisis.

Demande d'importation à l'aide du AWS CLI

L'exemple suivant importe des données CSV formatées depuis un compartiment S3 appelé bucket avec un préfixe de préfixe vers une nouvelle table appelée target-table.

aws dynamodb import-table --s3-bucket-source S3Bucket=bucket,S3KeyPrefix=prefix \ --input-format CSV --table-creation-parameters '{"TableName":"target-table","KeySchema": \ [{"AttributeName":"hk","KeyType":"HASH"}],"AttributeDefinitions":[{"AttributeName":"hk","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST"}' \ --input-format-options '{"Csv": {"HeaderList": ["hk", "title", "artist", "year_of_release"], "Delimiter": ";"}}'
Note

Si vous choisissez de chiffrer votre importation à 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 Amazon S3 de destination.

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

Vous pouvez trouver des informations sur des tâches d'importation que vous avez exécutées dans le passé à l'aide de la commande list-imports. Cette commande envoie la liste de toutes les importations que vous avez effectuées au cours des 90 derniers jours. Notez que, bien que les métadonnées de tâche d'importation expirent après 90 jours et que les tâches plus anciennes ne figurent plus dans cette liste, DynamoDB ne supprime aucun des objets de votre compartiment Amazon S3 ou de la table créée lors de l'importation.

aws dynamodb list-imports

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

aws dynamodb describe-import \ --import-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/exp