Importation d'enregistrements en masse avec une tâche d'importation de jeux de données - Amazon Personalize

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 d'enregistrements en masse avec une tâche d'importation de jeux de données

Une fois que vous avez formaté vos données d'entrée (voirDirectives relatives au format des données), que vous les avez téléchargées dans un bucket Amazon Simple Storage Service (Amazon S3) (Téléchargement vers un compartiment Amazon S3voir) et que vous avez Création d'un jeu de données et d'un schéma terminé, importez les enregistrements groupés dans l'ensemble de données en créant une tâche d'importation de jeu de données.

Une tâche d'importation de jeu de données est un outil d'importation en masse qui remplit votre ensemble de données avec les données de votre compartiment Amazon S3. 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 des SDK.

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 plus d’informations, consultez Mise à jour des données groupées existantes.

Modes d'importation

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'CreateDatasetImportJobAPI. 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 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.

Importation d'enregistrements groupés (console)

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 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 dansCréation d'un jeu de données et d'un schéma, passez à l'étape 5.

Pour importer des enregistrements en bloc (console)
  1. Ouvrez la console Amazon Personalize à l'adresse https://console.aws.amazon.com/personalize/home et connectez-vous à votre compte.

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

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

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

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

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

  7. 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 plus d’informations, consultez Mise à jour des données groupées existantes.

  8. 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://<name of your S3 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://<name of your S3 bucket>/<folder path>/

  9. 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éé dansCréation d'un rôle IAM pour Amazon Personalize.

  10. 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, voirMesurer l'impact des recommandations d'Amazon Personalize.

  11. Pour les balises, ajoutez éventuellement des balises. Pour plus d'informations sur le balisage des ressources Amazon Personalize, consultezMarquer les ressources Amazon Personalize.

  12. 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, les exporter vers un compartiment Amazon S3, les mettre à jour ou les supprimer en supprimant le jeu de données. Pour plus d’informations, consultez Gestion des données d'entraînement dans vos ensembles de données.

    Après avoir importé vos données, vous êtes prêt à créer une solution. Pour plus d’informations, consultez Création d'une solution et d'une version de solution.

Importation d'enregistrements groupés (AWS CLI)

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 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 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, consultezMise à jour des données groupées existantes.

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://<name of your S3 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://<name of your S3 bucket>/<folder path>/

    Indiquez le rôle AWS Identity and Access Management (IAM) Amazon Resource Name (ARN) dans Création d'un rôle IAM pour Amazon Personalize lequel vous avez créé. L’import-mode par défaut est FULL. Pour plus d’informations, consultez Mise à jour des données groupées existantes. Pour plus d'informations sur ce fonctionnement, consultez CreateDatasetImportJob.

    aws personalize create-dataset-import-job \ --job-name dataset import job name \ --dataset-arn dataset arn \ --data-source dataLocation=s3://bucketname/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" }
  2. 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.

    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'statusaffiche 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://<bucketname>/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, les exporter vers un compartiment Amazon S3, les mettre à jour ou les supprimer en supprimant le jeu de données. Pour plus d’informations, consultez Gestion des données d'entraînement dans vos ensembles de données.

    Après avoir importé vos données dans les ensembles de données pertinents du groupe de jeux de données, vous pouvez créer une version de solution (modèle entraîné). Pour plus d’informations, consultez Création d'une solution et d'une version de solution.

Importation d'enregistrements groupés (AWS SDK)

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 de la tâche.

Pour importer des données, créez une tâche d'importation de jeu de données avec l'CreateDatasetImportJobopé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://<name of your S3 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://<name of your S3 bucket>/<folder path>/

Pour celaroleArn, spécifiez le rôle AWS Identity and Access Management (IAM) qui autorise Amazon Personalize à accéder à votre compartiment S3. veuillez consulter Création d'un rôle IAM pour Amazon Personalize. 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, consultezMise à jour des données groupées existantes.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_import_job( jobName = 'YourImportJob', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://bucket/file.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://<name of your S3 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'DescribeDatasetImportJobopé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, les exporter vers un compartiment Amazon S3, les mettre à jour ou les supprimer en supprimant le jeu de données. Pour plus d’informations, consultez Gestion des données d'entraînement dans vos ensembles de données.

Après avoir importé vos données dans les ensembles de données pertinents du groupe de jeux de données, vous pouvez créer une version de solution (modèle entraîné). Pour plus d'informations, voir Création d'une solution et d'une version de solution.