选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在 Amazon Personalize 中创建数据集导出作业 - Amazon Personalize

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

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

在 Amazon Personalize 中创建数据集导出作业

您可以使用 Amazon Personalize 控制台创建数据集导出任务, AWS Command Line Interface (AWS CLI) 或 AWS SDKs。

创建数据集导出作业(控制台)

将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据导出到存储桶进行分析。要使用 Amazon Personalize 控制台导出数据集,您需要创建数据集导出作业。有关创建 Amazon S3 存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建存储桶

在导出数据集之前,确保您的 Amazon Personalize 服务角色可以访问和写入您的输出 Amazon S3 存储桶。请参阅 数据集导出作业权限要求

创建数据集导出作业(控制台)
  1. https://console.aws.amazon.com/personalize/家中打开 Amazon Personalize 控制台。

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

  3. 数据集组页面,选择您的数据集组。

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

  5. 选择要导出到 Amazon S3 存储桶的数据集。

  6. 数据集导出作业中,选择创建数据集导出作业

  7. 数据集导出作业详细信息中,对于数据集导出作业名称,输入导出作业的名称。

  8. 对于 IAM 服务角色,选择您在为 Amazon Personalize 创建 IAM 角色中创建的 Amazon Personalize 服务角色。

  9. 对于 Amazon S3 数据输出路径,输入目标 Amazon S3 存储桶。使用以下语法:

    s3://amzn-s3-demo-bucket/<folder path>

  10. 如果您使用 AWS KMS 加密,请在 KMS 密钥 ARN 中输入密钥的亚马逊资源名称 (ARN)。 AWS KMS

  11. 对于导出数据类型,根据您最初导入数据的方式,选择要导出的数据类型。

    • 选择批量,仅导出使用数据集导入作业批量导入的数据。

    • 选择增量,仅导出您使用控制台或者 PutEventsPutUsersPutItems 操作单独导入的数据。

    • 选择两者,导出数据集中的所有数据。

  12. 对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签

  13. 选择创建数据集导出作业

    数据集概述页面的数据集导出作业中,作业以导出作业状态列出。当状态为活动时,表示数据集导出作业完成。然后,您可以从输出 Amazon S3 存储桶中下载数据。有关从 Amazon S3 存储桶下载对象的信息,请参阅《Amazon Simple Storage Service 用户指南》中的下载对象

创建数据集导出作业 (AWS CLI)

将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据集导出到存储桶进行分析。要使用导出数据集 AWS CLI,请使用create-dataset-export-job AWS CLI 命令创建数据集导出任务。有关创建 Amazon S3 存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建存储桶

在导出数据集之前,确保 Amazon Personalize 服务角色可以访问和写入您的输出 Amazon S3 存储桶。请参阅 数据集导出作业权限要求

以下是 create-dataset-export-job AWS CLI 命令的示例。为作业命名,将 dataset arn 替换为要导出的数据集的 Amazon 资源名称 (ARN),然后将 role ARN 替换为您在为 Amazon Personalize 创建 IAM 角色中创建的 Amazon Personalize 服务角色的 ARN。在中 s3DataDestinationkmsKeyArn,可以选择为您的 AWS KMS 密钥提供 ARN,为path提供输出 Amazon S3 存储桶的路径。

对于 ingestion-mode,通过以下选项指定要导出的数据:

  • 指定 BULK,仅导出使用数据集导入作业批量导入的数据。

  • 指定仅导PUT出您使用控制台或PutEvents PutUsers、或PutItems操作单独导入的数据。

  • 指定 ALL,导出数据集中的所有数据。

有关更多信息,请参阅 CreateDatasetExportJob

aws personalize create-dataset-export-job \ --job-name job name \ --dataset-arn dataset ARN \ --job-output "{\"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://amzn-s3-demo-bucket/folder-name/\"}}" \ --role-arn role ARN \ --ingestion-mode PUT

这时,将显示数据集导出作业 ARN。

{ "datasetExportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-export-job/DatasetExportJobName" }

使用 DescribeDatasetExportJob 操作检查状态。

aws personalize describe-dataset-export-job \ --dataset-export-job-arn dataset export job ARN

创建数据集导出作业 (AWS SDKs)

将数据导入数据集并创建输出 Amazon S3 存储桶后,您可以将数据集导出到存储桶进行分析。要使用导出数据集 AWS SDKs,请使用CreateDatasetExportJob操作创建数据集导出任务。有关创建 Amazon S3 存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建存储桶

以下代码演示了如何使用 SDK for Python (Boto3) 或 SDK for Java 2.x SDK 创建数据集导出作业。

在导出数据集之前,确保 Amazon Personalize 服务角色可以访问和写入您的输出 Amazon S3 存储桶。请参阅 数据集导出作业权限要求

SDK for Python (Boto3)

