

# IIS ログファイル形式をクエリする
<a name="querying-iis-logs-iis-log-file-format"></a>

W3C 拡張形式とは異なり、[IIS ログファイル形式](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc728311(v%3dws.10))には、固定されたフィールドのセットがあり、区切り文字としてカンマが含まれています。LazySimpleSerDe はカンマを区切り文字として扱い、カンマの後のスペースを次のフィールドの先頭として扱います。

以下の例は、IIS ログファイル形式のサンプルデータを示しています。

```
203.0.113.15, -, 2020-02-24, 22:48:38, W3SVC2, SERVER5, 198.51.100.4, 254, 501, 488, 200, 0, GET, /index.htm, -, 
203.0.113.4, -, 2020-02-24, 22:48:39, W3SVC2, SERVER6, 198.51.100.6, 147, 411, 388, 200, 0, GET, /about.html, -, 
203.0.113.11, -, 2020-02-24, 22:48:40, W3SVC2, SERVER7, 198.51.100.18, 170, 531, 468, 200, 0, GET, /image.png, -, 
203.0.113.8, -, 2020-02-24, 22:48:41, W3SVC2, SERVER8, 198.51.100.14, 125, 711, 868, 200, 0, GET, /intro.htm, -,
```

## Athena で IIS ログファイル用のテーブルを作成する
<a name="querying-iis-logs-creating-a-table-in-athena-for-iis-log-files"></a>

Amazon S3 に保存されている IIS ログファイル形式のログをクエリするには、まずテーブルスキーマを作成して、Athena がログデータを読み取ることができるようにします。

**Athena で IIS ログファイル形式のログ用のテーブルを作成する**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. 以下の点に注意しながら、以下の DDL ステートメントを Athena コンソールに貼り付けます。

   1. カンマ区切り文字を指定するには、`FIELDS TERMINATED BY ','` を使用します。

   1. Amazon S3 内の IIS ログ形式のログファイルをポイントするように、LOCATION 's3://amzn-s3-demo-bucket/*iis-log-file-folder*/' の値を変更します。

   ```
   CREATE EXTERNAL TABLE `iis_format_logs`(
   client_ip_address string,
   user_name string,
   request_date string,
   request_time string,
   service_and_instance string,
   server_name string,
   server_ip_address string,
   time_taken_millisec string,
   client_bytes_sent string,
   server_bytes_sent string,
   service_status_code string,
   windows_status_code string,
   request_type string,
   target_of_operation string,
   script_parameters 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/iis-log-file-folder/'
   ```

1. Athena コンソールでクエリを実行して、`iis_format_logs` テーブルを登録します。クエリが完了すると、Athena からログをクエリできるようになります。

## IIS ログ形式の選択クエリの例
<a name="querying-iis-logs-example-iis-log-format-select-query"></a>

以下のクエリ例は、リクエスト日、リクエスト時刻、リクエストターゲット、およびリクエストにかかったミリ秒単位の時間をテーブル `iis_format_logs` から選択します。`WHERE` 句は、リクエストタイプが `GET` で、HTTP ステータスコードが `200` (成功) のケースをフィルターします。このクエリでは、クエリを正常に行うために `' GET'` および `' 200'` の先頭にスペースが必要であることに注意してください。

```
SELECT request_date, request_time, target_of_operation, time_taken_millisec
FROM iis_format_logs
WHERE request_type = ' GET' AND service_status_code = ' 200'
```

以下の画像は、サンプルデータに対するクエリの結果の例を示しています。

![\[Amazon S3 に保存されている IIS ログファイル形式のログファイルに対する Athena でのクエリの結果例です。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/querying-iis-logs-2.png)
