데이터세트 가져오기 작업을 통해 Amazon Personalize로 대량 데이터 가져오기 - Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터세트 가져오기 작업을 통해 Amazon Personalize로 대량 데이터 가져오기

입력 데이터의 형식을 지정하고 (참조Amazon Personalize를 위한 교육 데이터 준비) 스키마 및 데이터세트 생성 완료했으면 데이터세트 가져오기 작업을 통해 대량 데이터를 가져올 준비가 된 것입니다. 데이터세트 가져오기 작업은 Amazon S3의 데이터로 데이터세트를 채우는 대량 가져오기 도구입니다.

Amazon S3에서 데이터를 가져오려면 CSV 파일이 Amazon S3 버킷에 있어야 하며 Amazon Personalize에 Amazon S3 리소스에 액세스할 수 있는 권한을 부여해야 합니다.

Amazon Personalize 콘솔을 사용하여 데이터세트 가져오기 작업을 생성할 수 있습니다. AWS Command Line Interface (AWS CLI), 또는 AWS SDKs. 이전에 데이터세트에 대한 데이터세트 가져오기 작업을 만든 경우 새 데이터세트 가져오기 작업을 사용하여 기존 대량 데이터를 추가하거나 기존 대량 데이터를 바꿀 수 있습니다. 자세한 내용은 훈련 후 데이터셋의 데이터 업데이트 단원을 참조하십시오.

데이터를 가져온 후에는 도메인 추천 도구 (도메인 데이터세트 그룹용) 또는 커스텀 리소스 (커스텀 데이터세트 그룹용) 를 만들어 데이터에 따라 모델을 학습시킬 준비가 된 것입니다. 이들 리소스를 사용하여 추천을 생성할 수 있습니다. 자세한 내용은 Amazon Personalize의 도메인 추천자 또는 Amazon Personalize 모델 교육 및 배포를 위한 사용자 지정 리소스을 참조하세요.

가져오기 모드

데이터세트에 대한 가져오기 작업을 이미 생성한 경우 Amazon Personalize에서 새 레코드를 추가하는 방법을 구성할 수 있습니다. 이렇게 하려면 데이터세트 가져오기 작업의 가져오기 모드를 지정해야 합니다. 대량 레코드를 가져오지 않은 경우 콘솔에서 가져오기 모드 필드를 사용할 수 없으며 CreateDatasetImportJob API 작업에서만 지정할 FULL 수 있습니다. 기본값은 전체 교체입니다.

  • 데이터세트의 기존 대량 데이터를 모두 덮어쓰려면 Amazon Personalize 콘솔에서 기존 데이터 바꾸기를 선택하거나 작업에서 FULL 지정하십시오. CreateDatasetImportJob API 이렇게 해도 실시간으로 기록된 이벤트를 포함하여 개별적으로 가져온 데이터는 교체되지 않습니다.

  • 데이터세트의 기존 데이터에 레코드를 추가하려면 기존 데이터에 추가를 선택하거나 작업에서 지정합니다. INCREMENTAL CreateDatasetImportJob API Personalize는 동일한 ID를 가진 모든 레코드를 새 레코드로 대체합니다.

    참고

    데이터 세트 가져오기 작업과 함께 항목 상호 작용 데이터 세트 또는 작업 상호 작용 데이터 세트에 데이터를 추가하려면, 새 항목 상호 작용 또는 작업 상호 작용 레코드가 1,000개 이상 있어야 합니다.

데이터세트 가져오기 작업 생성 (콘솔)

중요

기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 가져오기 모드를 변경하여 데이터를 추가할 수 있습니다.

Amazon Personalize 콘솔을 사용하여 대량 레코드를 데이터세트로 가져오려면 이름, 서비스 역할, IAM 데이터 위치를 사용하여 데이터세트 가져오기 작업을 생성하십시오.

스키마 및 데이터세트 생성에서 데이터세트를 방금 생성한 경우, 5단계로 건너뛰세요.

