Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat tabel untuk CloudFront log di Athena menggunakan partisi manual dengan JSON
Untuk membuat tabel untuk bidang file log CloudFront standar menggunakan format JSON
-
Salin dan tempel contoh pernyataan DDL berikut ke Editor Kueri di konsol Athena. Pernyataan contoh menggunakan bidang file log yang didokumentasikan di bagian bidang file log Standar dari Panduan CloudFront Pengembang Amazon. Memodifikasi
LOCATION
untuk bucket Amazon S3 yang menyimpan log Anda.Query ini menggunakan OpenX JSON SerDe dengan SerDe properti berikut untuk membaca bidang JSON dengan benar di Athena.
CREATE EXTERNAL TABLE `cf_logs_manual_partition_json`( `date` string , `time` string , `x-edge-location` string , `sc-bytes` string , `c-ip` string , `cs-method` string , `cs(host)` string , `cs-uri-stem` string , `sc-status` string , `cs(referer)` string , `cs(user-agent)` string , `cs-uri-query` string , `cs(cookie)` string , `x-edge-result-type` string , `x-edge-request-id` string , `x-host-header` string , `cs-protocol` string , `cs-bytes` string , `time-taken` string , `x-forwarded-for` string , `ssl-protocol` string , `ssl-cipher` string , `x-edge-response-result-type` string , `cs-protocol-version` string , `fle-status` string , `fle-encrypted-fields` string , `c-port` string , `time-to-first-byte` string , `x-edge-detailed-result-type` string , `sc-content-type` string , `sc-content-len` string , `sc-range-start` string , `sc-range-end` string ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'paths'='c-ip,c-port,cs(Cookie),cs(Host),cs(Referer),cs(User-Agent),cs-bytes,cs-method,cs-protocol,cs-protocol-version,cs-uri-query,cs-uri-stem,date,fle-encrypted-fields,fle-status,sc-bytes,sc-content-len,sc-content-type,sc-range-end,sc-range-start,sc-status,ssl-cipher,ssl-protocol,time,time-taken,time-to-first-byte,x-edge-detailed-result-type,x-edge-location,x-edge-request-id,x-edge-response-result-type,x-edge-result-type,x-forwarded-for,x-host-header') STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/'
-
Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena register
cf_logs_manual_partition_json
tabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.
Kueri contoh
Kueri berikut menambahkan jumlah byte yang dilayani CloudFront untuk 15 Januari 2025.
SELECT sum(cast("sc-bytes" as BIGINT)) as sc FROM cf_logs_manual_partition_json WHERE "date"='2025-01-15'
Untuk menghilangkan duplikat baris (misalnya, duplikat baris kosong) dari hasil kueri, Anda dapat menggunakanSELECT DISTINCT
pernyataan, seperti dalam contoh berikut.
SELECT DISTINCT * FROM cf_logs_manual_partition_json