Mengekspor data pelatihan dalam kumpulan data ke Amazon S3 - Amazon Personalize

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

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 atauPutEvents,, 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 cocok 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 cocok 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 CSV file di bucket Amazon S3. CSVFile keluaran menyertakan baris header dengan nama kolom yang cocok dengan bidang dalam skema kumpulan data.

Persyaratan izin pekerjaan ekspor dataset

Untuk mengekspor kumpulan data, Amazon Personalize memerlukan izin untuk menambahkan file ke bucket Amazon S3 Anda. Untuk memberikan izin, lampirkan kebijakan new AWS Identity and Access Management (IAM) ke peran layanan Amazon Personalize 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 IAM Personalize service role untuk menggunakan kunci Anda. Untuk informasi selengkapnya, lihat Memberikan izin Amazon Personalisasi untuk menggunakan kunci Anda AWS KMS.

Kebijakan peran layanan untuk mengekspor kumpulan data

Kebijakan contoh berikut memberikan izin peran layanan Amazon Personalize Anda untuk menggunakan dan TindakanPutObject. ListBucket Ganti amzn-s3-demo-bucket dengan nama bucket keluaran Anda. Untuk informasi tentang melampirkan kebijakan ke peran IAM layanan, lihatMelampirkan kebijakan Amazon S3 ke peran layanan Amazon Personalisasi Anda.

{ "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

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 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 dataset

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

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

Untuk membuat pekerjaan ekspor kumpulan data (konsol)
  1. Buka konsol Amazon Personalize di https://console.aws.amazon.com/personalize/ rumah.

  2. Di panel navigasi, pilih Grup kumpulan data.

  3. Pada halaman grup Dataset, pilih grup kumpulan data Anda.

  4. Di panel navigasi, pilih Datasets.

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

  6. Di pekerjaan ekspor Dataset, pilih Buat pekerjaan ekspor kumpulan data.

  7. Di detail pekerjaan ekspor Dataset, untuk nama pekerjaan ekspor Dataset, masukkan nama untuk pekerjaan ekspor.

  8. Untuk peran IAM layanan, pilih peran layanan Amazon Personalisasi yang Anda buat. Membuat peran IAM untuk Amazon Personalize

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

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

  10. Jika Anda menggunakan AWS KMS untuk enkripsi, untuk KMSkunci ARN, masukkan Amazon Resource Name (ARN) untuk AWS KMS kunci.

  11. 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 atauPutEvents,PutUsers, atau PutItems operasi.

    • Pilih Keduanya untuk mengekspor semua data dalam kumpulan data.

  12. Untuk Tag, secara opsional tambahkan tag apa pun. Untuk informasi selengkapnya tentang menandai sumber daya Amazon Personalize, lihat. Menandai Amazon Personalisasi sumber daya

  13. Pilih Buat pekerjaan ekspor kumpulan data.

    Pada halaman ikhtisar Dataset, di pekerjaan ekspor Dataset, pekerjaan terdaftar dengan status pekerjaan Ekspor. Pekerjaan ekspor dataset selesai saat statusnya ACTIVE. Anda kemudian dapat mengunduh data dari bucket Amazon S3 keluaran. Untuk informasi tentang mengunduh objek dari bucket Amazon S3, lihat Mengunduh objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. .

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

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 role ARN dengan peran layanan Amazon Personalize yang Anda buat. ARN Membuat peran IAM untuk Amazon Personalize Dis3DataDestination, untukkmsKeyArn, secara opsional sediakan ARN untuk AWS KMS kunci Anda, dan untuk path menyediakan jalur ke bucket Amazon S3 keluaran Anda.

Untukingestion-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 atauPutEvents, PutUsers, atau PutItems operasi.

  • Tentukan ALL untuk mengekspor semua data dalam kumpulan data.

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

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

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 Untuk informasi tentang membuat bucket Amazon S3, lihat Membuat bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Kode berikut menunjukkan cara membuat pekerjaan ekspor dataset menggunakan untuk Python (Boto3) atau SDK SDK untuk 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.

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 role ARN dengan peran layanan Amazon Personalize yang Anda buat. ARN Membuat peran IAM untuk Amazon Personalize Dis3DataDestination, untukkmsKeyArn, secara opsional sediakan ARN untuk AWS KMS kunci Anda, dan untuk path menyediakan jalur ke bucket Amazon S3 keluaran Anda.

UntukingestionMode, 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 atauPutEvents, 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, kumpulan data yang ingin Anda ekspor, mode konsumsi, jalur untuk bucket Amazon S3 keluaran, dan untuk kunci Anda. ARN ARN 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 atauPutEvents, 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()); } }