대량 레코드를 가져오려면(콘솔)
  1. https://console.aws.amazon.com/personalize/집에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

  2. 데이터세트 그룹 페이지에서 데이터세트 그룹을 선택합니다. 데이터세트 그룹 개요가 표시됩니다.

  3. 탐색 창에서 데이터 세트를 선택한 다음 대량 데이터를 가져올 데이터 세트를 선택합니다.

  4. 데이터세트 가져오기 작업에서 데이터세트 가져오기 작업 생성을 선택합니다.

  5. 데이터세트 가져오기 작업이 처음인 경우 데이터 가져오기 소스에서 S3에서 데이터 가져오기를 선택합니다.

  6. 데이터세트 가져오기 작업 이름의 경우, 가져오기 작업의 이름을 지정합니다.

  7. 이미 대량 데이터를 가져온 경우 가져오기 모드에서 데이터세트 업데이트 방법을 선택합니다. 기존 데이터 바꾸기 또는 기존 데이터에 추가 선택합니다. 데이터세트에 대한 첫 번째 작업인 경우에는 이 옵션이 나타나지 않습니다. 자세한 내용은 훈련 후 데이터셋의 데이터 업데이트 단원을 참조하십시오.

  8. 데이터 가져오기 원본에서 데이터 위치에 대해 Amazon S3의 데이터 파일 저장 위치를 지정합니다. 다음 구문을 사용합니다.

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

    CSV파일이 Amazon S3 버킷의 폴더에 있고 하나의 데이터 세트 가져오기 작업으로 데이터 세트에 여러 CSV 파일을 업로드하려는 경우 폴더 경로를 지정할 수 있습니다. Personalize는 폴더의 첫 번째 수준에 있는 파일만 사용하며, 모든 하위 폴더의 데이터는 사용하지 않습니다. 폴더 이름 뒤에 /가 있는 다음 구문을 사용하세요.

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

  9. IAM역할에서 새 역할을 생성하거나 기존 역할을 사용할 수 있습니다. 필수 조건을 완료한 경우 기존 서비스 역할 사용을 선택하고 Amazon IAM Personalize를 위한 역할 생성에서 생성한 역할을 지정합니다.

  10. 지표 속성을 생성하고 이 작업과 관련된 지표를 S3에 게시하려는 경우, S3에 이벤트 지표 게시에서 이 가져오기 작업에 대한 지표 게시 를 선택합니다.

    아직 생성하지 않은 상태에서 이 작업에 대한 지표를 게시하려는 경우, 지표 속성 생성하기를 선택하여 다른 탭에서 새 지표를 생성합니다. 지표 속성을 생성한 후에 이 화면으로 돌아와 가져오기 작업 생성하기를 완료할 수 있습니다.

    지표 속성에 대한 자세한 정보는 Amazon Personalize 권장 사항의 영향 측정을(를) 참조하세요.

  11. 태그의 경우, 원하는 태그를 추가할 수 있습니다. Personalize 리소스 태그 지정에 대한 자세한 내용은 Personalize 리소스에 태그 지정단원을 참조하세요.

  12. Start import(가져오기 시작)를 선택합니다. 데이터 가져오기 작업이 시작되고 대시보드 개요 페이지가 표시됩니다. 상태가 로 ACTIVE 표시되면 데이터세트 가져오기가 완료된 것입니다. Amazon Personalize 데이터세트로 데이터를 가져온 후 데이터를 분석하고, Amazon S3 버킷으로 내보내고, 업데이트하거나, 데이터세트를 삭제하여 삭제할 수 있습니다.

    데이터를 가져온 후에는 도메인 추천 도구 (도메인 데이터 세트 그룹용) 또는 사용자 지정 리소스 (사용자 지정 데이터 세트 그룹용) 를 생성하여 데이터에 대한 모델을 학습할 준비가 된 것입니다. 이들 리소스를 사용하여 추천을 생성할 수 있습니다. 자세한 내용은 Amazon Personalize의 도메인 추천자 또는 Amazon Personalize 모델 교육 및 배포를 위한 사용자 지정 리소스을 참조하세요.

데이터세트 가져오기 작업 생성 (AWS CLI)

중요

기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 가져오기 모드를 변경하여 데이터를 추가할 수 있습니다.

를 사용하여 대량 레코드를 가져오려면 AWS CLICreateDatasetImportJob명령어를 사용하여 데이터세트 가져오기 작업을 만드세요. 이전에 데이터세트에 대한 데이터세트 가져오기 작업을 생성한 경우, 가져오기 모드 파라미터를 사용하여 새 데이터를 추가하는 방법을 지정할 수 있습니다. 기존 대량 데이터 업데이트에 대한 자세한 내용은훈련 후 데이터셋의 데이터 업데이트 단원을 참조하세요.

