

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mendapatkan segmen pengguna dengan pekerjaan segmen batch
<a name="creating-batch-seg-job"></a>

 Jika Anda menggunakan resep USER\$1SEGMENTATION, Anda dapat membuat pekerjaan segmen batch untuk mendapatkan segmen pengguna dengan versi solusi Anda. Setiap segmen pengguna diurutkan dalam urutan menurun berdasarkan probabilitas bahwa setiap pengguna akan berinteraksi dengan item dalam inventaris Anda. Bergantung pada resepnya, data masukan Anda harus berupa daftar item ([Resep item-Affinity](item-affinity-recipe.md)) atau atribut item ([Item-Attribute-Affinity resep](item-attribute-affinity-recipe.md)) dalam format JSON. Anda dapat membuat pekerjaan segmen batch dengan konsol Amazon Personalize, AWS Command Line Interface (AWS CLI), atau. AWS SDKs 

 Saat membuat pekerjaan segmen batch, Anda menentukan jalur Amazon S3 ke lokasi input dan output Anda. Amazon S3 berbasis awalan. Jika Anda memberikan awalan untuk lokasi data input, Amazon Personalize menggunakan semua file yang cocok dengan awalan tersebut sebagai data input. Misalnya, jika Anda menyediakan `s3://amzn-s3-demo-bucket/folderName` dan bucket Anda juga memiliki folder dengan jalur`s3://amzn-s3-demo-bucket/folderName_test`, Amazon Personalize menggunakan semua file di kedua folder sebagai data input. Untuk hanya menggunakan file dalam folder tertentu sebagai data input, akhiri jalur Amazon S3 dengan pembatas awalan, seperti`/`: `s3://amzn-s3-demo-bucket/folderName/` Untuk informasi selengkapnya tentang cara Amazon S3 [mengatur objek, lihat Mengatur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/organizing-objects.html), mencantumkan, dan bekerja dengan objek Anda. 

