

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Benutzersegmente mit einem Batch-Segment-Job abrufen
<a name="creating-batch-seg-job"></a>

 Wenn Sie ein USER\$1SEGMENTATION-Rezept verwendet haben, können Sie Batch-Segmentjobs erstellen, um Benutzersegmente mit Ihrer Lösungsversion abzurufen. Jedes Benutzersegment wird in absteigender Reihenfolge sortiert, basierend auf der Wahrscheinlichkeit, dass jeder Benutzer mit Artikeln in Ihrem Inventar interagiert. Je nach Rezept müssen Ihre Eingabedaten eine Liste von Artikeln ([Item-Affinity-Rezept](item-affinity-recipe.md)) oder Artikelattributen ([Item-Attribute-Affinity rezept](item-attribute-affinity-recipe.md)) im JSON-Format sein. Sie können einen Batch-Segment-Job mit der Amazon Personalize Personalize-Konsole, dem AWS Command Line Interface (AWS CLI) oder AWS SDKs erstellen. 

 Wenn Sie einen Batch-Segment-Job erstellen, geben Sie die Amazon S3 S3-Pfade zu Ihren Eingabe- und Ausgabespeicherorten an. Amazon S3 basiert auf Präfixen. Wenn Sie ein Präfix für den Speicherort der Eingabedaten angeben, verwendet Amazon Personalize alle Dateien, die diesem Präfix entsprechen, als Eingabedaten. Wenn Sie beispielsweise einen Ordner mit einem Pfad von angeben `s3://amzn-s3-demo-bucket/folderName` und Ihr Bucket auch über einen Ordner verfügt`s3://amzn-s3-demo-bucket/folderName_test`, verwendet Amazon Personalize alle Dateien in beiden Ordnern als Eingabedaten. Um nur die Dateien in einem bestimmten Ordner als Eingabedaten zu verwenden, beenden Sie den Amazon S3-Pfad mit einem Präfix-Trennzeichen, z. B.`/`: `s3://amzn-s3-demo-bucket/folderName/` Weitere Informationen darüber, wie Amazon S3 Objekte [organisiert, auflisten und mit ihnen arbeiten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/organizing-objects.html). 

