

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengekspor data pelatihan dalam kumpulan data ke Amazon S3
<a name="export-data"></a>

Setelah mengimpor data ke kumpulan data Amazon Personalize, Anda dapat mengekspor data ke bucket Amazon S3. Anda dapat mengekspor data untuk memverifikasi dan memeriksa data yang digunakan Amazon Personalize untuk menghasilkan rekomendasi, melihat peristiwa interaksi item yang sebelumnya Anda rekam secara real time, atau melakukan analisis offline pada data Anda. 

Anda dapat memilih untuk mengekspor hanya data yang Anda impor secara massal (diimpor menggunakan pekerjaan impor kumpulan data Amazon Personalize), hanya data yang Anda impor satu per satu (catatan yang diimpor menggunakan konsol atau`PutEvents`,, atau `PutItems` operasi)`PutUsers`, atau keduanya. 

**catatan**  
 Anda tidak dapat mengekspor data dalam kumpulan data interaksi Tindakan atau kumpulan data Tindakan. 

Untuk catatan yang sama persis dengan *semua bidang*, Amazon Personalize mengekspor hanya satu catatan. Jika dua rekaman memiliki ID yang sama tetapi satu atau beberapa bidang berbeda, Amazon Personalize menyertakan atau menghapus catatan tergantung pada data yang Anda pilih untuk diekspor: 
+ Jika Anda mengekspor data massal dan inkremental, Amazon Personalize hanya mengekspor item terbaru dengan ID yang sama (dalam ekspor kumpulan data Item), dan hanya pengguna dengan ID yang sama (dalam ekspor kumpulan data Pengguna). Untuk kumpulan data interaksi Item, Amazon Personalize mengekspor semua data interaksi item.
+ Jika Anda hanya mengekspor data tambahan, Amazon Personalize mengekspor semua data interaksi item, pengguna, atau item yang Anda impor satu per satu, termasuk item atau pengguna yang sama. IDs Hanya catatan yang sama persis untuk semua bidang yang dikecualikan.
+ Jika Anda hanya mengekspor data massal, Amazon Personalize menyertakan semua data interaksi item, pengguna, atau item yang Anda impor secara massal, termasuk item atau pengguna yang sama. IDs Hanya catatan yang sama persis untuk semua bidang yang dikecualikan.

Untuk mengekspor kumpulan data, Anda membuat pekerjaan ekspor kumpulan data. *Pekerjaan ekspor kumpulan data* adalah alat ekspor rekaman yang mengeluarkan catatan dalam kumpulan data ke satu atau beberapa file CSV di bucket Amazon S3. File CSV keluaran menyertakan baris header dengan nama kolom yang cocok dengan bidang dalam skema kumpulan data. 

**Topics**
+ [Persyaratan izin pekerjaan ekspor dataset](export-permissions.md)
+ [Membuat pekerjaan ekspor kumpulan data di Amazon Personalize](create-dataset-export-job.md)

# Persyaratan izin pekerjaan ekspor dataset
<a name="export-permissions"></a>

Untuk mengekspor kumpulan data, Amazon Personalize memerlukan izin untuk menambahkan file ke bucket Amazon S3 Anda. Untuk memberikan izin, lampirkan kebijakan baru AWS Identity and Access Management (IAM) ke peran layanan Amazon Personalisasi yang memberikan izin peran untuk menggunakan `PutObject` `ListBucket` dan Tindakan di bucket Anda, dan lampirkan kebijakan bucket ke bucket Amazon S3 keluaran Anda yang memberikan izin prinsip Personalisasi Amazon untuk menggunakan dan Tindakan. `PutObject` `ListBucket`

 Jika Anda menggunakan AWS Key Management Service (AWS KMS) untuk enkripsi, Anda harus memberikan izin Amazon Personalize dan Amazon Personalize IAM service role untuk menggunakan kunci Anda. Untuk informasi selengkapnya, lihat [Memberikan izin Amazon Personalize untuk menggunakan kunci Anda AWS KMS](granting-personalize-key-access.md).

## Kebijakan peran layanan untuk mengekspor kumpulan data
<a name="role-policy-for-dataset-export-job"></a>

