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 l’importation d’une table à l’aide de la console DynamoDB
Si vous souhaitez utiliser l’AWS CLI, vous devez d’abord la configurer. Pour en savoir plus, consultez Accès à DynamoDB.
Note
La fonction Importer la table interagit avec plusieurs services AWS tels qu’Amazon S3 et CloudWatch. Avant de commencer une importation, assurez-vous que l’utilisateur ou le rôle qui appelle les API d’importation dispose des autorisations d’accès à tous les services et ressources dont dépend la fonction.
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
Rubriques
Configuration des autorisations IAM
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 et les autorisations CloudWatch requises pour fournir des informations de débogage. Un exemple de stratégie est illustré ci-dessous.
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. Lors de l’utilisation de l’API, le paramètre propriétaire du compartiment Amazon S3 est défini par défaut sur 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.
AWS Key Management Service
Lors de la création de la nouvelle table pour l’importation, si vous sélectionnez une clé de chiffrement au repos qui n’appartient pas à DynamoDB, vous devez fournir les autorisations AWS KMS requises pour faire fonctionner une table DynamoDB chiffrée avec des clés gérées par le client. Pour plus d’informations, consultez Autoriser l’utilisation de votre clé AWS KMS. Si les objets Amazon S3 sont chiffrés avec des clés KMS de chiffrement côté serveur (SSE-KMS), assurez-vous que le rôle ou l’utilisateur à l’origine de l’importation a accès au déchiffrement à l’aide de la clé AWS KMS. Cette fonction ne prend pas en charge les objets Amazon S3 chiffrés avec des clés de chiffrement fournies par le client (SSE-C).
Autorisations CloudWatch
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’exportation à l’aide de l’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
Connectez-vous à l’AWS Management Console et ouvrez la console DynamoDB à l’adresse https://console.aws.amazon.com/dynamodb/
. -
Dans le panneau de navigation sur le côté gauche de la console, choisissez Importer depuis S3.
-
Sur la page qui s’affiche, sélectionnez Import from S3 (Importer depuis S3).
-
ChoisissezImport from S3 (Importer depuis S3).
-
Dans URL source S3, saisissez l’URL source d’Amazon S3.
Si le compartiment source vous appartient, choisissez Parcourir S3 pour le rechercher. Vous pouvez également saisir l’URL du compartiment au format suivant :
s3://bucket/prefix. Leprefixest un préfixe de clé Amazon S3. Il s’agit du nom de l’objet Amazon S3 que vous souhaitez importer ou 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 celui de votre demande d’exportation DynamoDB. La fonctionnalité d’exportation crée une structure de dossiers et des fichiers manifestes pour toutes les exportations. Si vous utilisez le même emplacement Amazon S3, une erreur se produit.
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 est
s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/, oùXXXXXXXX-XXXXXXest l’ID d’exportation. Vous pouvez trouver l’ID d’exportation dans l’ARN d’exportation, 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 -
Spécifiez si vou s êtes lePropriétaire du compartiment S3. Si le compartiment source appartient à un compte différent, sélectionnez un autre compte AWS. Ensuite, entrez l’ID de compte du propriétaire du compartiment.
Sous Import file compression (Importer la compression de fichier), sélectionnez No compression (Aucune compression), GZIP ou ZSTD en fonction de vos besoins.
Sélectionnez le format de fichier d’importation approprié. Les options sont JSON DynamoDB, Amazon Ion ou CSV. Si vous sélectionnez CSV, deux options supplémentaires s’offrent à vous : CSV header (En-tête CSV) et CSV delimiter character (Caractère délimiteur CSV).
Pour CSV header (En-tête CSV), 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. Les en-têtes CSV spécifiés par cette méthode respectent la casse et sont censés contenir les clés de la table cible.
Pour CSV delimiter character (Séparateur CSV), 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 ].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.
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.
Une fois l’importation terminée, le statut indique Active et vous pouvez commencer à utiliser la table.
Obtenir des détails sur des exportations passées dans la 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 de l’ARN d’une tâche répertoriée sous l’onglet Imports (Importations) a pour effet d’afficher les informations relatives à cette importation, dont les paramètres de configuration avancés que vous avez choisis.
Demande d’exportation à l’aide de l’AWS CLI
L’exemple suivant importe des données au format CSV d’un compartiment S3 appelé bucket avec un préfixe dans 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), celle-ci doit se trouver dans la même région que le compartiment Amazon S3 de destination.
Obtenir des détails sur des importations passées dans la 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