

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
<a name="S3DataImport.Requesting"></a>

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](https://console.aws.amazon.com/), de la [CLI [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)ou de l'API](AccessingDynamoDB.md#Tools.CLI) DynamoDB.](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html)

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

**Note**  
La fonctionnalité Import Table interagit avec plusieurs AWS services différents 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](S3DataImport.Validation.md)

**Topics**
+ [Configuration des autorisations IAM](#DataImport.Requesting.Permissions)
+ [Demande d'importation à l'aide du AWS Management Console](#S3DataImport.Requesting.Console)
+ [Pour en savoir plus sur les importations passées, consultez le AWS Management Console](#S3DataImport.Requesting.Console.Details)
+ [Demande d'importation à l'aide du AWS CLI](#S3DataImport.Requesting.CLI)
+ [Pour en savoir plus sur les importations passées, consultez le AWS CLI](#S3DataImport.Requesting.CLI.Details)

## Configuration des autorisations IAM
<a name="DataImport.Requesting.Permissions"></a>

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 Gestion des identités et des accès AWS (IAM) doit inclure les actions pertinentes sur le compartiment Amazon S3 source, ainsi que les CloudWatch autorisations requises pour fournir des informations de débogage. Un exemple de stratégie est illustré ci-dessous.

------
#### [ JSON ]

****  

```
{
  "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
<a name="DataImport.Requesting.Permissions.s3"></a>

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.

------
#### [ JSON ]

****  

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

------

### AWS Key Management Service
<a name="DataImport.Requesting.Permissions.kms"></a>

Lorsque vous créez la nouvelle table à importer, si vous sélectionnez une clé de chiffrement au repos qui n'appartient pas à DynamoDB, vous devez fournir les autorisations requises pour exploiter une table DynamoDB chiffrée avec des clés gérées par AWS KMS le client. Pour plus d'informations, voir [Autoriser l'utilisation de votre AWS KMS clé](encryption.usagenotes.html#dynamodb-kms-authz). Si les objets Amazon S3 sont chiffrés avec le chiffrement KMS 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). 

### CloudWatch autorisations
<a name="DataImport.Requesting.Permissions.cw"></a>

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
<a name="S3DataImport.Requesting.Console"></a>

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 à la console DynamoDB AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

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

1. Sur la page qui s’affiche, sélectionnez **Import from S3 (Importer depuis S3)**.

1. Choisissez**Import from S3 (Importer depuis S3)**.

1. 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`. Le `prefix` est 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-XXXXXX` est 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`.

1. Spécifiez si vou s êtes le**Propriétaire du compartiment S3**. Si le compartiment source appartient à un autre compte, sélectionnez **Un AWS compte différent**. Ensuite, entrez l’ID de compte du propriétaire du compartiment.

1. Sous **Import file compression (Importer la compression de fichier)**, sélectionnez **No compression (Aucune compression)**, **GZIP** ou **ZSTD** en fonction de vos besoins.

1. 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 ]`.

1. 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.

1. 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.

1. 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
<a name="S3DataImport.Requesting.Console.Details"></a>

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'importation à l'aide du AWS CLI
<a name="S3DataImport.Requesting.CLI"></a>

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), 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
<a name="S3DataImport.Requesting.CLI.Details"></a>

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
```