

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

# ユーザーの個別インポート
<a name="importing-users"></a>

 [スキーマとデータセットの作成](data-prep-creating-datasets.md) を完了してユーザーデータセットを作成したら、1 名以上の新しいユーザーをデータセットに個別的にインポートできます。ユーザーを個別インポートすると、カタログの拡大に合わせてユーザーデータセットを小さなバッチインポートで最新の状態に保つことができます。一度に最大 10 名のユーザーをインポートできます。新しいユーザーが大量にある場合は、最初にデータを一括でインポートしてから、必要に応じてユーザーデータを個別にインポートすることをお勧めします。「[データセットインポートジョブを使用してバルクデータを Amazon Personalize にインポートする](bulk-data-import-step.md)」を参照してください。

Amazon Personalize コンソール、 AWS Command Line Interface (AWS CLI)、または AWS SDKsを使用してユーザーをインポートできます。Users データセットに既に存在するユーザーと同じ `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. **[Dataset groups]** (データセットグループ) のページで、ユーザーのインポート先とする Users データセットを含むデータセットグループを選択します。

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

1. **[Datasets]** (データセット) のページで、[Users dataset] (ユーザーデータセット) を選択します。

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

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

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

## ユーザーを個別にインポートする (AWS CLI)
<a name="importing-users-cli"></a>

[PutUsers](API_UBS_PutUsers.md) 操作を使用して、1 名以上のユーザーを Users データセットに追加します。1 回の `PutUsers` コールで最大 10 名のユーザーをインポートできます。このセクションでは、Users データセットが既に作成されていることを前提としています。データセットの作成については、「[スキーマとデータセットの作成](data-prep-creating-datasets.md)」を参照してください。

次の `put-users` コマンドを使用して、 AWS CLIで 1 名以上のユーザーを追加します。`dataset arn` をデータセットの Amazon リソースネーム (ARN) に、`user Id` をユーザーの ID に、それぞれ置き換えます。同じ `userId` を持つユーザーが既に Users データセットにある場合、Amazon Personalize はそれを新しいものに置き換えます。

`properties` の場合、Users データセットの各フィールドについて、`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) 操作を使用して、1 名以上のユーザーを Users データセットに追加します。同じ `userId` を持つユーザーが既に Users データセットにある場合、Amazon Personalize はそれを新しいものに置き換えます。1 回の `PutUsers` コールで最大 10 名のユーザーをインポートできます。このセクションでは、Users データセットが既に作成されていることを前提としています。データセットの作成については、「[スキーマとデータセットの作成](data-prep-creating-datasets.md)」を参照してください。

 次のコードは、1 名以上のユーザーをユーザーデータセットに追加する方法を示しています。各プロパティ名パラメータについて、スキーマのフィールド名 (キャメルケース) を渡します。例えば、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();
```

------