

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

# 데이터세트 가져오기 작업을 사용하여 대량 데이터를 Amazon Personalize로 가져오기
<a name="bulk-data-import-step"></a>

입력 데이터를 포맷하고(참조[Amazon Personalize를 위한 학습 데이터 준비](preparing-training-data.md)) [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)를 완료한 후에는 데이터세트 가져오기 작업으로 대량 데이터를 가져올 준비가 되었습니다. *데이터세트 가져오기 작업*은 Amazon S3 버킷의 데이터로 데이터세트를 채우는 대량 가져오기 도구입니다.

 Amazon S3에서 데이터를 가져오려면 CSV 파일이 Amazon S3 버킷에 있어야 하며 Amazon Personalize에 Amazon S3 리소스에 액세스할 수 있는 권한을 부여해야 합니다.
+ Amazon S3로 파일 업로드에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 [드래그 앤 드롭을 사용하여 파일 및 폴더 업로드](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) 섹션을 참조하세요.
+ Amazon S3의 파일에 Amazon Personalize 액세스 권한을 부여하는 것과 관련된 자세한 내용은 [Personalize에 S3 리소스에 대한 액세스 권한 부여](granting-personalize-s3-access.md) 섹션을 참조하세요.

   암호화에 AWS Key Management Service (AWS KMS)를 사용하는 경우 Personalize 및 Personalize IAM 서비스 역할에 키를 사용할 수 있는 권한을 부여해야 합니다. 자세한 내용은 [Personalize에 AWS KMS 키 사용 권한 부여](granting-personalize-key-access.md) 단원을 참조하십시오.

Personalize 콘솔, AWS Command Line Interface (AWS CLI) 또는 AWS SDKs. 이전에 데이터세트에 대한 데이터세트 가져오기 작업을 생성한 경우, 새 데이터세트 가져오기 작업을 사용하여 기존 대량 데이터에 추가하거나 기존 대량 데이터를 대체할 수 있습니다. 자세한 내용은 [학습 후 데이 세트의 데이터 업데이트](updating-datasets.md) 단원을 참조하십시오.

데이터세트에 이미 있는 레코드와 ID가 동일한 항목, 사용자, 또는 작업을 가져오는 경우, Amazon Personalize는 이를 새 레코드로 대체합니다. 타임스탬프와 속성이 정확히 동일한 두 항목 상호 작용 이벤트나 작업 상호 작용 이벤트를 기록할 경우, Amazon Personalize는 이벤트 중 하나만 보관합니다.

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



