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

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

以增量方式导入用户

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

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

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

以增量方式导入用户(控制台)

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

以增量方式导入用户 (控制台)

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

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

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

  4. 在存储库的数据集页面上,选择 Users 数据集。

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

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

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

以增量方式导入用户 (Amazon CLI)

向用户数据集添加一个或多个用户PutUsersoperation. 您最多可以导入 10 个用户,使用单个PutUsers调用。本部分假定您已创建一个用户数据集。有关创建数据集的信息,请参阅第 2 步:创建数据集和方案

请使用以下put-users命令添加一个或多个用户Amazon CLI。Replacedataset arn替换为您的数据集的 Amazon 资源名称 (ARN) 并使用user Id替换为用户的 ID。如果具有相同userId已存在于您的用户数据集中,Amazon Personalize 用新的数据集替换它。

适用于properties,对于 “用户” 数据集中的每个字段,将propertyName使用您的架构中的字段名称(在骆驼大小写中)。例如,性别将为gender和成员资格类型将是membershipType。Replaceuser data与用户的数据。对于类别字符串数据,要为单个属性包含多个类别,请使用管道(|)。例如 \"Premium Class|Legacy Member\".

aws personalize-events put-users \ --dataset-arn dataset arn \ --users '[{ "userId": "user Id", "properties": "{\"propertyName\": "\user data\"}" }, { "userId": "user Id", "properties": "{\"propertyName\": "\user data\"}" }]'

以增量方式导入用户 (Amazon开发工具包)

向用户数据集添加一个或多个用户PutUsersoperation. 您最多可以导入 10 个用户,使用单个PutUsers调用。本部分假定您已创建一个用户数据集。有关创建数据集的信息,请参阅第 2 步:创建数据集和方案

以下代码说明了如何将一个或多个用户添加到您的 User 数据集中使用Amazon SDK for Python (Boto3)或Amazon SDK for Java 2.x。

SDK for Python (Boto3)

Replacedataset arn替换为您的数据集的 Amazon 资源名称 (ARN) 并使用user Id替换为用户的 ID。如果具有相同userId已存在于您的用户数据集中,Amazon Personalize 用新的数据集替换它。

适用于properties,对于 “用户” 数据集中的每个字段,将propertyName使用您的架构中的字段名称(在骆驼大小写中)。例如,性别将为gender和成员资格类型将是membershipType。Replaceuser data与用户的数据。对于类别字符串数据,要为单个属性包含多个类别,使用管道分隔每个类别(|)。例如 \"Premium Class|Legacy Member\".

import boto3 personalize_events = boto3.client(service_name='personalize-events') personalize_events.put_users( datasetArn = 'dataset arn', users = [{ 'userId': 'user ID', 'properties': "{\"propertyName\": \"user data\"}" }, { 'userId': 'user ID', 'properties': "{\"propertyName\": \"user data\"}" }] )
SDK for Java 2.x

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

对于每个属性名称参数,以骆驼形式传递架构中的字段名称。例如,性别将为gender和成员资格类型将是membershipType。对于每个属性值参数,传递用户的数据。对于类别字符串数据,要为单个属性包含多个类别,使用管道分隔每个类别(|)。例如 "Premium class|Legacy Member".

public static int putUsers(PersonalizeEventsClient personalizeEventsClient, String datasetArn, String user1Id, String user1PropertyName, String user1PropertyValue, String user2Id, String user2PropertyName, String user2PropertyValue) { int responseCode = 0; ArrayList<User> users = new ArrayList<>(); try { User user1 = User.builder() .userId(user1Id) .properties(String.format("{\"%1$s\": \"%2$s\"}", user1PropertyName, user1PropertyValue)) .build(); users.add(user1); User user2 = User.builder() .userId(user2Id) .properties(String.format("{\"%1$s\": \"%2$s\"}", user2PropertyName, user2PropertyValue)) .build(); users.add(user2); PutUsersRequest putUsersRequest = PutUsersRequest.builder() .datasetArn(datasetArn) .build(); responseCode = personalizeEventsClient.putUsers(putUsersRequest).sdkHttpResponse().statusCode(); System.out.println("Response code: " + responseCode); return responseCode; } catch (PersonalizeEventsException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return responseCode; }