대량 레코드 가져오기 (AWS CLI)
  1. 다음 명령을 실행하여 데이터세트 가져오기 작업을 생성합니다. 데이터 세트의 Amazon 리소스 이름 (ARN) 을 제공하고 교육 데이터를 저장한 Amazon S3 버킷의 경로를 지정합니다. 경로에 맞추어 다음 구문을 사용합니다.

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

    CSV파일이 Amazon S3 버킷의 폴더에 있고 하나의 데이터 세트 가져오기 작업으로 데이터 세트에 여러 CSV 파일을 업로드하려는 경우 폴더 경로를 지정할 수 있습니다. Personalize는 폴더의 첫 번째 수준에 있는 파일만 사용하며, 모든 하위 폴더의 데이터는 사용하지 않습니다. 폴더 이름 뒤에 /가 있는 다음 구문을 사용하세요.

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

    다음을 제공하십시오. AWS Identity and Access Management (IAM) 역할 (ARN) 에서 Amazon IAM Personalize를 위한 역할 생성 생성한 Amazon 리소스 이름 () 기본 설정 import-modeFULL입니다. 자세한 정보는 훈련 후 데이터셋의 데이터 업데이트 섹션을 참조하세요. 이 작업에 대한 자세한 내용은 CreateDatasetImportJob단원을 참조하세요.

    aws personalize create-dataset-import-job \ --job-name dataset import job name \ --dataset-arn dataset arn \ --data-source dataLocation=s3://amzn-s3-demo-bucket/filename \ --role-arn roleArn \ --import-mode FULL

    다음 예와 같이 데이터세트 가져오기 ARN 작업이 표시됩니다.

    { "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/DatasetImportJobName" }
  2. describe-dataset-import-job 명령을 사용하여 상태를 확인합니다. 이전 단계에서 ARN 반환된 데이터세트 가져오기 작업을 제공합니다. 이 작업에 대한 자세한 내용은 DescribeDatasetImportJob단원을 참조하세요.

    aws personalize describe-dataset-import-job \ --dataset-import-job-arn dataset import job arn

    상태를 포함하여 데이터세트 가져오기 작업의 속성이 표시됩니다. 처음에는 status 다음과 같이 표시됩니다. 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://amzn-s3-demo-bucket/ratings.csv" }, "importMode": "FULL", "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }

    상태가 로 ACTIVE 표시되면 데이터세트 가져오기가 완료된 것입니다. Amazon Personalize 데이터세트로 데이터를 가져온 후 데이터를 분석하고, Amazon S3 버킷으로 내보내고, 업데이트하거나, 데이터세트를 삭제하여 삭제할 수 있습니다.

    데이터를 가져온 후에는 도메인 추천 도구 (도메인 데이터 세트 그룹용) 또는 사용자 지정 리소스 (사용자 지정 데이터 세트 그룹용) 를 생성하여 데이터에 대한 모델을 학습할 준비가 된 것입니다. 이들 리소스를 사용하여 추천을 생성할 수 있습니다. 자세한 내용은 Amazon Personalize의 도메인 추천자 또는 Amazon Personalize 모델 교육 및 배포를 위한 사용자 지정 리소스을 참조하세요.

데이터세트 가져오기 작업 생성 (AWS SDKs)

중요

기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 가져오기 모드를 변경하여 데이터를 추가할 수 있습니다.

데이터를 가져오려면 CreateDatasetImportJob작업과 함께 데이터세트 가져오기 작업을 생성하세요. 다음 코드 예는 데이터세트 가져오기 작업을 생성하는 방법을 보여줍니다.

작업 이름을 지정하고, 데이터 세트의 Amazon 리소스 이름 (ARN) 을 설정하고, dataLocation 를 교육 데이터를 저장한 Amazon S3 버킷의 경로로 설정합니다. datasetArn 경로에 맞추어 다음 구문을 사용합니다.

s3:/amzn-s3-demo-bucket/<folder path>/<CSV filename>.csv

CSV파일이 Amazon S3 버킷의 폴더에 있고 하나의 데이터 세트 가져오기 작업으로 데이터 세트에 여러 CSV 파일을 업로드하려는 경우 폴더 경로를 지정할 수 있습니다. Personalize는 폴더의 첫 번째 수준에 있는 파일만 사용하며, 모든 하위 폴더의 데이터는 사용하지 않습니다. 폴더 이름 뒤에 /가 있는 다음 구문을 사용하세요.

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

roleArn 경우 다음을 지정하십시오. AWS Identity and Access Management (IAM) Amazon Personalize에 S3 버킷에 액세스할 수 있는 권한을 부여하는 역할입니다. Amazon IAM Personalize를 위한 역할 생성을 참조하세요. 기본 설정 importModeFULL입니다. 이렇게 하면 데이터세트의 모든 대량 데이터가 대체됩니다. 데이터를 추가하려면 로 설정합니다. INCREMENTAL 기존 대량 데이터 업데이트에 대한 자세한 내용은훈련 후 데이터셋의 데이터 업데이트 단원을 참조하세요.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_import_job( jobName = 'YourImportJob', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://amzn-s3-demo-bucket/filename.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://amzn-s3-demo-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();

DescribeDatasetImportJob 작업의 응답에는 작업의 상태가 포함됩니다.

데이터를 사용하여 모델을 학습시키려면 상태가 로 ACTIVE 변경될 때까지 기다려야 합니다.

상태가 로 ACTIVE 표시되면 데이터세트 가져오기가 완료된 것입니다. Amazon Personalize 데이터세트로 데이터를 가져온 후 데이터를 분석하고, Amazon S3 버킷으로 내보내고, 업데이트하거나, 데이터세트를 삭제하여 삭제할 수 있습니다.

데이터를 가져온 후에는 도메인 추천 도구 (도메인 데이터 세트 그룹용) 또는 사용자 지정 리소스 (사용자 지정 데이터 세트 그룹용) 를 생성하여 데이터에 대한 모델을 학습할 준비가 된 것입니다. 이들 리소스를 사용하여 추천을 생성할 수 있습니다. 자세한 내용은 Amazon Personalize의 도메인 추천자 또는 Amazon Personalize 모델 교육 및 배포를 위한 사용자 지정 리소스을 참조하세요.