**Topics**
+ [가져오기 모드](#bulk-import-modes)
+ [데이터세트 가져오기 작업 생성(콘솔)](#bulk-data-import-console)
+ [데이터세트 가져오기 작업 생성(AWS CLI)](#bulk-data-import-cli)
+ [데이터 세트 가져오기 작업(AWS SDKs) 생성](#python-import-ex)

## 가져오기 모드
<a name="bulk-import-modes"></a>

데이터세트에 대한 가져오기 작업을 이미 생성한 경우 Amazon Personalize가 새 레코드를 추가하는 방법을 구성할 수 있습니다. 이렇게 하려면 데이터세트 가져오기 작업에 대한 가져오기 모드를 지정합니다. 대량 레코드를 가져오지 않은 경우 콘솔에서 **가져오기 모드** 필드를 사용할 수 없으며 `CreateDatasetImportJob` API 작업에서 `FULL`만 지정할 수 있습니다. 기본값은 전체 교체입니다.
+ 데이터세트의 기존 대량 데이터를 모두 덮어쓰려면 Personalize 콘솔에서 **기존 데이터 바꾸기**를 선택하거나 [CreateDatasetImportJob](API_CreateDatasetImportJob.md)API 작업에서 `FULL`를 지정합니다. 이렇게 해도 실시간으로 기록된 이벤트를 포함하여 개별적으로 가져온 데이터는 교체되지 않습니다.
+ 데이터 세트의 기존 데이터에 레코드를 추가하려면 **기존 데이터에 추가**를 선택하거나 `CreateDatasetImportJob` API 작업에서 `INCREMENTAL`을 지정합니다. Personalize는 동일한 ID를 가진 모든 레코드를 새 레코드로 대체합니다.
**참고**  
데이터 세트 가져오기 작업과 함께 항목 상호 작용 데이터 세트 또는 작업 상호 작용 데이터 세트에 데이터를 추가하려면, 새 항목 상호 작용 또는 작업 상호 작용 레코드가 1,000개 이상 있어야 합니다.

## 데이터세트 가져오기 작업 생성(콘솔)
<a name="bulk-data-import-console"></a>

**중요**  
기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 [가져오기 모드](#bulk-import-modes)를 변경하여 데이터를 추가할 수 있습니다.

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

[스키마 및 데이터세트 생성](data-prep-creating-datasets.md)에서 데이터세트를 방금 생성한 경우, 5단계로 건너뛰세요.

**대량 레코드를 가져오려면(콘솔)**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

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

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

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

1. 데이터세트 가져오기 작업인 경우 **데이터 가져오기 소스**에 대해 **S3에서 데이터 가져오기**를 선택합니다.

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

1. 대량 데이터를 이미 가져온 경우 **가져오기 모드**에서 데이터세트를 업데이트하는 방법을 선택합니다. **기존 데이터 바꾸기** 또는 **기존 데이터에 추가** 선택합니다. 이 옵션은 데이터세트의 첫 번째 작업인 경우 표시되지 않습니다. 자세한 내용은 [학습 후 데이 세트의 데이터 업데이트](updating-datasets.md) 단원을 참조하십시오.

1. **데이터 가져오기 소스**에서 **데이터 위치**에 대해 Amazon S3에 데이터 파일을 저장할 위치를 지정합니다. 다음 구문을 사용합니다.

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

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

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

1. **IAM 역할**에서 새 역할 생성 또는 기존 역할 사용 중 하나를 선택합니다. 필수 조건을 완료한 경우 **기존 서비스 역할 사용**을 선택하고 [Personalize에 대한 IAM 역할 생성](set-up-required-permissions.md#set-up-create-role-with-permissions)에서 생성한 역할을 지정합니다.

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

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

   지표 속성에 대한 자세한 정보는 [Amazon Personalize 추천 사항의 영향 측정](measuring-recommendation-impact.md)을(를) 참조하세요.

1. **태그**의 경우, 원하는 태그를 추가할 수 있습니다. Personalize 리소스 태그 지정에 대한 자세한 내용은 [Personalize 리소스에 태그 지정](tagging-resources.md)단원을 참조하세요.

1. **Start import(가져오기 시작)**를 선택합니다. 데이터 가져오기 작업이 시작되고 **대시보드 개요** 페이지가 표시됩니다. 상태가 ACTIVE로 표시되면 데이터세트 가져오기가 완료된 것이고, Amazon Personalize 데이터세트로 데이터를 가져온 후에는, [데이터를 분석하고](analyzing-data.md), [Amazon S3 버킷으로 내보내고](export-data.md), [업데이트](updating-datasets.md)하거나, 데이터세트를 삭제함으로써 데이터를 [삭제](delete-dataset.md)할 수 있습니다.

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

## 데이터세트 가져오기 작업 생성(AWS CLI)
<a name="bulk-data-import-cli"></a>

**중요**  
기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 [가져오기 모드](#bulk-import-modes)를 변경하여 데이터를 추가할 수 있습니다.

 를 사용하여 대량 레코드를 가져오려면 [CreateDatasetImportJob](API_CreateDatasetImportJob.md) 명령을 사용하여 데이터 세트 가져오기 작업을 AWS CLI생성합니다. 이전에 데이터세트에 대한 데이터세트 가져오기 작업을 생성한 경우, 가져오기 모드 파라미터를 사용하여 새 데이터를 추가하는 방법을 지정할 수 있습니다. 기존 대량 데이터 업데이트에 대한 자세한 내용은[학습 후 데이 세트의 데이터 업데이트](updating-datasets.md) 단원을 참조하세요.

**대량 레코드 가져오기(AWS CLI)**

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

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

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

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

   에서 생성한 AWS Identity and Access Management (IAM) 역할 Amazon 리소스 이름(ARN)을 제공합니다[Personalize에 대한 IAM 역할 생성](set-up-required-permissions.md#set-up-create-role-with-permissions). 기본 설정 `import-mode`는 `FULL`입니다. 자세한 내용은 [학습 후 데이 세트의 데이터 업데이트](updating-datasets.md)을 참조하세요. 이 작업에 대한 자세한 내용은 [CreateDatasetImportJob](API_CreateDatasetImportJob.md)단원을 참조하세요.

   ```
   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"
   }
   ```

1. `describe-dataset-import-job` 명령을 사용하여 상태를 확인합니다. 이전 단계에서 반환된 데이터세트 가져오기 작업 ARN을 제공합니다. 이 작업에 대한 자세한 내용은 [DescribeDatasetImportJob](API_DescribeDatasetImportJob.md)단원을 참조하세요.

   ```
   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 데이터세트로 데이터를 가져온 후에는, [데이터를 분석하고](analyzing-data.md), [Amazon S3 버킷으로 내보내고](export-data.md), [업데이트](updating-datasets.md)하거나, 데이터세트를 삭제함으로써 데이터를 [삭제](delete-dataset.md)할 수 있습니다.

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

## 데이터 세트 가져오기 작업(AWS SDKs) 생성
<a name="python-import-ex"></a>

**중요**  
기본 설정으로 데이터세트 가져오기 작업은 대량으로 가져온 데이터세트의 기존 데이터를 대체합니다. 이미 대량 데이터를 가져온 경우 작업의 [가져오기 모드](#bulk-import-modes)를 변경하여 데이터를 추가할 수 있습니다.

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

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

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

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

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

의 경우 Personalize에 S3 버킷에 액세스할 수 있는 권한을 부여하는 AWS Identity and Access Management (IAM) 역할을 `roleArn`지정합니다. [Personalize에 대한 IAM 역할 생성](set-up-required-permissions.md#set-up-create-role-with-permissions)을(를) 참조하세요. 기본 설정 `importMode`는 `FULL`입니다. 이렇게 하면 데이터세트의 모든 대량 데이터가 대체됩니다. 데이터를 추가하려면 `INCREMENTAL`로 설정합니다. 기존 대량 데이터 업데이트에 대한 자세한 내용은[학습 후 데이 세트의 데이터 업데이트](updating-datasets.md) 단원을 참조하세요.

------
#### [ 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](API_DescribeDatasetImportJob.md) 작업의 응답에는 작업의 상태가 포함됩니다.

데이터를 사용하여 모델을 교육할 수 있기 전에 상태가 ACTIVE로 변경될 때까지 기다려야 합니다.

상태가 ACTIVE로 표시되면 데이터세트 가져오기가 완료된 것이고, Amazon Personalize 데이터세트로 데이터를 가져온 후에는, [데이터를 분석하고](analyzing-data.md), [Amazon S3 버킷으로 내보내고](export-data.md), [업데이트](updating-datasets.md)하거나, 데이터세트를 삭제함으로써 데이터를 [삭제](delete-dataset.md)할 수 있습니다.

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