Creación y consulta de una tabla básica basada en archivos de registro de Amazon EMR - Amazon Athena

Creación y consulta de una tabla básica basada en archivos de registro de Amazon EMR

El siguiente ejemplo crea una tabla básica, myemrlogs, basada en archivos de registro guardados en s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/. La ubicación de Amazon S3 utilizada en los siguientes ejemplos refleja el patrón de la ubicación de registro predeterminada para un clúster de EMR creado por la cuenta 123456789012 de Amazon Web Services en la región us-west-2. Si utiliza una ubicación personalizada, el patrón es s3://amzn-s3-demo-bucket/ClusterID.

Para obtener información sobre cómo crear una tabla con particiones para mejorar potencialmente el rendimiento de las consultas y reducir la transferencia de datos, consulte Creación y consulta de una tabla particionada basada en los registros de Amazon EMR.

CREATE EXTERNAL TABLE `myemrlogs`( `data` string COMMENT 'from deserializer') ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6'

Consultas de ejemplo

Las siguientes consultas de ejemplo se pueden ejecutar en la tabla myemrlogs creada por el ejemplo anterior.

ejemplo – Consultar registros de pasos para incidentes de ERROR, WARN, INFO, EXCEPTION, FATAL o DEBUG
SELECT data, "$PATH" FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'s-86URH188Z6B1') AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
ejemplo – Consultar un registro de instancia específico, i-00b3c0a839ece0a9c, para ERROR, WARN, INFO, EXCEPTION, FATAL o DEBUG
SELECT "data", "$PATH" AS filepath FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'i-00b3c0a839ece0a9c') AND regexp_like("$PATH",'state') AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
ejemplo – Consultar los registros de aplicación Presto para ERROR, WARN, INFO, EXCEPTION, FATAL o DEBUG
SELECT "data", "$PATH" AS filepath FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'presto') AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
ejemplo – Consultar los registros de aplicación Namenode para ERROR, WARN, INFO, EXCEPTION, FATAL o DEBUG
SELECT "data", "$PATH" AS filepath FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'namenode') AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
ejemplo – Consultar todos los registros por fecha y hora para ERROR, WARN, INFO, EXCEPTION, FATAL o DEBUG
SELECT distinct("$PATH") AS filepath FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'2019-07-23-10') AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;