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

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

以增量方式导入用户

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

适用于properties,对于用户数据集中的每个字段,将propertyName使用模式中的字段名称来自骆驼大小写。例如,性别将为gender而且会员资格 _TYPE 将是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开发工具包)

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

将一个或多个用户添加到 Users 数据集中,如何使用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而且会员资格 _TYPE 将是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方法演示了如何使用 SDK for Java 2.x 将两个用户添加到用户数据集中。如果具有相同的用户userId已在您的用户数据集中,Amazon Personalize 化将其替换为新数据集。在此示例中,每个用户均具有单一属性。如果用户数据集架构有其他字段,请修改代码以使用其他属性和值参数。

对于每个属性名参数,请以骆驼大小写传递模式中的字段名称。例如,性别将为gender而且会员资格 _TYPE 将是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; }