

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

# Kueri CloudFront log Amazon
<a name="cloudfront-logs"></a>

Anda dapat mengonfigurasi Amazon CloudFront CDN untuk mengekspor log akses distribusi Web ke Amazon Simple Storage Service. Gunakan log ini untuk menjelajahi pola selancar pengguna di seluruh properti web Anda yang dilayani oleh. CloudFront

Sebelum Anda mulai menanyakan log, aktifkan log akses distribusi Web pada distribusi pilihan CloudFront Anda. Untuk selengkapnya, lihat [Akses log](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) di *Panduan CloudFront Pengembang Amazon*. Catat bucket Amazon S3 tempat Anda menyimpan log ini.

**Topics**
+ [Buat tabel untuk log CloudFront standar (warisan)](create-cloudfront-table-standard-logs.md)
+ [Buat tabel untuk CloudFront log di Athena menggunakan partisi manual dengan JSON](create-cloudfront-table-manual-json.md)
+ [Buat tabel untuk CloudFront log di Athena menggunakan partisi manual dengan Parket](create-cloudfront-table-manual-parquet.md)
+ [Buat tabel untuk CloudFront log di Athena menggunakan proyeksi partisi dengan JSON](create-cloudfront-table-partition-json.md)
+ [Buat tabel untuk CloudFront log di Athena menggunakan proyeksi partisi dengan Parket](create-cloudfront-table-partition-parquet.md)
+ [Buat tabel untuk log CloudFront waktu nyata](create-cloudfront-table-real-time-logs.md)
+ [Sumber daya tambahan](cloudfront-logs-additional-resources.md)

# Buat tabel untuk log CloudFront standar (warisan)
<a name="create-cloudfront-table-standard-logs"></a>

**catatan**  
Prosedur berikut berfungsi untuk log akses distribusi Web CloudFront. Ini tidak sahih untuk streaming log dari RTMP distribusi.

**Untuk membuat tabel untuk bidang file log CloudFront standar**

