Exportação dos dados de treinamento em um conjunto de dados para o Amazon S3 - Amazon Personalize

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exportação dos dados de treinamento em um conjunto de dados para o Amazon S3

Depois de importar dados para um conjunto de dados do Amazon Personalize, você pode exportar os dados para um bucket do Amazon S3. É possível exportar dados para verificar e inspecionar os dados que o Amazon Personalize usa para gerar recomendações, visualizar os eventos de interação com itens registrados anteriormente em tempo real ou realizar análises off-line nos dados.

Você pode optar por exportar somente os dados que você importou em massa (importados usando uma tarefa de importação do conjunto de dados do Amazon Personalize), somente os dados que você importou individualmente (registros importados usando o console ou operações PutEvents, PutUsers ou PutItems), ou ambos.

nota

Não é possível exportar dados em um conjunto de dados de ações nem de interações com ações.

Para registros que correspondam exatamente a todos os campos, o Amazon Personalize exporta apenas um registro. Se dois registros tiverem a mesma ID, mas um ou mais campos forem diferentes, o Amazon Personalize incluirá ou removerá os registros dependendo dos dados que você escolher exportar:

  • Se você exportar dados em massa e incrementais, o Amazon Personalize exportará somente os itens mais novos com o mesmo ID (nas exportações do conjunto de dados de itens) e somente os usuários com o mesmo ID (nas exportações do conjunto de dados de usuários). No caso de conjuntos de dados de interações com itens, o Amazon Personalize exporta todos os dados de interações com itens.

  • Se você exportar somente dados incrementais, o Amazon Personalize exportará todos os dados de interação de itens, usuários ou itens que você importou individualmente, incluindo itens ou usuários com os mesmos. IDs Somente registros que correspondam exatamente a todos os campos são excluídos.

  • Se você exportar somente dados em massa, o Amazon Personalize incluirá todos os dados de interação de itens, usuários ou itens que você importou em massa, incluindo itens ou usuários com os mesmos. IDs Somente registros que correspondam exatamente a todos os campos são excluídos.

Para exportar um conjunto de dados, crie uma tarefa de exportação do conjunto de dados. Um trabalho de exportação de conjunto de dados é uma ferramenta de exportação de registros que envia os registros em um conjunto de dados para um ou mais CSV arquivos em um bucket do Amazon S3. O CSV arquivo de saída inclui uma linha de cabeçalho com nomes de colunas que correspondem aos campos no esquema do conjunto de dados.

Requisitos de permissões de tarefa para exportação de conjuntos de dados

Para exportar um conjunto de dados, o Amazon Personalize precisa de permissão para adicionar arquivos ao seu bucket do Amazon S3. Para conceder permissões, anexe uma nova política AWS Identity and Access Management (IAM) à sua função de serviço Amazon Personalize que conceda à função permissão para usar as ListBucket ações PutObject e em seu bucket, e anexe uma política de bucket ao seu bucket Amazon S3 de saída que conceda ao princípio do Amazon Personalize permissão para usar as ações e. PutObject ListBucket

Se você usar AWS Key Management Service (AWS KMS) para criptografia, deverá conceder permissão ao Amazon Personalize e à sua função de serviço Amazon IAM Personalize para usar sua chave. Para obter mais informações, consulte Como conceder permissão ao Amazon Personalize para usar sua chave AWS KMS.

Política de perfil de serviço para exportar um conjunto de dados

O exemplo de política a seguir concede ao seu perfil de serviço do Amazon Personalize permissão para usar as ações PutObject e ListBucket. Substitua amzn-s3-demo-bucket pelo nome de seu bucket de saída. Para obter informações sobre como anexar políticas a uma função IAM de serviço, consulteComo anexar uma política do Amazon S3 ao seu perfil de serviço do Amazon Personalize.

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Política de bucket do Amazon S3 para exportar um conjunto de dados

O exemplo de política a seguir concede ao Amazon Personalize permissão para usar as ações PutObject e ListBucket no bucket do Amazon S3. Substitua amzn-s3-demo-bucket pelo nome do seu bucket. Para obter informações sobre como adicionar uma política de bucket do Amazon S3 a um bucket, consulte Adicionar uma política de bucket usando o console do Amazon S3 no Guia do usuário do Amazon Simple Storage Service.

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Criação de um trabalho de exportação de conjunto de dados

Você pode criar um trabalho de exportação de conjunto de dados com o console Amazon Personalize AWS Command Line Interface ,AWS CLI() ou. AWS SDKs

Depois de importar seus dados para um conjunto de dados e criar um bucket de saída do Amazon S3, você pode exportar os dados para o bucket para análise. Para exportar um conjunto de dados usando o console do Amazon Personalize, crie uma tarefa de exportação do conjunto de dados. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criação de um bucket, no Guia do usuário do Amazon Simple Storage Service.

