以增量方式导入项目 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

以增量方式导入项目

创建 “项目” 数据集后,可以逐步将一个或多个新项目导入到数据集中。通过增量导入项目,您可以随着目录的增长而保持 Item 数据集的最新状态。如果您有大量新项目,我们建议您首先批量导入数据,然后根据需要以增量方式导入项目数据。请参阅 导入批量记录

您可使用 Amazon Personalize 控制台、Amazon Command Line Interface(Amazon CLI),或Amazon用于导入项目的开发工具包。如果您导入具有相同itemId作为项目数据集中已存在的项目,Amazon Personalize 会将其替换为新项目。您一次最多可以导入 10 个项目。

有关 Amazon Personalize 更新新记录筛选器以及新记录如何影响建议的信息,请参阅以增量方式导入记录

以增量方式导入项目(控制台)

一次最多可以将 10 个项目导入到 “项目” 数据集。此过程假定您已经创建了一个 Items 数据集。有关创建数据集的信息,请参阅第 2 步:创建数据集和方案

以增量方式导入项目 (控制台)

  1. 从打开 Amazon Personalize 控制台https://console.aws.amazon.com/personalize/home并登录您的账户。

  2. 在存储库的数据集组页面上,选择包含要将项目导入到的 “项目” 数据集的数据集组。

  3. 在导航窗格中,选择以下选择和数据集

  4. 在存储库的数据集页面上,选择 “项目” 数据集。

  5. 在数据集详细信息页面的右上角,选择修改数据集,然后选择和创建记录

  6. In创建项目记录页面,适用于记录输入下,以 JSON 格式输入项目详细信息。项目的字段名称和值必须与您在创建 Items 数据集时使用的架构匹配。Amazon Personalize 提供了包含此架构中字段名称和数据类型的 JSON 模板。

  7. 选择创建记录。In响应,则会列出导入的结果,并显示成功或失败消息。

以增量方式导入项目 (Amazon CLI)

将一个或多个项目添加到您的 Item 数据集中使用PutItemsoperation. 您可以导入多达 10 个项目,使用单个PutItems调用。此部分假定您已经创建了一个 Items 数据集。有关创建数据集的信息,请参阅第 2 步:创建数据集和方案

请使用以下put-items命令添加一个或多个项目Amazon CLI。Replacedataset arn替换为您的数据集的 Amazon 资源名称 (ARN) 并使用item Id与项目的 ID 一起使用。如果一个具有相同itemId已在您的商品数据集中,Amazon Personalize 将用新数据集替换它。

适用于properties,对于 “项目” 数据集中的每个字段,将propertyName使用您的架构中的字段名称(在骆驼大小写中)。例如,流派将为genres和创建时间戳将是创建时间戳。Replaceitem 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\"}" }]'

以增量方式导入项目 (Amazon开发工具包)

将一个或多个项目添加到您的 Item 数据集中使用PutItemsoperation. 您可以导入多达 10 个项目,使用单个PutItems调用。此部分假定您已经创建了一个 Items 数据集。有关创建数据集的信息,请参阅第 2 步:创建数据集和方案

以下代码显示如何将一个或多个项目添加到您的 Item 数据集中使用Amazon SDK for Python (Boto3)或Amazon SDK for Java 2.x。

SDK for Python (Boto3)

Replacedataset arn替换为您的数据集的 Amazon 资源名称 (ARN) 并使用item Id与项目的 ID 一起使用。如果一个具有相同itemId已在您的商品数据集中,Amazon Personalize 将用新数据集替换它。

适用于properties,对于 “项目” 数据集中的每个字段,将propertyName使用您的架构中的字段名称(在骆驼大小写中)。例如,流派将为genres和创建时间戳将是creationTimestamp。Replaceitem data与项目的数据一起使用。CREATION_TIMESTAMP数据必须位于Unix 时代时间格式和以秒为单位。对于类别字符串数据,要为单个属性包含多个类别,请使用管道(|)。例如 \"Horror|Action\".

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

以下putItems方法显示了如何使用适用于 Java 2.x 的 SDK 向 “项目” 数据集添加两个项目。如果一个具有相同itemId已在您的商品数据集中,Amazon Personalize 将用新数据集替换它。在此示例中,每个项目都有单一属性。如果您的 Item 数据集方案有其他字段,请修改代码以使用其他属性和值参数。

对于每个属性名称参数,以骆驼形式传递架构中的字段名称。例如,流派将为genres和创建时间戳将是creationTimestamp。对于每个属性值参数,传递项目的数据。CREATION_TIMESTAMP数据必须位于Unix 时代时间格式和以秒为单位。对于类别字符串数据,要为单个属性包含多个类别,请使用管道(|)。例如 "Horror|Action".

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; }