使用以下 create_dataset_export_job,将数据集中的数据导出到 Amazon S3 存储桶。为作业命名,将 dataset arn 替换为要导出的数据集的 Amazon 资源名称 (ARN),然后将 role ARN 替换为您在为 Amazon Personalize 创建 IAM 角色中创建的 Amazon Personalize 服务角色的 ARN。在中 s3DataDestinationkmsKeyArn,可以选择为您的 AWS KMS 密钥提供 ARN,为path提供输出 Amazon S3 存储桶的路径。

对于 ingestionMode,通过以下选项指定要导出的数据:

  • 指定 BULK,仅导出使用数据集导入作业批量导入的数据。

  • 指定仅导PUT出您使用控制台或PutEvents PutUsers、或PutItems操作单独导入的数据。

  • 指定 ALL,导出数据集中的所有数据。

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_export_job( jobName = 'job name', datasetArn = 'dataset ARN', jobOutput = { "s3DataDestination": { "kmsKeyArn": "kms key ARN", "path": "s3://amzn-s3-demo-bucket/folder-name/" } }, roleArn = 'role ARN', ingestionMode = 'PUT' ) dsej_arn = response['datasetExportJobArn'] print ('Dataset Export Job arn: ' + dsej_arn) description = personalize.describe_dataset_export_job( datasetExportJobArn = dsej_arn)['datasetExportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetExportJobArn']) print('Status: ' + description['status'])
SDK for Java 2.x

使用以下 createDatasetExportJob 方法创建数据集导出作业。将以下内容作为参数传递:a PersonalizeClient、导出任务的名称、要导出的数据集的 ARN、提取模式、输出 Amazon S3 存储桶的路径以及密钥的 ARN。 AWS KMS

ingestionMode 可以是以下一个选项:

  • 使用 IngestionMode.BULK,仅导出使用数据集导入作业批量导入的数据。

  • 用于IngestionMode.PUT仅导出您使用控制台或PutEvents PutUsers、或PutItems操作单独导入的数据。

  • 使用 IngestionMode.ALL,导出数据集中的所有数据。

public static void createDatasetExportJob(PersonalizeClient personalizeClient, String jobName, String datasetArn, IngestionMode ingestionMode, String roleArn, String s3BucketPath, String kmsKeyArn) { long waitInMilliseconds = 30 * 1000; // 30 seconds String status = null; try { S3DataConfig exportS3DataConfig = S3DataConfig.builder() .path(s3BucketPath) .kmsKeyArn(kmsKeyArn) .build(); DatasetExportJobOutput jobOutput = DatasetExportJobOutput.builder() .s3DataDestination(exportS3DataConfig) .build(); CreateDatasetExportJobRequest createRequest = CreateDatasetExportJobRequest.builder() .jobName(jobName) .datasetArn(datasetArn) .ingestionMode(ingestionMode) .jobOutput(jobOutput) .roleArn(roleArn) .build(); String datasetExportJobArn = personalizeClient.createDatasetExportJob(createRequest).datasetExportJobArn(); DescribeDatasetExportJobRequest describeDatasetExportJobRequest = DescribeDatasetExportJobRequest.builder() .datasetExportJobArn(datasetExportJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { DatasetExportJob datasetExportJob = personalizeClient.describeDatasetExportJob(describeDatasetExportJobRequest) .datasetExportJob(); status = datasetExportJob.status(); System.out.println("Export job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } }

使用以下 create_dataset_export_job,将数据集中的数据导出到 Amazon S3 存储桶。为作业命名,将 dataset arn 替换为要导出的数据集的 Amazon 资源名称 (ARN),然后将 role ARN 替换为您在为 Amazon Personalize 创建 IAM 角色中创建的 Amazon Personalize 服务角色的 ARN。在中 s3DataDestinationkmsKeyArn,可以选择为您的 AWS KMS 密钥提供 ARN,为path提供输出 Amazon S3 存储桶的路径。

对于 ingestionMode,通过以下选项指定要导出的数据:

  • 指定 BULK,仅导出使用数据集导入作业批量导入的数据。

  • 指定仅导PUT出您使用控制台或PutEvents PutUsers、或PutItems操作单独导入的数据。

  • 指定 ALL,导出数据集中的所有数据。

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_export_job( jobName = 'job name', datasetArn = 'dataset ARN', jobOutput = { "s3DataDestination": { "kmsKeyArn": "kms key ARN", "path": "s3://amzn-s3-demo-bucket/folder-name/" } }, roleArn = 'role ARN', ingestionMode = 'PUT' ) dsej_arn = response['datasetExportJobArn'] print ('Dataset Export Job arn: ' + dsej_arn) description = personalize.describe_dataset_export_job( datasetExportJobArn = dsej_arn)['datasetExportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetExportJobArn']) print('Status: ' + description['status'])
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。