Antes de exportar um conjunto de dados, certifique-se de que seu perfil de serviço do Amazon Personalize possa acessar e gravar em seu bucket do Amazon S3 de saída. Consulte Requisitos de permissões de tarefa para exportação de conjuntos de dados.

Para criar uma tarefa de exportação do conjunto de dados (console)
  1. Abra o console Amazon Personalize em casahttps://console.aws.amazon.com/personalize/.

  2. No painel de navegação, selecione Grupos de conjuntos de dados.

  3. Na página Grupos de conjuntos de dados, escolha seu grupo de conjuntos de dados.

  4. No painel de navegação, selecione Conjuntos de dados.

  5. Escolha o conjunto de dados que deseja exportar para um bucket do Amazon S3.

  6. Em Tarefas de exportação do conjunto de dados, selecione Criar tarefa de exportação do conjunto de dados.

  7. Em Detalhes da tarefa de exportação do conjunto de dados, em Nome da tarefa de exportação do conjunto de dados, digite um nome para a tarefa de exportação.

  8. Para função IAM de serviço, escolha a função de serviço Amazon Personalize que você criou em. Criar um perfil do IAM para o Amazon Personalize

  9. Para o caminho de saída de dados do Amazon S3, insira o bucket de destino do Amazon S3. Use a seguinte sintaxe:

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

  10. Se você estiver usando AWS KMS para criptografia, para KMSchave ARN, insira o Amazon Resource Name (ARN) para a AWS KMS chave.

  11. Em Exportar tipo de dados, escolha o tipo de dados a ser exportado com base em como você importou os dados originalmente.

    • Escolha Em massa para exportar somente os dados que você importou em massa usando uma tarefa de importação do conjunto de dados.

    • Escolha Incremental para exportar somente os dados que você importou individualmente usando o console ou as operações PutEvents, PutUsers ou PutItems.

    • Escolha Ambos para exportar todos os dados no conjunto de dados.

  12. Para Tags, é possível adicionar quaisquer tags. Para obter mais informações sobre recursos de atribuição de tags do Amazon Personalize, consulte Usar tags nos recursos do Amazon Personalize.

  13. Escolha Criar tarefa de exportação do conjunto de dados.

    Na página Visão geral do conjunto de dados, em Tarefas de exportação do conjunto de dados, a tarefa é listada com um Status da tarefa de exportação. O trabalho de exportação do conjunto de dados é concluído quando o status é ACTIVE. Em seguida, baixe os dados do bucket de saída do Amazon S3. Para obter informações sobre como baixar objetos de um bucket do Amazon S3, consulte Baixar um objeto, no Guia do usuário do Amazon Simple Storage Service.

Depois de importar seus dados para o conjunto de dados e criar um bucket de saída do Amazon S3, você pode exportar o conjunto dados para o bucket para análise. Para exportar um conjunto de dados usando o AWS CLI, crie um trabalho de exportação de conjunto de dados usando o create-dataset-export-job AWS CLI comando. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criação de um bucket, no Guia do usuário do Amazon Simple Storage Service.

Antes de exportar um conjunto de dados, certifique-se de que o perfil de serviço do Amazon Personalize possa acessar e gravar em seu bucket do Amazon S3 de saída. Consulte Requisitos de permissões de tarefa para exportação de conjuntos de dados.

Veja a seguir um exemplo do comando create-dataset-export-job AWS CLI . Dê um nome ao trabalho, dataset arn substitua-o pelo Amazon Resource Name (ARN) do conjunto de dados que você deseja exportar e role ARN substitua-o pelo ARN da função de serviço Amazon Personalize que você criou. Criar um perfil do IAM para o Amazon Personalize Ems3DataDestination, para okmsKeyArn, forneça opcionalmente o ARN para sua AWS KMS chave e, para o, path forneça o caminho para seu bucket de saída do Amazon S3.

Para ingestion-mode, especifique os dados a serem exportados das seguintes opções:

  • Especifique BULK para exportar somente os dados que você importou em massa usando uma tarefa de importação do conjunto de dados.

  • Especifique PUT para exportar somente os dados que você importou individualmente usando o console ou as PutItems operações PutEvents PutUsers,, ou.

  • Especifique ALL para exportar todos os dados no conjunto de dados.

Para obter mais informações, consulte CreateDatasetExportJob.

aws personalize create-dataset-export-job \ --job-name job name \ --dataset-arn dataset ARN \ --job-output "{\"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://amzn-s3-demo-bucket/folder-name/\"}}" \ --role-arn role ARN \ --ingestion-mode PUT

