建立 CloudFront 標準日誌的資料表 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立 CloudFront 標準日誌的資料表

注意

下列程序適用於 中的 Web 分佈存取日誌 CloudFront。它不適用於從RTMP分佈串流日誌。

為 CloudFront 標準日誌檔案欄位建立資料表
  1. 將下列範例DDL陳述式複製並貼到 Athena 主控台的查詢編輯器。範例陳述式使用 Amazon CloudFront 開發人員指南的標準日誌檔案欄位區段中記錄的日誌檔案欄位。為存放日誌的 Amazon S3 儲存貯體修改 LOCATION。如需有關使用查詢編輯器的資訊,請參閱開始使用

    此查詢會指定 ROW FORMAT DELIMITED和 ,FIELDS TERMINATED BY '\t'指出欄位以標籤字元分隔。針對 ROW FORMAT DELIMITED,Athena LazySimpleSerDe 預設會使用 。因為在 Athena 中它是保留字,所以使用反引號 (') 逸出 date 資料欄。如需相關資訊,請參閱 在查詢中逸出保留關鍵字

    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' )
  2. 在 Athena 主控台中執行查詢。查詢完成之後,Athena 會註冊 cloudfront_standard_logs 資料表,讓其中的資料可供您發出查詢。

查詢範例

下列查詢會加總 CloudFront 2018 年 6 月 9 日至 6 月 11 日期間由 提供的位元組數。以雙引號圍住日期欄名稱,因為它是保留字。

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;