アイテムの個別のインポート - Amazon Personalize

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

アイテムの個別のインポート

データセットとスキーマの作成 を完了してアイテムデータセットを作成したら、1 つ以上の新しいアイテムをデータセットに個別にインポートできます。アイテムを個別にインポートすると、カタログの拡大に合わせてアイテムデータセットを最新の状態に保つことができます。一度に最大 10 個のアイテムをインポートできます。新しいアイテムが大量にある場合は、最初にデータを一括でインポートしてから、必要に応じてアイテムデータを個別にインポートすることをお勧めします。Amazon Personalize データセットへのデータの直接インポート を参照してください。

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

Amazon Personalize が新しいレコードのフィルターを更新する方法、および新しいレコードがレコメンデーションにどのように影響するかについては、「個々のレコードのインポート」を参照してください。

アイテムの個別インポート (コンソール)

一度に最大 10 個のアイテムを Items データセットにインポートできます。この手順は、アイテムデータセットが既に作成されていることを前提としています。データセットの作成については、「データセットとスキーマの作成」を参照してください。

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

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

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

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

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

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

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

アイテムを個別にインポートする (AWS CLI)

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

次の 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 エポック時間形式で、かつ、秒単位である必要があります。カテゴリ文字列データについて、単一のプロパティに複数のカテゴリを含めるには、各カテゴリをパイプ (|) で区切ります。例: \"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)

PutItems 操作を使用して、1 つ以上のアイテムを Items データセットに追加します。1 回の PutItems コールで最大 10 個のアイテムをインポートできます。同じ itemId を持つアイテムが既に Items データセットにある場合、Amazon Personalize はそれを新しいものに置き換えます。このセクションでは、Items データセットが既に作成されていることを前提としています。データセットの作成については、「データセットとスキーマの作成」を参照してください。

次のコードは、1 つ以上のアイテムをアイテムデータセットに追加する方法を示しています。各プロパティ名パラメータについて、スキーマのフィールド名 (キャメルケース) を渡します。例えば、GENRES は genres になり、CREATION_TIMESTAMP は creationTimestamp になります。各プロパティ値パラメータについて、アイテムのデータを渡します。CREATION_TIMESTAMP データは Unix エポック時間形式で、かつ、秒単位である必要があります。

カテゴリ文字列データについて、単一のプロパティに複数のカテゴリを含めるには、各カテゴリをパイプ (|) で区切ります。例: "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();