

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アイテムの個別のインポート
<a name="importing-items"></a>

[スキーマとデータセットの作成](data-prep-creating-datasets.md) を完了してアイテムデータセットを作成したら、1 つ以上の新しいアイテムをデータセットに個別にインポートできます。アイテムを個別にインポートすると、カタログの拡大に合わせてアイテムデータセットを最新の状態に保つことができます。一度に最大 10 個のアイテムをインポートできます。新しいアイテムが大量にある場合は、最初にデータを一括でインポートしてから、必要に応じてアイテムデータを個別にインポートすることをお勧めします。「[データセットインポートジョブを使用してバルクデータを Amazon Personalize にインポートする](bulk-data-import-step.md)」を参照してください。

Amazon Personalize コンソール、 AWS Command Line Interface (AWS CLI)、または AWS SDKsを使用して項目をインポートできます。Items データセットに既に存在するアイテムと同じ `itemId` でアイテムをインポートすると、Amazon Personalize はそのアイテムを新しいアイテムに置き換えます。

 Amazon 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 個のアイテムを Items データセットにインポートできます。この手順は、アイテムデータセットが既に作成されていることを前提としています。データセットの作成については、「[スキーマとデータセットの作成](data-prep-creating-datasets.md)」を参照してください。

**アイテムを個別にインポートするには (コンソール)**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) で Amazon Personalize コンソールを開き、アカウントにサインインします。

1. **[Dataset groups]** (データセットグループ) のページで、アイテムのインポート先とする Items データセットを含むデータセットグループを選択します。

1. ナビゲーションペインで、**[Datasets]** (データセット) を選択します。

1. **[Datasets]** (データセット) のページで、[Items dataset] (アイテムデータセット) を選択します。

1. データセットの詳細のページの右上で、**[Modify dataset]** (データセットを変更) を選択し、**[Create record]** (レコードを作成) を選択します。

1. **[Create item record(s)]** (アイテムレコードを作成) のページの **[Record input]** (レコードの入力) で、アイテムの詳細を JSON 形式で入力します。アイテムのフィールドの名前と値は、Items データセットを作成したときに使用したスキーマと一致する必要があります。Amazon Personalize は、このスキーマのフィールド名とデータ型を含む JSON テンプレートを提供します。

1. **[Create record(s)]** (レコードを作成) を選択します。**[レスポンス]** では、インポートの結果が一覧表示され、成功または失敗のメッセージが表示されます。

## アイテムを個別にインポートする (AWS CLI)
<a name="importing-items-cli"></a>

[PutItems](API_UBS_PutItems.md) 操作を使用して、1 つ以上のアイテムを Items データセットに追加します。1 回の `PutItems` コールで最大 10 個のアイテムをインポートできます。このセクションでは、Items データセットが既に作成されていることを前提としています。データセットの作成については、「[スキーマとデータセットの作成](data-prep-creating-datasets.md)」を参照してください。

次の `put-items` コマンドを使用して、 AWS CLIで 1 つ以上のアイテムを追加します。`dataset arn` をデータセットの Amazon リソースネーム (ARN) に、`item Id` をアイテムの ID に、それぞれ置き換えます。同じ `itemId` を持つアイテムが既に Items データセットにある場合、Amazon Personalize はそれを新しいものに置き換えます。

`properties` の場合、Items データセットの各フィールドについて、`propertyName` を、スキーマのフィールド名 (キャメルケース) に置き換えます。例えば、GENRES は `genres` になり、CREATION\_TIMESTAMP は creationTimestamp になります。`item data` をアイテムのデータに置き換えます。`CREATION_TIMESTAMP` データは [Unix エポック時間形式](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) 操作を使用して、1 つ以上のアイテムを Items データセットに追加します。1 回の `PutItems` コールで最大 10 個のアイテムをインポートできます。同じ `itemId` を持つアイテムが既に Items データセットにある場合、Amazon Personalize はそれを新しいものに置き換えます。このセクションでは、Items データセットが既に作成されていることを前提としています。データセットの作成については、「[スキーマとデータセットの作成](data-prep-creating-datasets.md)」を参照してください。

 次のコードは、1 つ以上のアイテムをアイテムデータセットに追加する方法を示しています。各プロパティ名パラメータについて、スキーマのフィールド名 (キャメルケース) を渡します。例えば、GENRES は `genres` になり、CREATION\_TIMESTAMP は `creationTimestamp` になります。各プロパティ値パラメータについて、アイテムのデータを渡します。`CREATION_TIMESTAMP` データは [Unix エポック時間形式](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();
```

------