

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

# Menerbitkan laporan atribusi metrik ke Amazon S3
<a name="metric-attribution-results-s3"></a>

Untuk semua data massal, jika Anda menyediakan bucket Amazon S3 saat membuat atribusi metrik, Anda dapat memilih untuk menerbitkan laporan metrik ke bucket Amazon S3 setiap kali Anda membuat pekerjaan impor kumpulan data untuk data interaksi.

Untuk memublikasikan metrik ke Amazon S3, Anda menyediakan jalur ke bucket Amazon S3 di atribusi metrik. Kemudian Anda memublikasikan laporan ke Amazon S3 saat Anda membuat pekerjaan impor kumpulan data. Saat pekerjaan selesai, Anda dapat menemukan metrik di bucket Amazon S3 Anda. Setiap kali Anda mempublikasikan metrik, Amazon Personalize membuat file baru di bucket Amazon S3 Anda. Nama file termasuk metode impor dan tanggal sebagai berikut:

`AggregatedAttributionMetrics - ImportMethod - Timestamp.csv`

Berikut ini adalah contoh bagaimana beberapa baris pertama dari file CSV laporan metrik mungkin muncul. Metrik dalam contoh ini melaporkan total klik dari dua pemberi rekomendasi yang berbeda selama interval 15 menit. Setiap pemberi rekomendasi diidentifikasi dengan Nama Sumber Daya Amazon (ARN) di kolom EVENT\$1ATTRIBUTION\$1SOURCE. 

```
METRIC_NAME,EVENT_TYPE,VALUE,MATH_FUNCTION,EVENT_ATTRIBUTION_SOURCE,TIMESTAMP
COUNTWATCHES,WATCH,12.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666925124
COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666924224
COUNTWATCHES,WATCH,10.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666924224
COUNTWATCHES,WATCH,254.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424
COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666922424
COUNTWATCHES,WATCH,100.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424
......
.....
```

## Menerbitkan metrik untuk data massal ke Amazon S3 (konsol)
<a name="metric-attribution-results-s3-console"></a>

**Untuk memublikasikan metrik ke bucket Amazon S3 dengan konsol Amazon Personalize, buat tugas impor kumpulan data dan **pilih Publikasikan metrik untuk pekerjaan impor ini di Publikasikan metrik peristiwa** ke S3.** 

 Untuk step-by-step instruksi, lihat[Membuat pekerjaan impor dataset (konsol)](bulk-data-import-step.md#bulk-data-import-console). 

## Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS CLI
<a name="metric-attributinon-resuslts-s3-cli"></a>

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS Command Line Interface AWS CLI(), gunakan kode berikut untuk membuat tugas impor kumpulan data dan memberikan tanda. `publishAttributionMetricsToS3` Jika Anda tidak ingin mempublikasikan metrik untuk pekerjaan tertentu, hilangkan bendera. Untuk informasi tentang setiap parameter, lihat[CreateDatasetImportJob](API_CreateDatasetImportJob.md). 

```
aws personalize create-dataset-import-job \
--job-name dataset import job name \
--dataset-arn dataset arn \
--data-source dataLocation=s3://amzn-s3-demo-bucket/filename \
--role-arn roleArn \
--import-mode INCREMENTAL \
--publish-attribution-metrics-to-s3
```

## Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS SDKs
<a name="metric-attributinon-resuslts-s3-sdk"></a>

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS SDKs, buat tugas impor kumpulan data dan `publishAttributionMetricsToS3` setel ke true. Untuk informasi tentang setiap parameter, lihat[CreateDatasetImportJob](API_CreateDatasetImportJob.md). 

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

```
import boto3

personalize = boto3.client('personalize')

response = personalize.create_dataset_import_job(
    jobName = 'YourImportJob',
    datasetArn = 'dataset_arn',
    dataSource = {'dataLocation':'s3://amzn-s3-demo-bucket/file.csv'},
    roleArn = 'role_arn',
    importMode = 'INCREMENTAL',
    publishAttributionMetricsToS3 = True
)

dsij_arn = response['datasetImportJobArn']

print ('Dataset Import Job arn: ' + dsij_arn)

description = personalize.describe_dataset_import_job(
    datasetImportJobArn = dsij_arn)['datasetImportJob']

print('Name: ' + description['jobName'])
print('ARN: ' + description['datasetImportJobArn'])
print('Status: ' + description['status'])
```

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

```
public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient,
                                                      String jobName,
                                                      String datasetArn,
                                                      String s3BucketPath,
                                                      String roleArn,
                                                      ImportMode importMode,
                                                      boolean publishToS3) {

  long waitInMilliseconds = 60 * 1000;
  String status;
  String datasetImportJobArn;
  
  try {
      DataSource importDataSource = DataSource.builder()
              .dataLocation(s3BucketPath)
              .build();
      
      CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder()
              .datasetArn(datasetArn)
              .dataSource(importDataSource)
              .jobName(jobName)
              .roleArn(roleArn)
              .importMode(importMode)
              .publishAttributionMetricsToS3(publishToS3)
              .build();
  
      datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest)
              .datasetImportJobArn();
      
      DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder()
              .datasetImportJobArn(datasetImportJobArn)
              .build();
  
      long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;
  
      while (Instant.now().getEpochSecond() < maxTime) {
  
          DatasetImportJob datasetImportJob = personalizeClient
                  .describeDatasetImportJob(describeDatasetImportJobRequest)
                  .datasetImportJob();
  
          status = datasetImportJob.status();
          System.out.println("Dataset import 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 datasetImportJobArn;
  
  } catch (PersonalizeException e) {
      System.out.println(e.awsErrorDetails().errorMessage());
  }
  return "";
}
```

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

```
// Get service clients and commands using ES6 syntax.
import { CreateDatasetImportJobCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// Set the dataset import job parameters.
export const datasetImportJobParam = {
  datasetArn: 'DATASET_ARN', /* required */
  dataSource: {  
    dataLocation: 's3://amzn-s3-demo-bucket/<folderName>/<CSVfilename>.csv'  /* required */
  },
  jobName: 'NAME',                        /* required */
  roleArn: 'ROLE_ARN',                    /* required */
  importMode: "FULL",                     /* optional, default is FULL */
  publishAttributionMetricsToS3: true     /* set to true to publish metrics to Amazon S3 bucket */
};

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

------