Gunakan Amazon Athena untuk menanyakan pengukuran internet di file log Amazon S3 - Amazon CloudWatch

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

Anda dapat menggunakan Amazon Athena untuk menanyakan dan melihat pengukuran internet yang diterbitkan Amazon CloudWatch 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 danASNs, 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 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

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, untuk mendapatkan informasi tentang pengukuran Anda.

Untuk membuat tabel Athena

  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

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

    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');
  3. 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';
  4. 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

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 danASNs, 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.