**Topics**
+ [Membuat pekerjaan segmen batch (konsol)](#batch-segment-console)
+ [Membuat pekerjaan segmen batch (AWS CLI)](#batch-segment-cli)
+ [Membuat pekerjaan segmen batch (AWS SDKs)](#batch-segment-sdk)

## Membuat pekerjaan segmen batch (konsol)
<a name="batch-segment-console"></a>

 Setelah selesai[Mempersiapkan data input untuk rekomendasi batch](batch-data-upload.md), Anda siap untuk membuat pekerjaan segmen batch. Prosedur ini mengasumsikan bahwa Anda telah membuat solusi dan versi solusi (model terlatih) dengan resep USER\$1SEGEMENTATION.

**Untuk mendapatkan buat pekerjaan segmen batch (konsol)**

1. Buka konsol Amazon Personalize di [https://console.aws.amazon.com/personalize/rumah](https://console.aws.amazon.com/personalize/home) dan masuk ke akun Anda.

1. Pada halaman **grup Datasets, pilih grup** dataset Anda.

1. Pilih **pekerjaan segmen batch** di panel navigasi, lalu pilih **Buat pekerjaan segmen batch**.

1. Dalam **detail pekerjaan segmen batch**, untuk **nama pekerjaan segmen Batch**, tentukan nama untuk pekerjaan segmen batch Anda.

1. Untuk **Solusi**, pilih solusi dan kemudian pilih **ID versi Solusi** yang ingin Anda gunakan untuk menghasilkan rekomendasi. Anda dapat membuat pekerjaan segmen batch hanya jika Anda menggunakan resep USER\$1SEGEMENTATION. 

1. Untuk **Jumlah pengguna**, secara opsional menentukan jumlah pengguna Amazon Personalize menghasilkan untuk setiap segmen pengguna. Default-nya adalah 25. Maksimal 5 juta.

1.  Untuk **sumber Input**, tentukan jalur Amazon S3 ke file input Anda atau gunakan **Browse S3** untuk memilih bucket Amazon S3 Anda.

   Gunakan sintaks berikut: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json**

    Data masukan Anda harus dalam format yang benar untuk resep yang digunakan solusi Anda. Untuk contoh data masukan lihat[Contoh JSON masukan dan keluaran pekerjaan segmen Batch](prepare-input-data-user-segment.md#batch-segment-job-json-examples). 

1. Untuk **tujuan Output**, tentukan jalur ke lokasi keluaran Anda atau gunakan **Browse S3** untuk memilih bucket Amazon S3 Anda. Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda).

    Gunakan sintaks berikut: **s3://amzn-s3-demo-bucket/<output folder name>/** 

1. Untuk **peran IAM**, pilih salah satu dari berikut ini:
   +  Pilih **Buat dan gunakan peran layanan baru** dan masukkan **nama peran Layanan** untuk membuat peran baru, atau
   +  Jika Anda telah membuat peran dengan izin yang benar, pilih **Gunakan peran layanan yang ada dan pilih peran** IAM. 

    Peran yang Anda gunakan harus memiliki akses baca dan tulis ke bucket Amazon S3 masukan dan keluaran Anda masing-masing.

1.  Untuk **konfigurasi Filter** opsional pilih filter untuk menerapkan filter ke segmen pengguna. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input JSON Anda. Untuk informasi selengkapnya, lihat [Memberikan nilai filter di JSON masukan Anda](filter-batch.md#providing-filter-values). 

1. Untuk **Tag**, secara opsional tambahkan tag apa pun. Untuk informasi selengkapnya tentang menandai sumber daya Amazon Personalize, lihat. [Menandai Amazon Personalisasi sumber daya](tagging-resources.md)

1.  Pilih **Buat pekerjaan segmen batch**. Pembuatan pekerjaan segmen Batch dimulai dan halaman **pekerjaan segmen Batch** muncul dengan bagian **detail pekerjaan segmen Batch** ditampilkan.

1.  Jika status pekerjaan segmen batch berubah menjadi **Aktif**, Anda dapat mengambil output pekerjaan dari bucket Amazon S3 keluaran yang ditentukan. Nama file output akan menjadi format`input-name.out`. 

## Membuat pekerjaan segmen batch (AWS CLI)
<a name="batch-segment-cli"></a>

Setelah selesai[Mempersiapkan data input untuk rekomendasi batch](batch-data-upload.md), Anda siap untuk membuat pekerjaan segmen batch menggunakan `create-batch-segment-job` kode berikut. Tentukan nama pekerjaan, ganti `Solution version ARN` dengan Amazon Resource Name (ARN) versi solusi Anda, dan ganti `IAM service role ARN` dengan ARN peran layanan IAM yang Anda buat untuk Amazon Personalize selama penyiapan. Peran ini harus memiliki akses baca dan tulis ke bucket Amazon S3 masukan dan keluaran Anda masing-masing. Untuk `num-results` tentukan jumlah pengguna yang ingin diprediksi Amazon Personalize untuk setiap baris data masukan. Default-nya adalah 25. Maksimal 5 juta. Secara opsional menyediakan `filter-arn` untuk memfilter segmen pengguna. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input JSON Anda. Untuk informasi selengkapnya, lihat [Memfilter rekomendasi batch dan segmen pengguna (sumber daya khusus)](filter-batch.md). 

Ganti `S3 input path` dan `S3 output path` dengan jalur Amazon S3 ke file input dan lokasi output Anda. Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda). Gunakan sintaks berikut untuk lokasi input dan output: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** dan**s3://amzn-s3-demo-bucket/<output folder name>/**. 

```
aws personalize create-batch-segment-job \
                --job-name Job name \
                --solution-version-arn Solution version ARN \
                --num-results The number of predicted users \
                --filter-arn Filter ARN \
                --job-input s3DataSource={path=s3://S3 input path} \
                --job-output s3DataDestination={path=s3://S3 output path} \
                --role-arn IAM service role ARN
{
   "batchSegmentJobArn": "arn:aws:personalize:us-west-2:acct-id:batch-segment-job/batchSegmentJobName"
}
```

## Membuat pekerjaan segmen batch (AWS SDKs)
<a name="batch-segment-sdk"></a>

Setelah selesai[Mempersiapkan data input untuk rekomendasi batch](batch-data-upload.md), Anda siap untuk membuat pekerjaan segmen batch dengan `CreateBatchSegmentJob` operasi. Kode berikut menunjukkan cara membuat pekerjaan segmen batch. Beri nama pekerjaan, tentukan Nama Sumber Daya Amazon (ARN) versi solusi yang akan digunakan, tentukan ARN untuk peran Amazon Personalisasi IAM, dan tentukan jalur Amazon S3 ke file input dan lokasi keluaran Anda. Peran layanan IAM Anda harus memiliki akses baca dan tulis ke bucket Amazon S3 masukan dan keluaran Anda masing-masing. 

Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda). Gunakan sintaks berikut untuk lokasi input dan output: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** dan**s3://amzn-s3-demo-bucket/<output folder name>/**. 

 Untuk`numResults`, tentukan jumlah pengguna yang ingin diprediksi Amazon Personalize untuk setiap baris data input. Default-nya adalah 25. Maksimal 5 juta. Secara opsional menyediakan `filterArn` untuk memfilter segmen pengguna. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input JSON Anda. Untuk informasi selengkapnya, lihat [Memfilter rekomendasi batch dan segmen pengguna (sumber daya khusus)](filter-batch.md). 

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

```
import boto3

personalize_rec = boto3.client(service_name='personalize')

personalize_rec.create_batch_segment_job (
    solutionVersionArn = "Solution version ARN",
    jobName = "Job name",
    numResults = 25,
    filterArn = "Filter ARN",
    roleArn = "IAM service role ARN",
    jobInput = 
       {"s3DataSource": {"path": "s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json"}},
    jobOutput = 
       {"s3DataDestination": {"path": "s3://amzn-s3-demo-bucket/<output folder name>/"}}
)
```

------
#### [ SDK for Java 2.x ]

```
public static String createBatchSegmentJob(PersonalizeClient personalizeClient,
                                                        String solutionVersionArn,
                                                        String jobName,
                                                        String filterArn,
                                                        int numResults,
                                                        String s3InputDataSourcePath,
                                                        String s3DataDestinationPath,
                                                        String roleArn,
                                                        String explorationWeight,
                                                        String explorationItemAgeCutOff) {

  long waitInMilliseconds = 60 * 1000;
  String status;
  String batchSegmentJobArn;

  try {
      // Set up data input and output parameters.
      S3DataConfig inputSource = S3DataConfig.builder()
              .path(s3InputDataSourcePath)
              .build();
      S3DataConfig outputDestination = S3DataConfig.builder()
              .path(s3DataDestinationPath)
              .build();

      BatchSegmentJobInput jobInput = BatchSegmentJobInput.builder()
              .s3DataSource(inputSource)
              .build();
      BatchSegmentJobOutput jobOutputLocation = BatchSegmentJobOutput.builder()
              .s3DataDestination(outputDestination)
              .build();


      CreateBatchSegmentJobRequest createBatchSegmentJobRequest = CreateBatchSegmentJobRequest.builder()
              .solutionVersionArn(solutionVersionArn)
              .filterArn(filterArn)
              .jobInput(jobInput)
              .jobOutput(jobOutputLocation)
              .jobName(jobName)
              .numResults(numResults)
              .roleArn(roleArn)
              .build();

      batchSegmentJobArn = personalizeClient.createBatchSegmentJob(createBatchSegmentJobRequest)
              .batchSegmentJobArn();
      DescribeBatchSegmentJobRequest describeBatchSegmentJobRequest = DescribeBatchSegmentJobRequest.builder()
              .batchSegmentJobArn(batchSegmentJobArn)
              .build();

      long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;

      // wait until the batch segment job is complete.
      while (Instant.now().getEpochSecond() < maxTime) {

          BatchSegmentJob batchSegmentJob = personalizeClient
                  .describeBatchSegmentJob(describeBatchSegmentJobRequest)
                  .batchSegmentJob();

          status = batchSegmentJob.status();
          System.out.println("batch segment job status: " + status);

          if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) {
              break;
          }
          try {
              Thread.sleep(waitInMilliseconds);
          } catch (InterruptedException e) {
              System.out.println(e.getMessage());
          }
      }
      return batchSegmentJobArn;

  } catch (PersonalizeException e) {
      System.out.println(e.awsErrorDetails().errorMessage());
  }
  return "";
}
```

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

```
// Get service clients module and commands using ES6 syntax.
import { CreateBatchSegmentJobCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";

// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the batch segment job's parameters.

export const createBatchSegmentJobParam = {
  jobName: "NAME",
  jobInput: {
    s3DataSource: {
      path: "INPUT_PATH",
    },
  },
  jobOutput: {
    s3DataDestination: {
      path: "OUTPUT_PATH",
    },
  },
  roleArn: "ROLE_ARN",
  solutionVersionArn: "SOLUTION_VERSION_ARN",
  numResults: 20,
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateBatchSegmentJobCommand(createBatchSegmentJobParam),
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

Memproses pekerjaan batch mungkin membutuhkan waktu beberapa saat untuk diselesaikan. Anda dapat memeriksa status pekerjaan dengan memanggil [DescribeBatchSegmentJob](API_DescribeBatchSegmentJob.md) dan meneruskan `batchSegmentJobArn` sebagai parameter input. Anda juga dapat mencantumkan semua pekerjaan segmen batch Amazon Personalisasi di AWS lingkungan Anda dengan menelepon. [ListBatchSegmentJobs](API_ListBatchSegmentJobs.md) 