O trabalho de exportação do conjunto de dados ARN é exibido.

{ "datasetExportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-export-job/DatasetExportJobName" }

Use a operação DescribeDatasetExportJob para verificar o status.

aws personalize describe-dataset-export-job \ --dataset-export-job-arn dataset export job ARN

Depois de importar seus dados para o conjunto de dados e criar um bucket de saída do Amazon S3, você pode exportar o conjunto dados para o bucket para análise. Para exportar um conjunto de dados usando o AWS SDKs, crie um trabalho de exportação de conjunto de dados usando a CreateDatasetExportJob operação. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criação de um bucket, no Guia do usuário do Amazon Simple Storage Service.

O código a seguir mostra como criar um trabalho de exportação de conjunto de dados usando o SDK for Python (Boto3) ou SDK o for Java 2.x. SDK

Antes de exportar um conjunto de dados, certifique-se de que o perfil de serviço do Amazon Personalize possa acessar e gravar em seu bucket do Amazon S3 de saída. Consulte Requisitos de permissões de tarefa para exportação de conjuntos de dados.

SDK for Python (Boto3)

Use o seguinte create_dataset_export_job para exportar os dados de um conjunto de dados para um bucket do Amazon S3. Dê um nome ao trabalho, dataset arn substitua-o pelo Amazon Resource Name (ARN) do conjunto de dados que você deseja exportar e role ARN substitua-o pelo ARN da função de serviço Amazon Personalize que você criou. Criar um perfil do IAM para o Amazon Personalize Ems3DataDestination, para okmsKeyArn, forneça opcionalmente o ARN para sua AWS KMS chave e, para o, path forneça o caminho para seu bucket de saída do Amazon S3.

Para ingestionMode, especifique os dados a serem exportados das seguintes opções:

  • Especifique BULK para exportar somente os dados que você importou em massa usando uma tarefa de importação do conjunto de dados.

  • Especifique PUT para exportar somente os dados que você importou individualmente usando o console ou as PutItems operações PutEvents PutUsers,, ou.

  • Especifique ALL para exportar todos os dados no conjunto de dados.

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_export_job( jobName = 'job name', datasetArn = 'dataset ARN', jobOutput = { "s3DataDestination": { "kmsKeyArn": "kms key ARN", "path": "s3://amzn-s3-demo-bucket/folder-name/" } }, roleArn = 'role ARN', ingestionMode = 'PUT' ) dsej_arn = response['datasetExportJobArn'] print ('Dataset Export Job arn: ' + dsej_arn) description = personalize.describe_dataset_export_job( datasetExportJobArn = dsej_arn)['datasetExportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetExportJobArn']) print('Status: ' + description['status'])
SDK for Java 2.x

Use o método createDatasetExportJob a seguir para criar uma tarefa de exportação de conjuntos de dados. Passe o seguinte como parâmetros: a PersonalizeClient, o nome do seu trabalho de exportação, o conjunto ARN de dados que você deseja exportar, o modo de ingestão, o caminho para o bucket de saída do Amazon S3 e ARN o da sua chave. AWS KMS

O ingestionMode pode ser uma das seguintes opções:

  • Use IngestionMode.BULK para exportar somente os dados que você importou em massa usando uma tarefa de importação do conjunto de dados.

  • Use IngestionMode.PUT para exportar somente dados que você importou individualmente usando o console ou as PutItems operações PutEvents PutUsers,, ou.

  • Use IngestionMode.ALL para exportar todos os dados no conjunto de dados.

public static void createDatasetExportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, IngestionMode ingestionMode, String roleArn, String s3BucketPath, String kmsKeyArn) { long waitInMilliseconds = 30 * 1000; // 30 seconds String status = null; try { S3DataConfig exportS3DataConfig = S3DataConfig.builder() .path(s3BucketPath) .kmsKeyArn(kmsKeyArn) .build(); DatasetExportJobOutput jobOutput = DatasetExportJobOutput.builder() .s3DataDestination(exportS3DataConfig) .build(); CreateDatasetExportJobRequest createRequest = CreateDatasetExportJobRequest.builder() .jobName(jobName) .datasetArn(datasetArn) .ingestionMode(ingestionMode) .jobOutput(jobOutput) .roleArn(roleArn) .build(); String datasetExportJobArn = personalizeClient.createDatasetExportJob(createRequest).datasetExportJobArn(); DescribeDatasetExportJobRequest describeDatasetExportJobRequest = DescribeDatasetExportJobRequest.builder() .datasetExportJobArn(datasetExportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetExportJob datasetExportJob = personalizeClient.describeDatasetExportJob(describeDatasetExportJobRequest) .datasetExportJob(); status = datasetExportJob.status(); System.out.println("Export job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } }