在 Amazon Personalize 化中創建數據集導出任務 - Amazon Personalize

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

在 Amazon Personalize 化中創建數據集導出任務

您可以使用 Amazon Personalize 主控台建立資料集匯出任務, AWS Command Line Interface (AWS CLI),或 AWS SDKs.

建立資料集匯出工作 (主控台)

將資料匯入資料集並建立輸出 Amazon S3 儲存貯體之後,您可以將資料匯出到儲存貯體以進行分析。若要使用 Amazon Personalize 主控台匯出資料集,請建立資料集匯出任務。如需建立 Amazon S3 儲存貯體的相關資訊,請參閱 Amazon 簡單儲存服務使用者指南中的建立儲存體。

匯出資料集之前,請確定您的 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 服務角色為 Amazon Personalize 化創建IAM角色

  9. 對於 Amazon S3 資料輸出路徑,請輸入目的地 Amazon S3 儲存貯體。使用下列語法:

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

  10. 如果您正在使用 AWS KMS 對於加密,對於密KMS鑰 ARN,請輸入 Amazon 資源名稱(ARN) AWS KMS 索引鍵。

  11. 對於「匯出資料類型」,請根據您最初匯入資料的方式選擇要匯出的類型資料。

    • 選擇「大量」,只匯出您使用資料集匯入工作大量匯入的資料。

    • 選擇「增量」,僅匯出您使用主控台或PutEventsPutUsers、或PutItems作業個別匯入的資料。

    • 選擇「兩者」以匯出資料集中的所有資料。

  12. 對於「標籤」,選擇性地新增任何標籤 如需標記 Amazon Personalize 資源的詳細資訊,請參閱標記 Amazon Personalize 化資

  13. 選擇建立資料集匯出工作

    在 [資料集概觀] 頁面的 [資料集] 匯出工作中,會列出具有 [匯出] 工作狀態的工作。狀態為時,資料集匯出工作即完成ACTIVE。然後,您可以從輸出的 Amazon S3 儲存貯體下載資料。如需從 Amazon S3 儲存貯體下載物件的相關資訊,請參閱 Amazon 簡單儲存服務使用者指南中的下載物件。

建立資料集匯出工作 (AWS CLI)

將資料匯入資料集並建立輸出 Amazon S3 儲存貯體之後,您可以將資料集匯出到儲存貯體以進行分析。若要使用匯出資料集 AWS CLI,使用建立資料集匯出工作 create-dataset-export-job AWS CLI 指令。如需建立 Amazon S3 儲存貯體的相關資訊,請參閱 Amazon 簡單儲存服務使用者指南中的建立儲存體。

匯出資料集之前,請確定 Amazon Personalize 服務角色可以存取並寫入輸出 Amazon S3 儲存貯體。請參閱 資料集匯出工作權限需求

下面是一個例子 create-dataset-export-job AWS CLI 指令。為任務命名,取代dataset arn為您要匯出的資料集的 Amazon 資源名稱 (ARN),然後取代role ARN為您在中建立ARN的 Amazon Personalize 服務角色為 Amazon Personalize 化創建IAM角色。在中s3DataDestination,針對kmsKeyArn選擇性地提ARN供您的 AWS KMS 密鑰,並為您的輸出 Amazon S3 存儲桶path提供路徑。

對於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 簡單儲存服務使用者指南中的建立儲存體。

下列程式碼會示範如何建立使用 Python (Boto3) 或 Java 2.x 的資料集匯出工作。SDK SDK SDK

匯出資料集之前,請確定 Amazon Personalize 服務角色可以存取並寫入輸出 Amazon S3 儲存貯體。請參閱 資料集匯出工作權限需求

SDK for Python (Boto3)

使用以下指令create_dataset_export_job將資料集中的資料匯出到 Amazon S3 儲存貯體。為任務命名,取代dataset arn為您要匯出的資料集的 Amazon 資源名稱 (ARN),然後取代role ARN為您在中建立ARN的 Amazon Personalize 服務角色為 Amazon Personalize 化創建IAM角色。在中s3DataDestination,針對kmsKeyArn選擇性地提ARN供您的 AWS KMS 密鑰,並為您的輸出 Amazon S3 存儲桶path提供路徑。

對於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、匯出任務的名稱、要匯出的資料集、擷取模式、輸出 Amazon S3 儲存貯體的路徑,以ARN及 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()); } }