**Topics**
+ [Einen Batch-Segment-Job erstellen (Konsole)](#batch-segment-console)
+ [Einen Batch-Segment-Job erstellen (AWS CLI)](#batch-segment-cli)
+ [Einen Batch-Segment-Job erstellen (AWS SDKs)](#batch-segment-sdk)

## Einen Batch-Segment-Job erstellen (Konsole)
<a name="batch-segment-console"></a>

 Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie einen Batch-Segmentauftrag erstellen. Bei diesem Verfahren wird davon ausgegangen, dass Sie bereits eine Lösung und eine Lösungsversion (trainiertes Modell) mit einem USER\$1SEGEMENTATION-Rezept erstellt haben.

**Um einen Batch-Segment-Job zu erstellen (Konsole)**

1. Öffnen Sie zu [https://console.aws.amazon.com/personalize/Hause](https://console.aws.amazon.com/personalize/home) die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an.

1. Wählen Sie auf der **Gruppenseite Datensätze** Ihre Datensatzgruppe aus.

1. Wählen Sie im Navigationsbereich **Batch-Segment-Jobs** und dann **Batch-Segment-Job erstellen** aus.

1. Geben Sie in den **Details des Batchsegmentauftrags** **für den Namen des Batchsegmentauftrags** einen Namen für Ihren Batchsegmentauftrag ein.

1. Wählen Sie unter **Lösung** die Lösung und dann die **Versions-ID der Lösung** aus, die Sie zum Generieren der Empfehlungen verwenden möchten. Sie können Batch-Segmentaufträge nur erstellen, wenn Sie ein USER\$1SEGEMENTATION-Rezept verwendet haben. 

1. Geben Sie für **Anzahl der Benutzer** optional die Anzahl der Benutzer an, die Amazon Personalize für jedes Benutzersegment generiert. Der Standardwert ist 25. Das Maximum liegt bei 5 Millionen.

1.  Geben Sie als **Eingabequelle** den Amazon S3 S3-Pfad zu Ihrer Eingabedatei an oder verwenden **Sie Browse S3**, um Ihren Amazon S3 S3-Bucket auszuwählen.

   Verwenden Sie die folgende Syntax: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json**

    Ihre Eingabedaten müssen das richtige Format für das in Ihrer Lösung verwendete Rezept haben. Beispiele für Eingabedaten finden Sie unter[JSON-Beispiele für die Eingabe und Ausgabe von Batchsegmentjobs](prepare-input-data-user-segment.md#batch-segment-job-json-examples). 

1. Geben Sie **unter Ausgabeziel** den Pfad zu Ihrem Ausgabespeicherort an oder verwenden Sie **Browse S3**, um Ihren Amazon S3 S3-Bucket auszuwählen. Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket).

    Verwenden Sie die folgende Syntax: **s3://amzn-s3-demo-bucket/<output folder name>/** 

1. Wählen Sie für die **IAM-Rolle** eine der folgenden Optionen aus:
   +  Wählen Sie **Neue Servicerolle erstellen und verwenden** und geben Sie den **Namen der Servicerolle** ein, um eine neue Rolle zu erstellen, oder
   +  Wenn Sie bereits eine Rolle mit den richtigen Berechtigungen erstellt haben, wählen Sie **Bestehende Servicerolle verwenden** und wählen Sie die IAM-Rolle aus. 

    Die Rolle, die Sie verwenden, muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- bzw. Ausgabe-Buckets haben.

1.  Wählen Sie für die **Filterkonfiguration** optional einen Filter aus, um einen Filter auf die Benutzersegmente anzuwenden. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Bereitstellung von Filterwerten in Ihrem Eingabe-JSON](filter-batch.md#providing-filter-values). 

1. Fügen Sie für **Tags** optional beliebige Tags hinzu. Weitere Informationen zum Taggen von Amazon Personalize Personalize-Ressourcen finden Sie unter. [Taggen von Amazon Personalize Personalize-Ressourcen](tagging-resources.md)

1.  Wählen Sie **Batch-Segment-Job erstellen**. Die Erstellung von Batchsegmentaufträgen wird gestartet, und die Seite **Batchsegmentaufträge** wird mit dem Abschnitt **Batchsegmentauftragsdetails** angezeigt.

1.  Wenn sich der Status des Batch-Segment-Jobs in **Aktiv** ändert, können Sie die Ausgabe des Jobs aus dem dafür vorgesehenen Amazon S3 S3-Ausgabe-Bucket abrufen. Der Name der Ausgabedatei entspricht dem Format `input-name.out`. 

## Einen Batch-Segment-Job erstellen (AWS CLI)
<a name="batch-segment-cli"></a>

Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie mithilfe des folgenden `create-batch-segment-job` Codes einen Batch-Segmentauftrag erstellen. Geben Sie einen Jobnamen an, `Solution version ARN` ersetzen Sie ihn durch den Amazon Resource Name (ARN) Ihrer Lösungsversion und ersetzen Sie den durch den `IAM service role ARN` ARN der IAM-Servicerolle, die Sie bei der Einrichtung für Amazon Personalize erstellt haben. Diese Rolle muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- bzw. Ausgabe-Buckets haben. `num-results`Geben Sie für die Anzahl der Benutzer an, die Amazon Personalize für jede Zeile von Eingabedaten vorhersagen soll. Der Standardwert ist 25. Das Maximum liegt bei 5 Millionen. Geben Sie optional a `filter-arn` an, um Benutzersegmente zu filtern. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](filter-batch.md). 

Ersetzen Sie `S3 input path` und `S3 output path` durch den Amazon S3-Pfad zu Ihrer Eingabedatei und Ihren Ausgabespeicherorten. Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Verwenden Sie die folgende Syntax für Eingabe- und Ausgabespeicherorte: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** und**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"
}
```

## Einen Batch-Segment-Job erstellen (AWS SDKs)
<a name="batch-segment-sdk"></a>

Nachdem Sie den Vorgang abgeschlossen haben[Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md), können Sie einen Batch-Segmentauftrag mit diesem `CreateBatchSegmentJob` Vorgang erstellen. Der folgende Code zeigt, wie Sie einen Batch-Segmentauftrag erstellen. Geben Sie dem Job einen Namen, geben Sie den Amazon-Ressourcennamen (ARN) der zu verwendenden Lösungsversion an, geben Sie den ARN für Ihre Amazon Personalize-IAM-Rolle an und geben Sie den Amazon S3 S3-Pfad zu Ihrer Eingabedatei und Ihren Ausgabespeicherorten an. Ihre IAM-Servicerolle muss Lese- und Schreibzugriff auf Ihre Amazon S3 S3-Eingabe- bzw. Ausgabe-Buckets haben. 

Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Verwenden Sie die folgende Syntax für Eingabe- und Ausgabespeicherorte: **s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json** und**s3://amzn-s3-demo-bucket/<output folder name>/**. 

 Geben Sie für die Anzahl der Benutzer an`numResults`, die Amazon Personalize für jede Zeile von Eingabedaten vorhersagen soll. Der Standardwert ist 25. Das Maximum ist 5 Millionen. Geben Sie optional a `filterArn` an, um Benutzersegmente zu filtern. Wenn Ihr Filter Platzhalterparameter verwendet, stellen Sie sicher, dass die Werte für die Parameter in Ihrem Eingabe-JSON enthalten sind. Weitere Informationen finden Sie unter [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](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();
```

------

Die Verarbeitung des Batchauftrags kann eine Weile dauern. Sie können den Status eines Auftrags überprüfen, indem Sie [DescribeBatchSegmentJob](API_DescribeBatchSegmentJob.md) aufrufen und als Eingabeparameter einen `batchSegmentJobArn` übergeben. Sie können auch alle Amazon Personalize-Batchsegmentaufträge in Ihrer AWS Umgebung auflisten, indem Sie anrufen[ListBatchSegmentJobs](API_ListBatchSegmentJobs.md). 