

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 個別匯入使用者
<a name="importing-users"></a>

 完成[建立結構描述和資料集](data-prep-creating-datasets.md)建立使用者資料集後，您可以個別將一或多個新使用者匯入資料集。個別匯入使用者可讓您在目錄成長時，透過小批次匯入，讓使用者資料集保持最新狀態。您一次最多可以匯入 10 個使用者。如果您有大量新使用者，建議您先大量匯入資料，然後視需要個別匯入使用者資料。請參閱 [使用資料集匯入任務將大量資料匯入 Amazon Personalize](bulk-data-import-step.md)。

您可以使用 Amazon Personalize 主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs來匯入使用者。如果您匯入的使用者與已在使用者資料集中的使用者`userId`相同，Amazon Personalize 會將使用者取代為新的使用者。您一次最多可以匯入 10 個使用者。

如需有關 Amazon Personalize 如何更新新記錄篩選條件以及新記錄如何影響建議的資訊，請參閱 [將個別記錄匯入 Amazon Personalize 資料集](incremental-data-updates.md)。

**Topics**
+ [個別匯入使用者 （主控台）](#importing-users-console)
+ [個別匯入使用者 (AWS CLI)](#importing-users-cli)
+ [個別匯入使用者 (AWS SDKs)](#importing-users-sdk)

## 個別匯入使用者 （主控台）
<a name="importing-users-console"></a>

您一次最多可以匯入 10 個使用者。此程序假設您已建立使用者資料集。如需建立資料集的資訊，請參閱 [建立結構描述和資料集](data-prep-creating-datasets.md)。

**個別匯入使用者 （主控台）**

1. 在 [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)：// 開啟 Amazon Personalize 主控台並登入您的帳戶。

1. 在**資料集群組**頁面上，選擇具有您要匯入使用者之使用者資料集的資料集群組。

1. 在導覽窗格中，選擇**資料集**。

1. 在**資料集**頁面上，選擇使用者資料集。

1. 在資料集詳細資訊頁面的右上角，選擇**修改資料集**，然後選擇**建立記錄**。

1. 在**建立使用者記錄 (Create user record) **頁面上，針對記錄輸入，以 JSON 格式輸入使用者詳細資訊。使用者的欄位名稱和值必須符合您在建立使用者資料集時所使用的結構描述。Amazon Personalize 提供 JSON 範本，其中包含此結構描述中的欄位名稱和資料類型。

1. 選擇**建立記錄 (s)**。在**回應**中，會列出匯入的結果，並顯示成功或失敗訊息。

## 個別匯入使用者 (AWS CLI)
<a name="importing-users-cli"></a>

使用 [PutUsers](API_UBS_PutUsers.md)操作將一或多個使用者新增至您的使用者資料集。您最多可以使用單一`PutUsers`呼叫匯入 10 個使用者。本節假設您已建立 使用者資料集。如需建立資料集的詳細資訊，請參閱 [建立結構描述和資料集](data-prep-creating-datasets.md)。

使用下列`put-users`命令，透過 新增一或多個使用者 AWS CLI。`dataset arn` 以資料集的 Amazon Resource Name (ARN) 取代 ，並以使用者 ID `user Id`取代 。如果具有相同的使用者`userId`已存在於您的使用者資料集，Amazon Personalize 會將其取代為新的資料集。

對於 `properties`，對於使用者資料集中的每個欄位，將 取代`propertyName`為駝色案例中結構描述中的欄位名稱。例如，GENDER 為 `gender`，而 MEMBERSHIP\_TYPE 為 `membershipType`。`user 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}}\"}" 
    }]'
```

## 個別匯入使用者 (AWS SDKs)
<a name="importing-users-sdk"></a>

使用 [PutUsers](API_UBS_PutUsers.md)操作將一或多個使用者新增至您的使用者資料集。如果具有相同的使用者`userId`已存在於您的使用者資料集，Amazon Personalize 會將其取代為新的資料集。您最多可以使用單一`PutUsers`呼叫匯入 10 個使用者。本節假設您已建立使用者資料集。如需建立資料集的詳細資訊，請參閱 [建立結構描述和資料集](data-prep-creating-datasets.md)。

 下列程式碼說明如何將一或多個使用者新增至您的使用者資料集。對於每個屬性名稱參數，請以駱駝案例從您的結構描述傳遞欄位名稱。例如，GENDER 為 `gender`，而 MEMBERSHIP\_TYPE 為 `membershipType`。對於每個屬性值參數，傳遞使用者的資料。

對於分類字串資料，若要包含單一屬性的多個類別，請使用管道 () 分隔每個類別`|`。例如 `"Premium class|Legacy Member"`。

------
#### [ SDK for Python (Boto3) ]

```
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 ]

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

------
#### [ SDK for JavaScript v3 ]

```
import {
  PutUsersCommand,
  PersonalizeEventsClient,
} from "@aws-sdk/client-personalize-events";

const personalizeEventsClient = new PersonalizeEventsClient({
  region: "{{REGION}}",
});

// set the put users parameters
var putUsersParam = {
  datasetArn:
    "{{DATASET ARN}}",
  users: [
    {
      userId: "{{userId}}",
      properties: '{"{{column1Name}}": "{{value}}", "{{column2Name}}": "{{value}}"}',
    },
    {
      userId: "{{userId}}",
      properties: '{"{{column1Name}}": "{{value}}", "{{column2Name}}": "{{value}}"}',
    },
  ],
};
export const run = async () => {
  try {
    const response = await personalizeEventsClient.send(
      new PutUsersCommand(putUsersParam)
    );
    console.log("Success!", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------