Consultando los registros de Amazon CloudFront - Amazon Athena

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consultando los registros de Amazon CloudFront

Puede configurar Amazon CloudFront CDN para exportar los registros de acceso a la distribución web a Amazon Simple Storage Service. Utilice estos registros para explorar los patrones de navegación de los usuarios en las propiedades web servidas por CloudFront.

Antes de empezar a consultar los registros, habilite el registro de acceso a las distribuciones web en la distribución que prefiera CloudFront . Para obtener más información, consulte Registros de acceso en la Guía para CloudFront desarrolladores de Amazon. Anote el depósito de Amazon S3 en el que guarda estos registros.

Crear una tabla para los registros CloudFront estándar

nota

Este procedimiento funciona para los inicios de sesión de acceso a la distribución web CloudFront. No es aplicable a los registros de transmisión de distribuciones RTMP.

Para crear una tabla para los campos de un archivo de registro CloudFront estándar

  1. Copie y pegue la instrucción DDL siguiente de ejemplo en el Editor de consultas de la consola de Athena. La instrucción de ejemplo utiliza los campos del archivo de registro documentados en la sección Campos de archivos de registro estándar de la Guía para CloudFront desarrolladores de Amazon. Modifique el valor de LOCATION para indicar el bucket de Amazon S3 donde se almacenan los registros. Para obtener información sobre cómo usar el Editor de consultas, consulte Introducción.

    Esta consulta especifica ROW FORMAT DELIMITED e indica FIELDS TERMINATED BY '\t' que los campos están delimitados por caracteres de tabulación. ParaROW FORMAT DELIMITED, Athena usa la opción LazySimpleSerDepor defecto. La columna date se ha incluido en una secuencia de escape con acentos graves (`) porque es una palabra reservada en Athena. Para obtener más información, consulte Palabras clave reservadas.

    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://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
  2. Ejecute la consulta en la consola de Athena. Cuando la consulta finaliza, Athena registra la tabla cloudfront_standard_logs, dejando los datos que contiene listos para efectuar consultas.

Crear una tabla para registros CloudFront en tiempo real

Para crear una tabla para los campos del archivo de registro CloudFront en tiempo real

  1. Copie y pegue la instrucción DDL siguiente de ejemplo en el Editor de consultas de la consola de Athena. La instrucción de ejemplo utiliza los campos del archivo de registro documentados en la sección Registros en tiempo real de la Guía para CloudFront desarrolladores de Amazon. Modifique el valor de LOCATION para indicar el bucket de Amazon S3 donde se almacenan los registros. Para obtener información sobre cómo usar el Editor de consultas, consulte Introducción.

    Esta consulta especifica ROW FORMAT DELIMITED e indica FIELDS TERMINATED BY '\t' que los campos están delimitados por caracteres de tabulación. ParaROW FORMAT DELIMITED, Athena usa la opción LazySimpleSerDepor defecto. La columna timestamp se ha incluido en una secuencia de escape con acentos graves (`) porque es una palabra reservada en Athena. Para obtener más información, consulte Palabras clave reservadas.

    El siguiente ejemplo contiene todos los campos disponibles. Puede añadir comentarios o eliminar los campos que no necesite.

    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://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
  2. Ejecute la consulta en la consola de Athena. Cuando la consulta finaliza, Athena registra la tabla cloudfront_real_time_logs, dejando los datos que contiene listos para efectuar consultas.

Consultas de ejemplo para CloudFront registros estándar

La siguiente consulta suma el número de bytes servidos CloudFront entre el 9 y el 11 de junio de 2018. El nombre de la columna de fecha se indica entre comillas dobles, ya que se trata de una palabra reservada.

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

Para eliminar filas duplicadas (por ejemplo, filas vacías duplicadas) de los resultados de la consulta, puede utilizar la instrucción SELECT DISTINCT, como en el ejemplo siguiente.

SELECT DISTINCT * FROM cloudfront_standard_logs LIMIT 10;

Recursos adicionales de

Para obtener más información sobre el uso de Athena para consultar CloudFront registros, consulte las siguientes publicaciones del blog de AWS big data.

Consulta fácilmente Servicio de AWS los registros con Amazon Athena (29 de mayo de 2019).

Analiza tus registros de CloudFront acceso a Amazon a gran escala (21 de diciembre de 2018).

Cree una arquitectura sin servidor para analizar los registros de CloudFront acceso de Amazon con AWS Lambda Amazon Athena y Amazon Managed Service for Apache Flink (26 de mayo de 2017).