

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.

# Importation de données en masse dans Amazon Personalize à l'aide d'une tâche d'importation de jeux de données
<a name="bulk-data-import-step"></a>

Une fois que vous avez formaté vos données d'entrée (voir[Préparation des données de formation pour Amazon Personalize](preparing-training-data.md)) et que vous avez terminé[Création d'un schéma et d'un jeu de données](data-prep-creating-datasets.md), vous êtes prêt à importer vos données en masse à l'aide d'une tâche d'importation de jeux de données. Une *tâche d'importation de jeu* de données est un outil d'importation en masse qui remplit un ensemble de données provenant d'Amazon S3.

 Pour importer des données depuis Amazon S3, vos fichiers CSV doivent se trouver dans un compartiment Amazon S3 et vous devez autoriser Amazon Personalize à accéder à vos ressources Amazon S3 : 
+ Pour plus d'informations sur le chargement de fichiers vers Amazon S3, consultez la section [Chargement de fichiers et de dossiers par glisser-déposer](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) dans le guide de l'utilisateur d'Amazon Simple Storage Service.
+ Pour plus d'informations sur la façon d'autoriser Amazon Personalize à accéder à vos fichiers dans Amazon S3, consultez[Permettre à Amazon Personalize d'accéder aux ressources Amazon S3](granting-personalize-s3-access.md).

   Si vous utilisez AWS Key Management Service (AWS KMS) pour le chiffrement, vous devez autoriser Amazon Personalize et votre rôle de service Amazon Personalize IAM à utiliser votre clé. Pour de plus amples informations, veuillez consulter [Autoriser Amazon Personalize à utiliser votre AWS KMS clé](granting-personalize-key-access.md).

Vous pouvez créer une tâche d'importation de jeux de données à l'aide de la console Amazon Personalize, AWS Command Line Interface (AWS CLI) ou AWS SDKs. Si vous avez déjà créé une tâche d'importation de jeu de données pour un ensemble de données, vous pouvez utiliser une nouvelle tâche d'importation de jeu de données pour ajouter ou remplacer les données en bloc existantes. Pour de plus amples informations, veuillez consulter [Mise à jour des données dans les ensembles de données après l'entraînement](updating-datasets.md). 

Si vous importez un article, un utilisateur ou une action avec le même identifiant qu'un enregistrement figurant déjà dans votre ensemble de données, Amazon Personalize le remplace par le nouvel enregistrement. Si vous enregistrez deux événements d'interaction entre un article ou une action avec exactement le même horodatage et les mêmes propriétés, Amazon Personalize ne conserve qu'un seul des événements.

 Après avoir importé vos données, vous êtes prêt à créer des recommandations de domaines (pour les groupes de jeux de données de domaine) ou des ressources personnalisées (pour les groupes de données personnalisés) afin d'entraîner un modèle sur vos données. Vous utilisez ces ressources pour générer des recommandations. Pour plus d’informations, consultez [Recommandeurs de domaines dans Amazon Personalize](creating-recommenders.md) ou [Ressources personnalisées pour la formation et le déploiement des modèles Amazon Personalize](create-custom-resources.md). 



**Topics**
+ [Modes d'importation](#bulk-import-modes)
+ [Création d'une tâche d'importation de jeux de données (console)](#bulk-data-import-console)
+ [Création d'une tâche d'importation de jeux de données (AWS CLI)](#bulk-data-import-cli)
+ [Création d'une tâche d'importation de jeux de données (AWS SDKs)](#python-import-ex)

## Modes d'importation
<a name="bulk-import-modes"></a>

Si vous avez déjà créé une tâche d'importation pour l'ensemble de données, vous pouvez configurer la manière dont Amazon Personalize ajoute vos nouveaux enregistrements. Pour ce faire, vous devez spécifier un mode d'importation pour votre tâche d'importation de jeux de données. Si vous n'avez pas importé d'enregistrements groupés, le champ **Mode d'importation** n'est pas disponible dans la console et vous ne pouvez le spécifier que `FULL` dans le cadre du fonctionnement de l'`CreateDatasetImportJob`API. Par défaut, il s'agit d'un remplacement complet.
+ Pour remplacer toutes les données en masse existantes dans votre ensemble de données, choisissez **Remplacer les données existantes** dans la console Amazon Personalize ou spécifiez-les `FULL` dans l'opération [CreateDatasetImportJob](API_CreateDatasetImportJob.md) d'API. Cela ne remplace pas les données que vous avez importées individuellement, y compris les événements enregistrés en temps réel.
+ Pour ajouter les enregistrements aux données existantes de votre ensemble de données, choisissez **Ajouter aux données existantes** ou spécifiez-les `INCREMENTAL` dans l'opération `CreateDatasetImportJob` d'API. Amazon Personalize remplace tout enregistrement portant le même identifiant par le nouveau.
**Note**  
Pour ajouter des données à un jeu de données d'interactions d'éléments ou à un jeu de données d'interactions d'action avec une tâche d'importation de jeu de données, vous devez disposer d'au moins 1 000 nouveaux enregistrements d'interactions entre éléments ou d'interactions d'action.

## Création d'une tâche d'importation de jeux de données (console)
<a name="bulk-data-import-console"></a>

**Important**  
Par défaut, une tâche d'importation de jeu de données remplace toutes les données existantes du jeu de données que vous avez importé en bloc. Si vous avez déjà importé des données en masse, vous pouvez ajouter des données en modifiant le [mode d'importation](#bulk-import-modes) de la tâche.

 Pour importer des enregistrements en masse dans un ensemble de données à l'aide de la console Amazon Personalize, créez une tâche d'importation d'ensemble de données avec un nom, le rôle de service IAM et l'emplacement de vos données.

Si vous venez de créer votre jeu de données dans[Création d'un schéma et d'un jeu de données](data-prep-creating-datasets.md), passez à l'étape 5.

**Pour importer des enregistrements en bloc (console)**

1. Ouvrez la console Amazon Personalize [https://console.aws.amazon.com/personalize/chez](https://console.aws.amazon.com/personalize/home) vous et connectez-vous à votre compte.

1.  Sur la page **Groupes de jeux de données**, choisissez votre groupe de jeux de données. L'**aperçu** du groupe de jeux de données s'affiche.

1. Dans le volet de navigation, choisissez **Datasets** et choisissez le jeu de données dans lequel vous souhaitez importer des données en masse.

1. Dans **Tâches d'importation de jeux de données**, choisissez **Créer une tâche d'importation de jeu** de données.

1. S'il s'agit de votre première tâche d'importation de jeux de **données, dans Source d'importation** de données, sélectionnez **Importer des données depuis S3**.

1. Pour le **nom de la tâche d'importation du jeu** de données, spécifiez un nom pour votre tâche d'importation.

1. Si vous avez déjà importé des données en masse, dans **Mode d'importation**, choisissez le mode de mise à jour du jeu de données. Choisissez **Remplacer les données existantes** ou **Ajouter aux données existantes**. données. Cette option n'apparaît pas s'il s'agit de votre première tâche pour l'ensemble de données. Pour de plus amples informations, veuillez consulter [Mise à jour des données dans les ensembles de données après l'entraînement](updating-datasets.md).

1. Dans **Source d'importation des données**, pour **Emplacement des données**, spécifiez où votre fichier de données est stocké dans Amazon S3. Utilisez la syntaxe suivante :

   **s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>**

   Si vos fichiers CSV se trouvent dans un dossier de votre compartiment Amazon S3 et que vous souhaitez charger plusieurs fichiers CSV dans un ensemble de données avec une seule tâche d'importation d'ensemble de données, vous pouvez spécifier le chemin d'accès au dossier. Amazon Personalize utilise uniquement les fichiers du premier niveau de votre dossier, aucune donnée n'est utilisée dans aucun sous-dossier. Utilisez la syntaxe suivante avec un `/` après le nom du dossier :

   **s3:/amzn-s3-demo-bucket/<folder path>/**

1. Dans le **rôle IAM**, choisissez de créer un nouveau rôle ou d'utiliser un rôle existant. Si vous avez rempli les conditions requises, choisissez **Utiliser un rôle de service existant** et spécifiez le rôle que vous avez créé dans[Création d'un rôle IAM pour Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). 

1. Si vous avez créé une attribution de métrique et que vous souhaitez publier des métriques liées à cette tâche sur Amazon S3, dans **Publier les métriques d'événements sur S3**, choisissez **Publier les métriques pour cette tâche d'importation**. 

   Si vous n'en avez pas créé une et que vous souhaitez publier des statistiques pour cette tâche, choisissez **Create metric attribution** pour en créer une nouvelle dans un autre onglet. Après avoir créé l'attribution des métriques, vous pouvez revenir à cet écran et terminer la création de la tâche d'importation. 

   Pour plus d'informations sur les attributions métriques, voir[Mesurer l'impact des recommandations d'Amazon Personalize](measuring-recommendation-impact.md).

1. Pour les **balises**, ajoutez éventuellement des balises. Pour plus d'informations sur le balisage des ressources Amazon Personalize, consultez[Marquer les ressources Amazon Personalize](tagging-resources.md).

1. Choisissez **Start import (Démarrer l'importation**). La tâche d'importation des données démarre et la page **Dashboard Overview (Présentation du tableau de bord)** s'affiche. L'importation d'ensembles de données est terminée quand le statut ACTIVE (ACTIF) apparaît. Après avoir importé des données dans un ensemble de données Amazon Personalize, vous pouvez [les analyser](analyzing-data.md), les [exporter vers un compartiment Amazon S3](export-data.md), les [mettre à jour](updating-datasets.md) ou les [supprimer en](delete-dataset.md) supprimant le jeu de données. 

    Après avoir importé vos données, vous êtes prêt à créer des recommandations de domaines (pour les groupes de jeux de données de domaine) ou des ressources personnalisées (pour les groupes de données personnalisés) afin d'entraîner un modèle sur vos données. Vous utilisez ces ressources pour générer des recommandations. Pour plus d’informations, consultez [Recommandeurs de domaines dans Amazon Personalize](creating-recommenders.md) ou [Ressources personnalisées pour la formation et le déploiement des modèles Amazon Personalize](create-custom-resources.md). 

## Création d'une tâche d'importation de jeux de données (AWS CLI)
<a name="bulk-data-import-cli"></a>

**Important**  
Par défaut, une tâche d'importation de jeu de données remplace toutes les données existantes du jeu de données que vous avez importé en bloc. Si vous avez déjà importé des données en masse, vous pouvez ajouter des données en modifiant le [mode d'importation](#bulk-import-modes) de la tâche.

 Pour importer des enregistrements en bloc à l'aide du AWS CLI, créez une tâche d'importation de jeu de données à l'aide de la [CreateDatasetImportJob](API_CreateDatasetImportJob.md) commande. Si vous avez déjà créé une tâche d'importation d'ensemble de données pour un ensemble de données, vous pouvez utiliser le paramètre du mode d'importation pour spécifier comment ajouter les nouvelles données. Pour plus d'informations sur la mise à jour des données en bloc existantes, consultez[Mise à jour des données dans les ensembles de données après l'entraînement](updating-datasets.md).

**Importer des enregistrements en bloc (AWS CLI)**

1. Créez une tâche d'importation d'ensembles de données en exécutant la commande suivante. Indiquez le nom de ressource Amazon (ARN) de votre ensemble de données et spécifiez le chemin d'accès au compartiment Amazon S3 dans lequel vous avez stocké les données d'entraînement. Utilisez la syntaxe suivante pour le chemin :

   **s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>**

   Si vos fichiers CSV se trouvent dans un dossier de votre compartiment Amazon S3 et que vous souhaitez charger plusieurs fichiers CSV dans un ensemble de données avec une seule tâche d'importation d'ensemble de données, vous pouvez spécifier le chemin d'accès au dossier. Amazon Personalize utilise uniquement les fichiers du premier niveau de votre dossier, aucune donnée n'est utilisée dans aucun sous-dossier. Utilisez la syntaxe suivante avec un `/` après le nom du dossier :

   **s3:/amzn-s3-demo-bucket/<folder path>/**

   Indiquez le rôle Gestion des identités et des accès AWS (IAM) Amazon Resource Name (ARN) dans [Création d'un rôle IAM pour Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) lequel vous avez créé. L’`import-mode` par défaut est `FULL`. Pour de plus amples informations, veuillez consulter [Mise à jour des données dans les ensembles de données après l'entraînement](updating-datasets.md). Pour plus d'informations sur ce fonctionnement, consultez [CreateDatasetImportJob](API_CreateDatasetImportJob.md).

   ```
   aws personalize create-dataset-import-job \
   --job-name {{dataset import job name}} \
   --dataset-arn {{dataset arn}} \
   --data-source dataLocation=s3://{{amzn-s3-demo-bucket}}/{{filename}} \
   --role-arn {{roleArn}} \
   --import-mode {{FULL}}
   ```

   L'ARN de la tâche d'importation de l'ensemble de données est affiché, comme indiqué dans l'exemple suivant.

   ```
   {
     "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobName"
   }
   ```

1. Vérifiez le statut à l'aide de la commande `describe-dataset-import-job`. Fournissez l'ARN de la tâche d'importation d'ensembles de données qui a été retourné lors de l'étape précédente. Pour plus d'informations sur ce fonctionnement, consultez [DescribeDatasetImportJob](API_DescribeDatasetImportJob.md).

   ```
   aws personalize describe-dataset-import-job \
   --dataset-import-job-arn {{dataset import job arn}}
   ```

   Les propriétés de la tâche d'importation d'ensembles de données et son statut sont affichés. Au départ, il s'`status`affiche sous la forme CREATE PENDING.

   ```
   {
     "datasetImportJob": {
         "jobName": "Dataset Import job name",
         "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobArn",
         "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetGroupName/INTERACTIONS",
         "dataSource": {
             "dataLocation": "s3://amzn-s3-demo-bucket/ratings.csv"
         },
         "importMode": "FULL",
         "roleArn": "role-arn",
         "status": "CREATE PENDING",
         "creationDateTime": 1542392161.837,
         "lastUpdatedDateTime": 1542393013.377
     }
   }
   ```

   L'importation d'ensembles de données est terminée quand le statut ACTIVE (ACTIF) apparaît. Après avoir importé des données dans un ensemble de données Amazon Personalize, vous pouvez [les analyser](analyzing-data.md), les [exporter vers un compartiment Amazon S3](export-data.md), les [mettre à jour](updating-datasets.md) ou les [supprimer en](delete-dataset.md) supprimant le jeu de données. 

    Après avoir importé vos données, vous êtes prêt à créer des recommandations de domaines (pour les groupes de jeux de données de domaine) ou des ressources personnalisées (pour les groupes de données personnalisés) afin d'entraîner un modèle sur vos données. Vous utilisez ces ressources pour générer des recommandations. Pour plus d’informations, consultez [Recommandeurs de domaines dans Amazon Personalize](creating-recommenders.md) ou [Ressources personnalisées pour la formation et le déploiement des modèles Amazon Personalize](create-custom-resources.md). 

## Création d'une tâche d'importation de jeux de données (AWS SDKs)
<a name="python-import-ex"></a>

**Important**  
Par défaut, une tâche d'importation de jeu de données remplace toutes les données existantes du jeu de données que vous avez importé en bloc. Si vous avez déjà importé des données en masse, vous pouvez ajouter des données en modifiant le [mode d'importation](#bulk-import-modes) de la tâche.

Pour importer des données, créez une tâche d'importation de jeu de données avec l'[CreateDatasetImportJob](API_CreateDatasetImportJob.md)opération. Le code suivant montre comment créer une tâche d'importation de jeu de données.

Donnez le nom de la tâche, définissez `datasetArn` le nom de ressource Amazon (ARN) de votre ensemble de données et définissez le `dataLocation` chemin d'accès au compartiment Amazon S3 dans lequel vous avez stocké les données d'entraînement. Utilisez la syntaxe suivante pour le chemin :

**s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>.csv**

Si vos fichiers CSV se trouvent dans un dossier de votre compartiment Amazon S3 et que vous souhaitez charger plusieurs fichiers CSV dans un ensemble de données avec une seule tâche d'importation d'ensemble de données, vous pouvez spécifier le chemin d'accès au dossier. Amazon Personalize utilise uniquement les fichiers du premier niveau de votre dossier, aucune donnée n'est utilisée dans aucun sous-dossier. Utilisez la syntaxe suivante avec un `/` après le nom du dossier :

**s3:/amzn-s3-demo-bucket/<folder path>/**

Pour cela`roleArn`, spécifiez le rôle Gestion des identités et des accès AWS (IAM) qui autorise Amazon Personalize à accéder à votre compartiment S3. Consultez [Création d'un rôle IAM pour Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). L’`importMode` par défaut est `FULL`. Cela remplace toutes les données en masse de l'ensemble de données. Pour ajouter des données, définissez-les sur. `INCREMENTAL` Pour plus d'informations sur la mise à jour des données en bloc existantes, consultez[Mise à jour des données dans les ensembles de données après l'entraînement](updating-datasets.md). 

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

response = personalize.create_dataset_import_job(
    jobName = '{{YourImportJob}}',
    datasetArn = '{{dataset_arn}}',
    dataSource = {'dataLocation':'s3://{{amzn-s3-demo-bucket}}/{{filename}}.csv'},
    roleArn = '{{role_arn}}',
    importMode = 'FULL'
)

dsij_arn = response['datasetImportJobArn']

print ('Dataset Import Job arn: ' + dsij_arn)

description = personalize.describe_dataset_import_job(
    datasetImportJobArn = dsij_arn)['datasetImportJob']

print('Name: ' + description['jobName'])
print('ARN: ' + description['datasetImportJobArn'])
print('Status: ' + description['status'])
```

------
#### [ SDK for Java 2.x ]

```
public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient,
                                                      String jobName,
                                                      String datasetArn,
                                                      String s3BucketPath,
                                                      String roleArn,
                                                      ImportMode importMode) {

  long waitInMilliseconds = 60 * 1000;
  String status;
  String datasetImportJobArn;
  
  try {
      DataSource importDataSource = DataSource.builder()
              .dataLocation(s3BucketPath)
              .build();
      
      CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder()
              .datasetArn(datasetArn)
              .dataSource(importDataSource)
              .jobName(jobName)
              .roleArn(roleArn)
              .importMode(importMode)
              .build();
  
      datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest)
              .datasetImportJobArn();
      
      DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder()
              .datasetImportJobArn(datasetImportJobArn)
              .build();
  
      long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;
  
      while (Instant.now().getEpochSecond() < maxTime) {
  
          DatasetImportJob datasetImportJob = personalizeClient
                  .describeDatasetImportJob(describeDatasetImportJobRequest)
                  .datasetImportJob();
  
          status = datasetImportJob.status();
          System.out.println("Dataset import job status: " + status);
  
          if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) {
              break;
          }
          try {
              Thread.sleep(waitInMilliseconds);
          } catch (InterruptedException e) {
              System.out.println(e.getMessage());
          }
      }
      return datasetImportJobArn;
  
  } catch (PersonalizeException e) {
      System.out.println(e.awsErrorDetails().errorMessage());
  }
  return "";
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients and commands using ES6 syntax.
import { CreateDatasetImportJobCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// Set the dataset import job parameters.
export const datasetImportJobParam = {
  datasetArn: 'DATASET_ARN', /* required */
  dataSource: {  
    dataLocation: 's3://amzn-s3-demo-bucket/<folderName>/<CSVfilename>.csv'  /* required */
  },
  jobName: 'NAME',           /* required */
  roleArn: 'ROLE_ARN',       /* required */
  importMode: "FULL"         /* optional, default is FULL */
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(new CreateDatasetImportJobCommand(datasetImportJobParam));
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

La réponse de l'[DescribeDatasetImportJob](API_DescribeDatasetImportJob.md)opération inclut le statut de l'opération.

Vous devez attendre que l'état passe à ACTIVE avant de pouvoir utiliser les données pour former un modèle.

L'importation d'ensembles de données est terminée quand le statut ACTIVE (ACTIF) apparaît. Après avoir importé des données dans un ensemble de données Amazon Personalize, vous pouvez [les analyser](analyzing-data.md), les [exporter vers un compartiment Amazon S3](export-data.md), les [mettre à jour](updating-datasets.md) ou les [supprimer en](delete-dataset.md) supprimant le jeu de données. 

 Après avoir importé vos données, vous êtes prêt à créer des recommandations de domaines (pour les groupes de jeux de données de domaine) ou des ressources personnalisées (pour les groupes de données personnalisés) afin d'entraîner un modèle sur vos données. Vous utilisez ces ressources pour générer des recommandations. Pour plus d’informations, consultez [Recommandeurs de domaines dans Amazon Personalize](creating-recommenders.md) ou [Ressources personnalisées pour la formation et le déploiement des modèles Amazon Personalize](create-custom-resources.md). 