Kebijakan contoh berikut memberikan izin peran layanan Amazon Personalize Anda untuk menggunakan dan Tindakan`PutObject`. `ListBucket` Ganti `amzn-s3-demo-bucket` dengan nama bucket keluaran Anda. Untuk informasi tentang melampirkan kebijakan ke peran layanan IAM, lihat. [Melampirkan kebijakan Amazon S3 ke peran layanan Amazon Personalisasi](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/*"
            ]
        }
    ]
}
```

## Kebijakan bucket Amazon S3 untuk mengekspor kumpulan data
<a name="bucket-policy-for-dataset-export-job"></a>

Contoh kebijakan berikut memberikan izin Amazon Personalize untuk menggunakan `PutObject` `ListBucket` dan Tindakan di bucket Amazon S3. Ganti `amzn-s3-demo-bucket` dengan nama bucket Anda. Untuk informasi tentang menambahkan kebijakan bucket Amazon S3 ke bucket, lihat [Menambahkan kebijakan bucket menggunakan konsol Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) di Panduan Pengguna Layanan *Penyimpanan Sederhana Amazon*. 

```
{
    "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/*"
            ]
        }
    ]
}
```

# Membuat pekerjaan ekspor kumpulan data di Amazon Personalize
<a name="create-dataset-export-job"></a>

Anda dapat membuat tugas ekspor kumpulan data dengan konsol Amazon Personalize AWS Command Line Interface ,AWS CLI(), atau. AWS SDKs 

## Membuat pekerjaan ekspor kumpulan data (konsol)
<a name="export-data-console"></a>

Setelah mengimpor data ke dalam kumpulan data dan membuat bucket Amazon S3 keluaran, Anda dapat mengekspor data ke bucket untuk dianalisis. **Untuk mengekspor kumpulan data menggunakan konsol Amazon Personalize, Anda membuat tugas ekspor kumpulan data. Untuk informasi tentang membuat bucket Amazon S3, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

Sebelum mengekspor kumpulan data, pastikan peran layanan Amazon Personalize dapat mengakses dan menulis ke bucket Amazon S3 keluaran Anda. Lihat [Persyaratan izin pekerjaan ekspor dataset](export-permissions.md). 

**Untuk membuat pekerjaan ekspor kumpulan data (konsol)**

1. [Buka konsol Amazon Personalize di https://console.aws.amazon.com/personalize/ rumah.](https://console.aws.amazon.com/personalize/home)

1. Di panel navigasi, pilih Grup **kumpulan data**.

1. Pada halaman **grup Dataset**, pilih grup kumpulan data Anda.

1. Di panel navigasi, pilih **Datasets**.

1. Pilih kumpulan data yang ingin Anda ekspor ke bucket Amazon S3.

1.  Di **pekerjaan ekspor Dataset, pilih Buat pekerjaan** **ekspor kumpulan data**. 

1. Di **detail pekerjaan ekspor Dataset**, untuk **nama pekerjaan ekspor Dataset**, masukkan nama untuk pekerjaan ekspor.

1. Untuk **peran layanan IAM, pilih peran layanan** Amazon Personalisasi yang Anda buat. [Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions)

1. Untuk **jalur keluaran data Amazon S3**, masukkan bucket Amazon S3 tujuan. Gunakan sintaks berikut:

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

1. Jika Anda menggunakan AWS KMS untuk enkripsi, untuk **ARN kunci KMS**, masukkan Nama Sumber Daya Amazon (ARN) untuk kunci tersebut. AWS KMS 

1. Untuk **tipe data Ekspor**, pilih tipe data yang akan diekspor berdasarkan cara Anda mengimpor data semula.
   +  Pilih **Massal** untuk mengekspor hanya data yang Anda impor secara massal menggunakan pekerjaan impor kumpulan data. 
   + Pilih **Incremental** untuk mengekspor hanya data yang Anda impor satu per satu menggunakan konsol atau`PutEvents`,`PutUsers`, atau `PutItems` operasi. 
   + Pilih **Keduanya** untuk mengekspor semua data dalam kumpulan data. 

1. Untuk **Tag**, secara opsional tambahkan tag apa pun. Untuk informasi selengkapnya tentang menandai sumber daya Amazon Personalize, lihat. [Menandai Amazon Personalisasi sumber daya](tagging-resources.md)

1. Pilih **Buat pekerjaan ekspor kumpulan data**. 

   Pada halaman **ikhtisar Dataset****, di pekerjaan ekspor Dataset**, pekerjaan terdaftar dengan status **pekerjaan Ekspor**. Pekerjaan ekspor kumpulan data selesai ketika statusnya **AKTIF**. Anda kemudian dapat mengunduh data dari bucket Amazon S3 keluaran. Untuk informasi tentang mengunduh objek dari bucket Amazon S3, lihat [Mengunduh objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. .

## Membuat pekerjaan ekspor dataset ()AWS CLI
<a name="export-data-cli"></a>

Setelah mengimpor data ke dalam kumpulan data dan membuat bucket Amazon S3 keluaran, Anda dapat mengekspor kumpulan data ke bucket untuk dianalisis. Untuk mengekspor kumpulan data menggunakan AWS CLI, buat pekerjaan ekspor kumpulan data menggunakan perintah. `create-dataset-export-job` AWS CLI Untuk informasi tentang membuat bucket Amazon S3, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

Sebelum mengekspor kumpulan data, pastikan peran layanan Amazon Personalize dapat mengakses dan menulis ke bucket Amazon S3 keluaran Anda. Lihat [Persyaratan izin pekerjaan ekspor dataset](export-permissions.md). 

 Berikut ini adalah contoh perintah `create-dataset-export-job` AWS CLI . Beri nama pekerjaan, ganti `dataset arn` dengan Amazon Resource Name (ARN) dari kumpulan data yang ingin Anda ekspor, dan ganti dengan ARN `role ARN` dari peran layanan Amazon Personalize yang Anda buat. [Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) Di`s3DataDestination`, untuk`kmsKeyArn`, secara opsional berikan ARN untuk kunci AWS KMS Anda, dan untuk `path` menyediakan jalur ke bucket Amazon S3 keluaran Anda. 

 Untuk`ingestion-mode`, tentukan data yang akan diekspor dari opsi berikut: 
+  Tentukan `BULK` untuk mengekspor hanya data yang Anda impor secara massal menggunakan pekerjaan impor kumpulan data. 
+  Tentukan `PUT` untuk mengekspor hanya data yang Anda impor satu per satu menggunakan konsol atau`PutEvents`, PutUsers, atau `PutItems` operasi. 
+  Tentukan `ALL` untuk mengekspor semua data dalam kumpulan data. 

 Untuk informasi selengkapnya, lihat [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
```

Pekerjaan ekspor dataset ARN ditampilkan.

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

Gunakan `DescribeDatasetExportJob` operasi untuk memeriksa status.

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

## Membuat pekerjaan ekspor dataset ()AWS SDKs
<a name="export-data-sdk"></a>

 Setelah mengimpor data ke dalam kumpulan data dan membuat bucket Amazon S3 keluaran, Anda dapat mengekspor kumpulan data ke bucket untuk dianalisis. Untuk mengekspor kumpulan data menggunakan AWS SDKs, buat pekerjaan ekspor kumpulan data menggunakan operasi. [CreateDatasetExportJob](API_CreateDatasetExportJob.md) Untuk informasi tentang membuat bucket Amazon S3, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

Kode berikut menunjukkan cara membuat pekerjaan ekspor dataset menggunakan SDK for Python (Boto3) atau SDK for Java 2.x SDK.

Sebelum mengekspor kumpulan data, pastikan peran layanan Amazon Personalize dapat mengakses dan menulis ke bucket Amazon S3 keluaran Anda. Lihat [Persyaratan izin pekerjaan ekspor dataset](export-permissions.md). 

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

Gunakan yang berikut ini `create_dataset_export_job` untuk mengekspor data dalam kumpulan data ke bucket Amazon S3. Beri nama pekerjaan, ganti `dataset arn` dengan Amazon Resource Name (ARN) dari kumpulan data yang ingin Anda ekspor, dan ganti dengan ARN `role ARN` dari peran layanan Amazon Personalize yang Anda buat. [Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions) Di`s3DataDestination`, untuk`kmsKeyArn`, secara opsional berikan ARN untuk kunci AWS KMS Anda, dan untuk `path` menyediakan jalur ke bucket Amazon S3 keluaran Anda. 

 Untuk`ingestionMode`, tentukan data yang akan diekspor dari opsi berikut: 
+ Tentukan `BULK` untuk mengekspor hanya data yang Anda impor secara massal menggunakan pekerjaan impor kumpulan data. 
+ Tentukan `PUT` untuk mengekspor hanya data yang Anda impor satu per satu menggunakan konsol atau`PutEvents`, PutUsers, atau `PutItems` operasi. 
+ Tentukan `ALL` untuk mengekspor semua data dalam kumpulan data.

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

Gunakan `createDatasetExportJob` metode berikut untuk membuat pekerjaan ekspor dataset. Teruskan yang berikut ini sebagai parameter: a PersonalizeClient, nama untuk pekerjaan ekspor Anda, ARN dari kumpulan data yang ingin Anda ekspor, mode konsumsi, jalur untuk bucket Amazon S3 keluaran, dan ARN untuk kunci Anda. AWS KMS 

 Ini `ingestionMode` bisa menjadi salah satu opsi berikut: 
+ Gunakan `IngestionMode.BULK` untuk mengekspor hanya data yang Anda impor secara massal menggunakan pekerjaan impor kumpulan data. 
+ Gunakan `IngestionMode.PUT` untuk mengekspor hanya data yang Anda impor satu per satu menggunakan konsol atau`PutEvents`, PutUsers, atau `PutItems` operasi. 
+ Gunakan `IngestionMode.ALL` untuk mengekspor semua data dalam dataset.

```
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());
    }
}
```

------