

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

# 개별적으로 항목 가져오기
<a name="importing-items"></a>

[스키마 및 데이터세트 생성](data-prep-creating-datasets.md)을 완료하여 항목 데이터세트를 생성한 후에는 하나 이상의 새 항목을 데이터세트로 개별적으로 가져올 수 있습니다. 항목을 개별적으로 가져오면 카탈로그가 확장됨에 따라 소량의 배치 가져오기를 통해 항목 데이터세트를 최신 상태로 유지할 수 있습니다. 한 번에 최대 10개의 항목을 가져올 수 있습니다. 다량의 새 항목이 있는 경우 먼저 데이터를 대량으로 가져온 다음 필요에 따라 항목 데이터를 개별적으로 가져오는 것이 좋습니다. [데이터세트 가져오기 작업을 사용하여 대량 데이터를 Amazon Personalize로 가져오기](bulk-data-import-step.md)을(를) 참조하세요.

Personalize 콘솔, AWS Command Line Interface (AWS CLI) 또는 AWS SDKs를 사용하여 항목을 가져올 수 있습니다. 항목 데이터세트에 이미 있는 항목과 동일한 `itemId`을 가져오는 경우, Personalize는 새 항목으로 대체합니다.

 Personalize가 새 레코드에 대한 필터를 업데이트하는 방법 및 새 레코드가 추천에 미치는 영향에 대한 자세한 내용은 [개별 레코드를 Amazon Personalize 데이터세트로 가져오기](incremental-data-updates.md)단원을 참조하세요.