1. 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#BasicDistributionFileFormat) dari *Panduan CloudFront Pengembang Amazon*. Memodifikasi`LOCATION`untuk bucket Amazon S3 yang menyimpan log Anda. Untuk informasi selengkapnya, lihat [Memulai](getting-started.md) Penggunaan editor kueri untuk

   Kueri ini menentukan `ROW FORMAT DELIMITED` dan `FIELDS TERMINATED BY '\t'` untuk menunjukkan bahwa bidang dibatasi oleh karakter tab. Untuk`ROW FORMAT DELIMITED`, Athena menggunakan secara [LazySimpleSerDe](lazy-simple-serde.md)default. Kolom`date`melarikan diri menggunakan backticks (`) karena itu adalah kata reserved di Athena. Untuk informasi, lihat [Melarikan diri dari kata kunci yang dicadangkan dalam kueri](reserved-words.md).

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_standard_logs (
     `date` DATE,
     time STRING,
     x_edge_location STRING,
     sc_bytes BIGINT,
     c_ip STRING,
     cs_method STRING,
     cs_host STRING,
     cs_uri_stem STRING,
     sc_status INT,
     cs_referrer 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 BIGINT,
     time_taken FLOAT,
     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 INT,
     c_port INT,
     time_to_first_byte FLOAT,
     x_edge_detailed_result_type STRING,
     sc_content_type STRING,
     sc_content_len BIGINT,
     sc_range_start BIGINT,
     sc_range_end BIGINT
   )
   ROW FORMAT DELIMITED 
   FIELDS TERMINATED BY '\t'
   LOCATION 's3://amzn-s3-demo-bucket/'
   TBLPROPERTIES ( 'skip.header.line.count'='2' )
   ```

1. Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena register`cloudfront_standard_logs`tabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.

## Kueri contoh
<a name="query-examples-cloudfront-logs"></a>

Kueri berikut menambahkan jumlah byte yang dilayani CloudFront antara 9 Juni dan 11 Juni 2018. Mengelilingi nama kolom tanggal dengan tanda kutip ganda karena merupakan kata reserved.

```
SELECT SUM(bytes) AS total_bytes
FROM cloudfront_standard_logs
WHERE "date" BETWEEN DATE '2018-06-09' AND DATE '2018-06-11'
LIMIT 100;
```

Untuk menghilangkan duplikat baris (misalnya, duplikat baris kosong) dari hasil kueri, Anda dapat menggunakan`SELECT DISTINCT`pernyataan, seperti dalam contoh berikut. 

```
SELECT DISTINCT * 
FROM cloudfront_standard_logs 
LIMIT 10;
```

# Buat tabel untuk CloudFront log di Athena menggunakan partisi manual dengan JSON
<a name="create-cloudfront-table-manual-json"></a>

**Untuk membuat tabel untuk bidang file log CloudFront standar menggunakan format JSON**

1. 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#BasicDistributionFileFormat) 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/'
   ```

1. 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
<a name="query-examples-cloudfront-logs-manual-json"></a>

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 menggunakan`SELECT DISTINCT`pernyataan, seperti dalam contoh berikut. 

```
SELECT DISTINCT * FROM cf_logs_manual_partition_json
```

# Buat tabel untuk CloudFront log di Athena menggunakan partisi manual dengan Parket
<a name="create-cloudfront-table-manual-parquet"></a>

**Untuk membuat tabel untuk bidang file log CloudFront standar menggunakan format Parket**

1. 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#BasicDistributionFileFormat) dari *Panduan CloudFront Pengembang Amazon*. 

   Kueri ini menggunakan ParquetHiveSerDe SerDe properti berikut untuk membaca bidang Parket dengan benar di Athena.

   ```
   CREATE EXTERNAL TABLE `cf_logs_manual_partition_parquet`(
     `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.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
   STORED AS INPUTFORMAT 
     'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
   OUTPUTFORMAT 
     'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
   LOCATION
     's3://amzn-s3-demo-bucket/'
   ```

1. Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena register`cf_logs_manual_partition_parquet`tabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.

## Kueri contoh
<a name="query-examples-cloudfront-logs-manual-parquet"></a>

Kueri berikut menambahkan jumlah byte yang dilayani CloudFront untuk 19 Januari 2025.

```
SELECT sum(cast("sc_bytes" as BIGINT)) as sc
FROM cf_logs_manual_partition_parquet
WHERE "date"='2025-01-19'
```

Untuk menghilangkan duplikat baris (misalnya, duplikat baris kosong) dari hasil kueri, Anda dapat menggunakan`SELECT DISTINCT`pernyataan, seperti dalam contoh berikut. 

```
SELECT DISTINCT * FROM cf_logs_manual_partition_parquet
```

# Buat tabel untuk CloudFront log di Athena menggunakan proyeksi partisi dengan JSON
<a name="create-cloudfront-table-partition-json"></a>

Anda dapat mengurangi runtime kueri dan mengotomatiskan manajemen partisi dengan fitur proyeksi partisi Athena. Proyeksi partisi secara otomatis menambahkan partisi baru saat data baru ditambahkan. Ini menghapus kebutuhan bagi Anda untuk menambahkan partisi secara manual dengan menggunakan`ALTER TABLE ADD PARTITION`.

Contoh berikut CREATE TABLE pernyataan otomatis menggunakan proyeksi partisi pada CloudFront log dari CloudFront distribusi tertentu sampai hadir untuk satu Wilayah AWS. Setelah Anda menjalankan kueri dengan sukses, Anda dapat meminta tabel.

```
CREATE EXTERNAL TABLE `cloudfront_logs_pp`(
  `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)
  PARTITIONED BY(
         distributionid string,
         year int,
         month int,
         day int,
         hour int )
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/AWSLogs/AWS_ACCOUNT_ID/CloudFront/'
TBLPROPERTIES (
  'projection.distributionid.type'='enum',
  'projection.distributionid.values'='E2Oxxxxxxxxxxx',
  'projection.day.range'='01,31', 
  'projection.day.type'='integer', 
  'projection.day.digits'='2', 
  'projection.enabled'='true', 
  'projection.month.range'='01,12', 
  'projection.month.type'='integer', 
  'projection.month.digits'='2', 
  'projection.year.range'='2025,2026', 
  'projection.year.type'='integer', 
  'projection.hour.range'='00,23',
  'projection.hour.type'='integer',
  'projection.hour.digits'='2',
  'storage.location.template'='s3://amzn-s3-demo-bucket/AWSLogs/AWS_ACCOUNT_ID/CloudFront/${distributionid}/${year}/${month}/${day}/${hour}/')
```

Berikut ini adalah beberapa pertimbangan untuk properti yang digunakan dalam contoh sebelumnya.
+ **Nama tabel** - Nama *`cloudfront_logs_pp`* tabel dapat diganti. Anda dapat mengubahnya menjadi nama apa pun yang Anda inginkan.
+ **Lokasi** - Ubah `s3://amzn-s3-demo-bucket/AWSLogs/AWS_ACCOUNT_ID/` untuk menunjuk ke bucket Amazon S3 Anda.
+ **Distribusi IDs** — Untuk`projection.distributionid.values`, Anda dapat menentukan beberapa distribusi IDs jika Anda memisahkannya dengan koma. Misalnya,*<distributionID1>*,*<distributionID2>*.
+ **Rentang tahun** — Dalam`projection.year.range`, Anda dapat menentukan rentang tahun berdasarkan data Anda. Misalnya, Anda dapat menyesuaikannya dengan periode apa pun, seperti *2025, *2026**.
**catatan**  
Menyertakan partisi kosong, seperti partisi untuk masa depan (contoh: 2025-2040), dapat memengaruhi kinerja kueri. Namun, proyeksi partisi dirancang untuk menangani tanggal masa depan secara efektif. Untuk mempertahankan kinerja optimal, pastikan partisi dikelola dengan cermat dan hindari partisi kosong yang berlebihan bila memungkinkan.
+ **Template lokasi penyimpanan** - Anda harus memastikan untuk memperbarui `storage.location.template` dengan benar berdasarkan struktur CloudFront partisi berikut dan jalur S3.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/create-cloudfront-table-partition-json.html)

  Setelah Anda mengonfirmasi bahwa struktur CloudFront partisi dan struktur S3 cocok dengan pola yang diperlukan, perbarui sebagai berikut`storage.location.template`:

  ```
  'storage.location.template'='s3://amzn-s3-demo-bucket/AWSLogs/account_id/CloudFront/${distributionid}/folder2/${year}/${month}/${day}/${hour}/folder3/'
  ```
