

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

# Exportar os dados de treinamento em um conjunto de dados para o Amazon S3
<a name="export-data"></a>

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 itens, usuários ou interações com itens importados 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 itens, usuários ou interações com itens importados 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. Uma *tarefa de exportação de registros* é uma ferramenta de exportação de registro que envia os registros em um conjunto de dados para um ou mais arquivos CSV em um bucket do Amazon S3. O arquivo CSV de saída inclui uma linha de cabeçalho com nomes de colunas que correspondem aos campos no esquema do conjunto de dados. 

**Topics**
+ [Requisitos de permissões de tarefa para exportação de conjuntos de dados](export-permissions.md)
+ [Criar um trabalho de exportação do conjunto de dados no Amazon Personalize](create-dataset-export-job.md)

# Requisitos de permissões de tarefa para exportação de conjuntos de dados
<a name="export-permissions"></a>

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) ao seu perfil de serviço do Amazon Personalize que conceda ao perfil permissão para usar as ações `PutObject` e `ListBucket` em seu bucket, e anexe uma política de bucket ao seu bucket do Amazon S3 de saída que conceda ao princípio do Amazon Personalize permissão para usar as ações `PutObject` e `ListBucket`.

 Se você usa o AWS Key Management Service (AWS KMS) para criptografia, conceda permissão ao Amazon Personalize e ao seu perfil de serviço de IAM do Amazon Personalize para usar sua chave. Para obter mais informações, consulte [Conceder permissão ao Amazon Personalize para usar sua chave AWS KMS](granting-personalize-key-access.md).

## Política de perfil de serviço para exportar um conjunto de dados
<a name="role-policy-for-dataset-export-job"></a>

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 quais políticas associar ao perfil de serviço do IAM, consulte [Como anexar uma política do Amazon S3 ao seu perfil de serviço do Amazon Personalize](granting-personalize-s3-access.md#attaching-s3-policy-to-role). 

```
{
    "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
<a name="bucket-policy-for-dataset-export-job"></a>

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 mais informações sobre como adicionar uma política de bucket do Amazon S3, consulte [Adicionar uma política de bucket usando o console do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) 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/*"
            ]
        }
    ]
}
```

# Criar um trabalho de exportação do conjunto de dados no Amazon Personalize
<a name="create-dataset-export-job"></a>

Você pode criar uma tarefa de exportação de conjuntos de dados com o console do Amazon Personalize, a AWS Command Line Interface (AWS CLI) ou os AWS SDKs. 

## Como criar uma tarefa de exportação do conjunto de dados (console)
<a name="export-data-console"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), 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](export-permissions.md). 

**Para criar uma tarefa de exportação do conjunto de dados (console)**

1. Abra o console do Amazon Personalize em [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home).

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

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

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

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

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

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

1. Para **Perfil de serviço do IAM**, selecione o perfil de serviço do Amazon Personalize que você criou em [Criar um perfil do IAM para o Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions).

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

1. Se você estiver usando o AWS KMS para criptografia, para o **ARN da chave do KMS**, insira o nome do recurso da Amazon (ARN) para a chave AWS KMS. 

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

1. 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](tagging-resources.md).

1. 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**. A tarefa de importação do conjunto de dados estará concluída quando o status for **ATIVO**. 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html), no *Guia do usuário do Amazon Simple Storage Service*.

## Criar uma tarefa de exportação do conjunto de dados (AWS CLI)
<a name="export-data-cli"></a>

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 a AWS CLI, crie uma tarefa de exportação do conjunto de dados usando o comando `create-dataset-export-job` da AWS CLI. Para obter informações sobre como criar um bucket do Amazon S3, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), 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](export-permissions.md). 

 Veja a seguir um exemplo do comando `create-dataset-export-job` AWS CLI. Dê um nome à tarefa, substitua `dataset arn` pelo nome do recurso da Amazon (ARN) do conjunto de dados que deseja exportar e substitua `role ARN` pelo ARN do perfil de serviço do Amazon Personalize que você criou no [Criar um perfil do IAM para o Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). Em `s3DataDestination`, para o `kmsKeyArn`, forneça opcionalmente o ARN para sua chave do AWS KMS 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 operações `PutEvents`, PutUsers ou `PutItems`. 
+  Especifique `ALL` para exportar todos os dados no conjunto de dados. 

 Para obter mais informações, consulte [CreateDatasetExportJob](API_CreateDatasetExportJob.md). 

```
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 ARN da tarefa de importação do conjunto de dados é 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
```

## Criar uma tarefa de exportação do conjunto de dados (AWS SDKs)
<a name="export-data-sdk"></a>

 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 os AWS SDKs, crie uma tarefa de exportação do conjunto de dados usando a operação [CreateDatasetExportJob](API_CreateDatasetExportJob.md). Para obter informações sobre como criar um bucket do Amazon S3, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), no *Guia do usuário do Amazon Simple Storage Service*. 

O código a seguir mostra como criar uma tarefa de exportação do conjunto de dados usando o SDK para Python (Boto3) ou o SDK para Java 2.x.

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](export-permissions.md). 

------
#### [ 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 à tarefa, substitua `dataset arn` pelo nome do recurso da Amazon (ARN) do conjunto de dados que deseja exportar e substitua `role ARN` pelo ARN do perfil de serviço do Amazon Personalize que você criou no [Criar um perfil do IAM para o Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions). Em `s3DataDestination`, para o `kmsKeyArn`, forneça opcionalmente o ARN para sua chave do AWS KMS 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 operações `PutEvents`, PutUsers ou `PutItems`. 
+ 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: um PersonalizeClient, o nome da sua tarefa de exportação, o ARN do conjunto de dados que você deseja exportar, o modo de ingestão, o caminho para o bucket de saída do Amazon S3 e o ARN 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 os dados que você importou individualmente usando o console ou as operações `PutEvents`, PutUsers ou `PutItems`. 
+ 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());
    }
}
```

------