**Topics**
+ [개별적으로 항목 가져오기(콘솔)](#importing-items-console)
+ [개별적으로 항목 가져오기(AWS CLI)](#importing-items-cli)
+ [개별적으로 항목 가져오기(AWS SDKs)](#importing-items-cli-sdk)

## 개별적으로 항목 가져오기(콘솔)
<a name="importing-items-console"></a>

한 번에 최대 10개의 항목을 항목 데이터세트로 가져올 수 있습니다. 이 절차에서는 항목 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

**항목을 개별적으로 가져오려면(콘솔)**

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

1. **데이터세트 그룹** 페이지에서 항목을 가져오려는 항목 데이터세트가 포함된 데이터세트 그룹을 선택합니다.

1. 탐색 창에서 **데이터세트**를 선택합니다.

1. **데이터세트** 페이지에서, 항목 데이터세트를 선택합니다.

1. 데이터세트 세부 정보 페이지의 오른쪽 상단에서 **데이터세트 수정**을 선택한 후 **레코드 생성**을 선택합니다.

1. **항목 레코드 생성** 페이지에서 **레코드 입력**에 항목 세부 정보를 JSON 형식으로 입력합니다. 항목의 필드 이름과 값은 항목 데이터세트를 생성할 때 사용한 스키마와 일치해야 합니다. Personalize는 이 스키마의 필드 이름 및 데이터 유형이 포함된 JSON 템플릿을 제공합니다.

1. **레코드 생성**을 선택합니다. **응답**에서 가져오기 결과가 나열되고 성공 또는 실패 메시지가 표시됩니다.

## 개별적으로 항목 가져오기(AWS CLI)
<a name="importing-items-cli"></a>

[PutItems](API_UBS_PutItems.md) 작업을 사용하여 항목 데이터세트에 항목을 하나 이상 추가합니다. 한 번의 `PutItems`호출로 최대 10개의 항목을 가져올 수 있습니다. 이 단원에서는 항목 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

다음 `put-items`명령을 사용하여 AWS CLI로 항목을 하나 이상 추가할 수 있습니다. `dataset arn`을 데이터세트의 리소스 이름(ARN)으로 그리고 `item Id`를 항목 ID로 바꿉니다. 동일한 `itemId`이 있는 항목이 항목 데이터세트에 이미 있는 경우 Personalize는 새 항목으로 대체합니다.

예를 들어 `properties`의 경우 항목 데이터세트의 각 필드에 대해 `propertyName`를 스키마의 필드 이름(낙타 대문자 형식)으로 바꿉니다. 예를 들어 GENRES는 `genres`이 되고 CREATION\$1TIMESTAMP는 creationTimestamp가 될 것입니다. `item data`을 해당 항목의 데이터로 대체합니다. `CREATION_TIMESTAMP`데이터는 [Unix epoch 시간 형식](interactions-datasets.md#timestamp-data)이고 초 단위여야 합니다. 범주형 문자열 데이터의 경우 단일 속성에 여러 범주를 포함시키려면 파이프(`|`) 로 각 범주를 구분합니다. 예: `\"Horror|Action\"`.

```
aws personalize-events put-items \
  --dataset-arn dataset arn \
  --items '[{
      "itemId": "item Id", 
      "properties": "{\"propertyName\": "\item data\"}" 
    }, 
    {
      "itemId": "item Id", 
      "properties": "{\"propertyName\": "\item data\"}" 
    }]'
```

## 개별적으로 항목 가져오기(AWS SDKs)
<a name="importing-items-cli-sdk"></a>

[PutItems](API_UBS_PutItems.md) 작업을 사용하여 항목 데이터세트에 항목을 하나 이상 추가합니다. 한 번의 `PutItems`호출로 최대 10개의 항목을 가져올 수 있습니다. 동일한 `itemId`이 있는 항목이 항목 데이터세트에 이미 있는 경우 Personalize는 새 항목으로 대체합니다. 이 단원에서는 항목 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

 다음 코드는 항목 데이터세트에 항목을 하나 이상 추가하는 방법을 보여줍니다. 각 속성 이름 파라미터에 대해 스키마의 필드 이름을 낙타 대문자로 표기하여 전달합니다. 예를 들어 GENRES는 `genres`이 되고 CREATION\$1TIMESTAMP는 `creationTimestamp`가 될 것입니다. 각 속성 값 파라미터에 대해 항목의 데이터를 전달합니다. `CREATION_TIMESTAMP`데이터는 [Unix epoch 시간 형식](interactions-datasets.md#timestamp-data)이고 초 단위여야 합니다.

범주형 문자열 데이터의 경우 단일 속성에 여러 범주를 포함시키려면 파이프(`|`)로 각 범주를 구분합니다. 예: `"Horror|Action"`.

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

```
import boto3

personalize_events = boto3.client(service_name='personalize-events')

personalize_events.put_items(
    datasetArn = 'dataset arn',
    items = [{
      'itemId': 'item ID',
      'properties': "{\"propertyName\": \"item data\"}"   
      },
      {
      'itemId': 'item ID',
      'properties': "{\"propertyName\": \"item data\"}"   
      }]
)
```

------
#### [ SDK for Java 2.x ]

```
public static int putItems(PersonalizeEventsClient personalizeEventsClient,
                           String datasetArn,
                           String item1Id,
                           String item1PropertyName,
                           String item1PropertyValue,
                           String item2Id,
                           String item2PropertyName,
                           String item2PropertyValue) {

    int responseCode = 0;
    ArrayList<Item> items = new ArrayList<>();

    try {
        Item item1 = Item.builder()
                .itemId(item1Id)
                .properties(String.format("{\"%1$s\": \"%2$s\"}",
                        item1PropertyName, item1PropertyValue))
                .build();

        items.add(item1);

        Item item2 = Item.builder()
                .itemId(item2Id)
                .properties(String.format("{\"%1$s\": \"%2$s\"}",
                        item2PropertyName, item2PropertyValue))
                .build();

        items.add(item2);

        PutItemsRequest putItemsRequest = PutItemsRequest.builder()
                .datasetArn(datasetArn)
                .items(items)
                .build();

        responseCode = personalizeEventsClient.putItems(putItemsRequest).sdkHttpResponse().statusCode();
        System.out.println("Response code: " + responseCode);
        return responseCode;

    } catch (PersonalizeEventsException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
    return responseCode;
    }
```

------
#### [ SDK for JavaScript v3 ]

```
import {
  PutItemsCommand,
  PersonalizeEventsClient,
} from "@aws-sdk/client-personalize-events";

const personalizeEventsClient = new PersonalizeEventsClient({
  region: "REGION",
});

// set the put items parameters
var putItemsParam = {
  datasetArn:
    "DATASET ARN",
  items: [
    {
      itemId: "itemId", 
      properties: '{"column1Name": "value", "column2Name": "value"}',
    },
    {
      itemId: "itemId",
      properties: '{"column1Name": "value", "column2Name": "value"}',
    },
  ],
};
export const run = async () => {
  try {
    const response = await personalizeEventsClient.send(
      new PutItemsCommand(putItemsParam)
    );
    console.log("Success!", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------