**catatan**  
Konfigurasi yang tepat `storage.location.template` sangat penting untuk memastikan penyimpanan dan pengambilan data yang benar.

# Buat tabel untuk CloudFront log di Athena menggunakan proyeksi partisi dengan Parket
<a name="create-cloudfront-table-partition-parquet"></a>

Contoh berikut CREATE TABLE pernyataan otomatis menggunakan proyeksi partisi pada CloudFront log di Parket, dari CloudFront distribusi tertentu sampai hadir untuk satu. Wilayah AWS Setelah Anda menjalankan kueri dengan sukses, Anda dapat meminta tabel.

```
CREATE EXTERNAL TABLE `cloudfront_logs_parquet_pp`(
`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)
PARTITIONED BY(
 distributionid string,
 year int,
 month int,
 day int,
 hour int )
ROW FORMAT SERDE 
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://amzn-s3-demo-bucket/AWSLogs/AWS_ACCOUNT_ID/CloudFront/'
TBLPROPERTIES (
'projection.distributionid.type'='enum',
'projection.distributionid.values'='E3OK0LPUNWWO3',
'projection.day.range'='01,31',
'projection.day.type'='integer',
'projection.day.digits'='2',
'projection.enabled'='true',
'projection.month.range'='01,12',
'projection.month.type'='integer',
'projection.month.digits'='2',
'projection.year.range'='2019,2025',
'projection.year.type'='integer',
'projection.hour.range'='01,12',
'projection.hour.type'='integer',
'projection.hour.digits'='2',
'storage.location.template'='s3://amzn-s3-demo-bucket/AWSLogs/AWS_ACCOUNT_ID/CloudFront/${distributionid}/${year}/${month}/${day}/${hour}/')
```

Berikut ini adalah beberapa pertimbangan untuk properti yang digunakan dalam contoh sebelumnya.
+ **Nama tabel** - Nama *`cloudfront_logs_pp`* tabel dapat diganti. Anda dapat mengubahnya menjadi nama apa pun yang Anda inginkan.
+ **Lokasi** - Ubah `s3://amzn-s3-demo-bucket/AWSLogs/AWS_ACCOUNT_ID/` untuk menunjuk ke bucket Amazon S3 Anda.
+ **Distribusi IDs** — Untuk`projection.distributionid.values`, Anda dapat menentukan beberapa distribusi IDs jika Anda memisahkannya dengan koma. Misalnya,*<distributionID1>*,*<distributionID2>*.
+ **Rentang tahun** — Dalam`projection.year.range`, Anda dapat menentukan rentang tahun berdasarkan data Anda. Misalnya, Anda dapat menyesuaikannya dengan periode apa pun, seperti *2025, *2026**.
**catatan**  
Menyertakan partisi kosong, seperti partisi untuk masa depan (contoh: 2025-2040), dapat memengaruhi kinerja kueri. Namun, proyeksi partisi dirancang untuk menangani tanggal masa depan secara efektif. Untuk mempertahankan kinerja optimal, pastikan partisi dikelola dengan cermat dan hindari partisi kosong yang berlebihan bila memungkinkan.
+ **Template lokasi penyimpanan** - Anda harus memastikan untuk memperbarui `storage.location.template` dengan benar berdasarkan struktur CloudFront partisi berikut dan jalur S3.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/create-cloudfront-table-partition-parquet.html)

  Setelah Anda mengonfirmasi bahwa struktur CloudFront partisi dan struktur S3 cocok dengan pola yang diperlukan, perbarui sebagai berikut`storage.location.template`:

  ```
  'storage.location.template'='s3://amzn-s3-demo-bucket/AWSLogs/account_id/CloudFront/${distributionid}/folder2/${year}/${month}/${day}/${hour}/folder3/'
  ```
