

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

# Gunakan Amazon Athena untuk menanyakan pengukuran internet di file log Amazon S3
<a name="CloudWatch-IM-view-cw-tools.S3_athena"></a>

Anda dapat menggunakan Amazon Athena untuk menanyakan dan melihat pengukuran internet yang dipublikasikan Internet Monitor ke bucket Amazon S3. Ada opsi di Internet Monitor untuk mempublikasikan pengukuran internet untuk aplikasi Anda ke bucket S3 untuk lalu lintas yang menghadap ke internet untuk jaringan kota yang dipantau (lokasi klien dan ASNs, biasanya penyedia layanan internet atau). ISPs Terlepas dari apakah Anda memilih untuk mempublikasikan pengukuran ke S3, Internet Monitor secara otomatis menerbitkan pengukuran internet ke CloudWatch Log setiap lima menit untuk 500 jaringan kota teratas (berdasarkan volume lalu lintas) untuk setiap monitor. 

Bab ini mencakup langkah-langkah cara membuat tabel di Athena untuk pengukuran internet yang terletak di berkas log S3, dan kemudian memberikan [contoh kueri](#CloudWatch-IM-view-cw-tools.S3_athena.athena-sample-queries) untuk melihat tampilan pengukuran yang berbeda. Misalnya, Anda dapat menjalankan kueri untuk 10 jaringan kota teratas yang terdampak berdasarkan dampak latensi. 

## Menggunakan Amazon Athena untuk membuat tabel untuk pengukuran internet di Monitor Internet
<a name="CloudWatch-IM-view-cw-tools.S3_athena.athena-queries"></a>

Untuk mulai menggunakan Athena dengan berkas log S3 Monitor Internet Anda, pertama-tama buatlah tabel untuk pengukuran internet.

Ikuti langkah-langkah dalam prosedur ini untuk membuat tabel di Athena berdasarkan berkas log S3. Kemudian, Anda dapat menjalankan kueri Athena di sebuah tabel, misalnya [contoh kueri pengukuran internet ini](#CloudWatch-IM-view-cw-tools.S3_athena.athena-sample-queries), untuk mendapatkan informasi tentang pengukuran Anda.

**Untuk membuat tabel Athena**

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. Di editor kueri Athena, masukkan pernyataan kueri untuk menghasilkan tabel dengan pengukuran internet di Monitor Internet. Ganti nilai untuk parameter LOCATION dengan lokasi bucket S3 tempat pengukuran internet disimpan di Monitor Internet Anda. 

   ```
   CREATE EXTERNAL TABLE internet_measurements (
       version INT,
       timestamp INT,
       clientlocation STRING,
       servicelocation STRING,
       percentageoftotaltraffic DOUBLE,
       bytesin INT,
       bytesout INT,
       clientconnectioncount INT,
       internethealth STRING,
       trafficinsights STRING
   )
   PARTITIONED BY (year STRING, month STRING, day STRING)
   ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
   LOCATION
   's3://amzn-s3-demo-bucket/bucket_prefix/AWSLogs/account_id/internetmonitor/AWS_Region/'
   TBLPROPERTIES ('skip.header.line.count' = '1');
   ```

1. Masukkan sebuah pernyataan untuk membuat partisi untuk membaca data. Misalnya, kueri berikut menciptakan partisi tunggal untuk tanggal dan lokasi yang ditentukan:

   ```
   ALTER TABLE internet_measurements
   ADD PARTITION (year = 'YYYY', month = 'MM', day = 'dd')
   LOCATION
   's3://amzn-s3-demo-bucket/bucket_prefix/AWSLogs/account_id/internetmonitor/AWS_Region/YYYY/MM/DD';
   ```

1. Pilih **Jalankan**.

**Contoh pernyataan Athena untuk pengukuran internet** 

Berikut ini adalah contoh dari pernyataan untuk menghasilkan tabel:

```
CREATE EXTERNAL TABLE internet_measurements (
    version INT,
    timestamp INT,
    clientlocation STRING,
    servicelocation STRING,
    percentageoftotaltraffic DOUBLE,
    bytesin INT,
    bytesout INT,
    clientconnectioncount INT,
    internethealth STRING,
    trafficinsights STRING
)
PARTITIONED BY (year STRING, month STRING, day STRING)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://internet-measurements/TestMonitor/AWSLogs/1111222233332/internetmonitor/us-east-2/'
TBLPROPERTIES ('skip.header.line.count' = '1');
```

Berikut ini adalah contoh dari pernyataan untuk membuat partisi untuk membaca data:

```
ALTER TABLE internet_measurements
ADD PARTITION (year = '2023', month = '04', day = '07')
LOCATION 's3://internet-measurements/TestMonitor/AWSLogs/1111222233332/internetmonitor/us-east-2/2023/04/07/'
```

## Contoh kueri Amazon Athena untuk digunakan dengan pengukuran internet di Internet Monitor
<a name="CloudWatch-IM-view-cw-tools.S3_athena.athena-sample-queries"></a>

Bagian ini mencakup contoh kueri yang bisa digunakan di Amazon Athena untuk mendapatkan informasi tentang pengukuran internet aplikasi Anda yang dipublikasikan di Amazon S3.

**Kueri 10 teratas Anda yang terkena dampak (berdasarkan persentase total lalu lintas) lokasi klien dan ASNs**

Jalankan kueri Athena ini untuk mengembalikan 10 jaringan kota yang terkena dampak (berdasarkan persentase total lalu lintas) — yaitu, lokasi klien dan, biasanya penyedia layanan internet. ASNs 

```
SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(percentageoftotaltraffic) as percentageoftotaltraffic
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageoftotaltraffic desc
limit 10
```

**Kueri 10 lokasi klien teratas Anda yang terkena dampak (berdasarkan ketersediaan) dan ASNs **

Jalankan kueri Athena ini untuk mengembalikan 10 jaringan kota yang terkena dampak (berdasarkan persentase total lalu lintas) — yaitu, lokasi klien dan, biasanya penyedia layanan internet. ASNs 

```
SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(
        cast(
            json_extract_scalar(
                internetHealth,
                '$.availability.percentageoftotaltrafficimpacted'
            )
        as double ) 
    ) as percentageOfTotalTrafficImpacted
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageOfTotalTrafficImpacted desc
limit 10
```

**Kueri 10 lokasi klien teratas Anda yang terkena dampak (berdasarkan latensi) dan ASNs **

Jalankan kueri Athena ini untuk mengembalikan 10 jaringan kota yang terkena dampak (oleh dampak latensi) teratas Anda—yaitu, lokasi klien dan, biasanya penyedia layanan internet. ASNs 

```
SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(
        cast(
            json_extract_scalar(
                internetHealth,
                '$.performance.percentageoftotaltrafficimpacted'
            )
        as double ) 
    ) as percentageOfTotalTrafficImpacted
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageOfTotalTrafficImpacted desc
limit 10
```

**Sorotan lalu lintas kueri untuk lokasi klien Anda dan ASNs **

Jalankan kueri Athena ini untuk menampilkan sorotan lalu lintas, termasuk skor ketersediaan, skor kinerja, dan waktu ke byte pertama untuk jaringan kota Anda—yaitu, lokasi klien dan ASNs, biasanya penyedia layanan internet.

```
SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.subdivision') as subdivision,
    json_extract_scalar(clientLocation, '$.country') as country,
    avg(cast(json_extract_scalar(internetHealth, '$.availability.experiencescore') as double)) as availabilityScore,
    avg(cast(json_extract_scalar(internetHealth, '$.performance.experiencescore') as double)) performanceScore,
    avg(cast(json_extract_scalar(trafficinsights, '$.timetofirstbyte.currentexperience.value') as double)) as averageTTFB,
    sum(bytesIn) as bytesIn,
    sum(bytesOut) as bytesOut,
    sum(bytesIn + bytesOut) as totalBytes
FROM internet_measurements
where json_extract_scalar(clientLocation, '$.city') != 'N/A'
GROUP BY 
json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.subdivision'),
    json_extract_scalar(clientLocation, '$.country')
ORDER BY totalBytes desc
limit 100
```

Untuk informasi selengkapnya tentang cara menggunakan Athena, lihat [Panduan Pengguna Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/).