

# CloudFront 標準ログ用テーブルを作成する (レガシー)
<a name="create-cloudfront-table-standard-logs"></a>

**注記**  
次の手順は、CloudFront にあるウェブディストリビューションのアクセスログで機能します。RTMP ディストリビューションのストリーミングログには該当しません。

**CloudFront 標準ログファイルフィールド用のテーブルを作成する**

1. 次の DDL ステートメントの例をコピーして Athena コンソールのクエリエディタに貼り付けます。例のステートメントでは、「Amazon CloudFront デベロッパーガイド」の「[標準ログファイルフィールド](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#BasicDistributionFileFormat)」セクションに記載されているログファイルフィールドを使用しています。`LOCATION` をログを保存する Simple Storage Service (Amazon S3) バケットに変更します。クエリエディタの使用については、「[はじめに](getting-started.md)」を参照してください。

   このクエリは、フィールドがタブ文字で区切られることを示すために `ROW FORMAT DELIMITED` と `FIELDS TERMINATED BY '\t'` を指定します。`ROW FORMAT DELIMITED` には、Athena がデフォルトで [LazySimpleSerDe](lazy-simple-serde.md) を使用します。列 `date` は Athena の予約語であるため、バックティック (`) を使用してエスケープされています。詳細については、「[クエリで予約キーワードをエスケープする](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. Athena コンソールでクエリを実行します。クエリが完了すると、Athena が `cloudfront_standard_logs` テーブルを登録し、その中のデータに対してクエリを発行できるように準備します。

## クエリの例
<a name="query-examples-cloudfront-logs"></a>

以下のクエリは、2018 年 6 月 9 日から 6 月 11 日の間に CloudFront によって提供されたバイト数をCに で処理されたバイト数を集計します。date 列名は予約語であるため、二重引用符で囲みます。

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

クエリ結果から重複する行 (重複する空の行など) を削除するには、次の例のように `SELECT DISTINCT` ステートメントを使用します。

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