**catatan**  
Konfigurasi yang tepat `storage.location.template` sangat penting untuk memastikan penyimpanan dan pengambilan data yang benar.

# Buat tabel untuk log CloudFront waktu nyata
<a name="create-cloudfront-table-real-time-logs"></a>

**Untuk membuat tabel untuk bidang file log CloudFront real-time**

1. Salin dan tempel contoh pernyataan DDL berikut ke Editor Kueri di konsol Athena. Pernyataan contoh menggunakan bidang file log yang didokumentasikan di bagian [log Real-time](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) dari *Panduan CloudFront Pengembang Amazon*. Memodifikasi`LOCATION`untuk bucket Amazon S3 yang menyimpan log Anda. Untuk informasi selengkapnya, lihat [Memulai](getting-started.md) Penggunaan editor kueri untuk

   Kueri ini menentukan `ROW FORMAT DELIMITED` dan `FIELDS TERMINATED BY '\t'` untuk menunjukkan bahwa bidang dibatasi oleh karakter tab. Untuk`ROW FORMAT DELIMITED`, Athena menggunakan secara [LazySimpleSerDe](lazy-simple-serde.md)default. Kolom`timestamp`melarikan diri menggunakan backticks (`) karena itu adalah kata reserved di Athena. Untuk informasi, lihat [Melarikan diri dari kata kunci yang dicadangkan dalam kueri](reserved-words.md).

   Contoh berikut berisi semua bidang yang tersedia. Anda dapat mengomentari atau menghapus bidang yang tidak Anda perlukan.

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_real_time_logs ( 
   `timestamp` STRING,
   c_ip STRING,
   time_to_first_byte BIGINT,
   sc_status BIGINT,
   sc_bytes BIGINT,
   cs_method STRING,
   cs_protocol STRING,
   cs_host STRING,
   cs_uri_stem STRING,
   cs_bytes BIGINT,
   x_edge_location STRING,
   x_edge_request_id STRING,
   x_host_header STRING,
   time_taken BIGINT,
   cs_protocol_version STRING,
   c_ip_version STRING,
   cs_user_agent STRING,
   cs_referer STRING,
   cs_cookie STRING,
   cs_uri_query STRING,
   x_edge_response_result_type STRING,
   x_forwarded_for STRING,
   ssl_protocol STRING,
   ssl_cipher STRING,
   x_edge_result_type STRING,
   fle_encrypted_fields STRING,
   fle_status STRING,
   sc_content_type STRING,
   sc_content_len BIGINT,
   sc_range_start STRING,
   sc_range_end STRING,
   c_port BIGINT,
   x_edge_detailed_result_type STRING,
   c_country STRING,
   cs_accept_encoding STRING,
   cs_accept STRING,
   cache_behavior_path_pattern STRING,
   cs_headers STRING,
   cs_header_names STRING,
   cs_headers_count BIGINT,
   primary_distribution_id STRING,
   primary_distribution_dns_name STRING,
   origin_fbl STRING,
   origin_lbl STRING,
   asn STRING
   )
   ROW FORMAT DELIMITED 
   FIELDS TERMINATED BY '\t'
   LOCATION 's3://amzn-s3-demo-bucket/'
   TBLPROPERTIES ( 'skip.header.line.count'='2' )
   ```

1. Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena register`cloudfront_real_time_logs`tabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.

# Sumber daya tambahan
<a name="cloudfront-logs-additional-resources"></a>

Untuk informasi lebih lanjut tentang menggunakan Athena untuk menanyakan CloudFront log, lihat posting berikut dari blog [data AWS besar](https://aws.amazon.com/blogs/big-data/).

[Kueri Layanan AWS log dengan mudah menggunakan Amazon Athena](https://aws.amazon.com/blogs/big-data/easily-query-aws-service-logs-using-amazon-athena/) (29 Mei 2019).

[Analisis log CloudFront akses Amazon Anda dalam skala besar](https://aws.amazon.com/blogs/big-data/analyze-your-amazon-cloudfront-access-logs-at-scale/) (21 Desember 2018).

[Bangun arsitektur tanpa server untuk menganalisis log CloudFront akses Amazon menggunakan AWS Lambda, Amazon Athena, dan Amazon Managed Service untuk Apache](https://aws.amazon.com/blogs/big-data/build-a-serverless-architecture-to-analyze-amazon-cloudfront-access-logs-using-aws-lambda-amazon-athena-and-amazon-kinesis-analytics/) Flink (26 Mei 2017).