

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

# Kueri format file log diperpanjang W3C
<a name="querying-iis-logs-w3c-extended-log-file-format"></a>

Format data berkas log [W3C extended](https://docs.microsoft.com/en-us/windows/win32/http/w3c-logging) memiliki bidang yang dipisahkan dengan spasi. Bidang yang muncul di log diperpanjang W3C ditentukan oleh administrator server web yang memilih bidang log yang akan disertakan. Data log contoh berikut memiliki bidang `date, time`, `c-ip`, `s-ip`, `cs-method`, `cs-uri-stem`, `sc-status`, `sc-bytes`, `cs-bytes`, `time-taken`, dan `cs-version`.

```
2020-01-19 22:48:39 203.0.113.5 198.51.100.2 GET /default.html 200 540 524 157 HTTP/1.0
2020-01-19 22:49:40 203.0.113.10 198.51.100.12 GET /index.html 200 420 324 164 HTTP/1.0
2020-01-19 22:50:12 203.0.113.12 198.51.100.4 GET /image.gif 200 324 320 358 HTTP/1.0
2020-01-19 22:51:44 203.0.113.15 198.51.100.16 GET /faq.html 200 330 324 288 HTTP/1.0
```

## Buat tabel di Athena untuk log diperpanjang W3C
<a name="querying-iis-logs-creating-a-table-in-athena-for-w3c-extended-logs"></a>

Sebelum Anda dapat mengkueri log W3C diperpanjang Anda, Anda harus membuat skema tabel sehingga Athena dapat membaca data log.

**Untuk membuat tabel di Athena untuk log diperpanjang W3C**

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

1. Paste pernyataan DDL seperti berikut ke konsol Athena, mencatat hal-hal berikut:

   1. Menambahkan atau menghapus kolom dalam contoh untuk sesuai dengan bidang di log yang ingin Anda kueri.

   1. Nama kolom dalam format berkas log diperluas W3C berisi tanda hubung (`-`). Namun, sesuai dengan [Konvensi penamaan Athena](tables-databases-columns-names.md), contoh pernyataan `CREATE TABLE` menggantikannya dengan garis bawah (`_`).

   1. Untuk menentukan pembatas ruang, gunakan. `FIELDS TERMINATED BY ' '`

   1. Modifikasi nilai di`LOCATION 's3://amzn-s3-demo-bucket/w3c-log-folder/'` untuk menunjuk ke W3C extended log Anda di Amazon S3.

   ```
   CREATE EXTERNAL TABLE `iis_w3c_logs`( 
     date_col string, 
     time_col string, 
     c_ip string,
     s_ip string,
     cs_method string, 
     cs_uri_stem string, 
     sc_status string,
     sc_bytes string,
     cs_bytes string,
     time_taken string,
     cs_version string
     ) 
   ROW FORMAT DELIMITED  
     FIELDS TERMINATED BY ' '  
   STORED AS INPUTFORMAT  
     'org.apache.hadoop.mapred.TextInputFormat'  
   OUTPUTFORMAT  
     'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 
   LOCATION   's3://amzn-s3-demo-bucket/w3c-log-folder/'
   ```

1. Jalankan kueri di konsol Athena untuk mendaftarkan tabel `iis_w3c_logs`. Saat permintaan selesai, log siap bagi Anda untuk mengkueri dari Athena.

## Contoh kueri pilih log diperpanjang W3C
<a name="querying-iis-logs-example-w3c-extended-log-select-query"></a>

Contoh kueri berikut memilih tanggal, waktu, permintaan target, dan waktu yang dibutuhkan untuk permintaan dari tabel `iis_w3c_logs`. Klausa `WHERE` memfilter untuk kasus dengan metode HTTP adalah `GET` dan kode status HTTP adalah `200`(berhasil).

```
SELECT date_col, time_col, cs_uri_stem, time_taken
FROM iis_w3c_logs
WHERE cs_method = 'GET' AND sc_status = '200'
```

Gambar berikut menunjukkan hasil kueri di Editor Kueri Athena.

![\[Contoh hasil kueri di Athena dari berkas log W3C extended yang disimpan di Amazon S3.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/querying-iis-logs-1.png)


## Gabungkan bidang tanggal dan waktu
<a name="querying-iis-logs-example-w3c-extended-log-combining-date-and-time"></a>

Bidang `date` dan `time` yang dibatasi spasi adalah entri terpisah dalam data sumber log, tetapi dapat menggabungkan mereka ke stempel waktu jika Anda ingin. Gunakan fungsi [concat ()](https://prestodb.io/docs/current/functions/string.html#concat) dan [date\$1parse ()](https://prestodb.io/docs/current/functions/datetime.html#date_parse) di kueri[SELECT](select.md) atau [CREATE TABLE AS SELECT](create-table-as.md) untuk menggabungkan dan mengonversi tanggal dan waktu kolom ke dalam format stempel waktu. Contoh berikut menggunakan kueri CTAS untuk membuat tabel baru dengan kolom `derived_timestamp`.

```
CREATE TABLE iis_w3c_logs_w_timestamp AS
SELECT 
  date_parse(concat(date_col,' ', time_col),'%Y-%m-%d %H:%i:%s') as derived_timestamp, 
  c_ip, 
  s_ip, 
  cs_method, 
  cs_uri_stem, 
  sc_status, 
  sc_bytes, 
  cs_bytes, 
  time_taken, 
  cs_version
FROM iis_w3c_logs
```

Setelah tabel dibuat, Anda dapat mengkueri kolom stempel waktu baru langsung, seperti dalam contoh berikut.

```
SELECT derived_timestamp, cs_uri_stem, time_taken
FROM iis_w3c_logs_w_timestamp
WHERE cs_method = 'GET' AND sc_status = '200'
```

Gambar berikut menunjukkan hasil kueri.

![\[W3C diperpanjang hasil permintaan berkas log di atas tabel dengan kolom stempel waktu berasal.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/querying-iis-logs-1a.png)
