Erstellen und Abfragen einer Basistabelle auf der Grundlage von EMR Amazon-Protokolldateien - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen und Abfragen einer Basistabelle auf der Grundlage von EMR Amazon-Protokolldateien

Im folgenden Beispiel wird die Basistabelle myemrlogs erstellt, die auf Protokolldateien basiert, die in s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/ gespeichert sind. Der in den folgenden Beispielen verwendete Amazon S3 S3-Speicherort spiegelt das Muster des Standardprotokollspeicherorts für einen EMR Cluster wider, der mit einem Amazon Web Services Services-Konto erstellt wurde 123456789012 in der Region us-west-2. Wenn Sie einen benutzerdefinierten Speicherort verwenden, lautet das Muster s3://amzn-s3-demo-bucket/ClusterID.

Hinweise zum Erstellen einer partitionierten Tabelle zur potenziellen Verbesserung der Abfrageleistung und zur Verringerung der Datenübertragung finden Sie unter Eine partitionierte Tabelle auf der Grundlage von EMR Amazon-Protokollen erstellen und abfragen.

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'

Beispielabfragen

Die folgenden Beispielabfragen können für die im vorherigen Beispiel erstellte myemrlogs-Tabelle ausgeführt werden.

Beispiel — Abfragen von Schrittprotokollen nach Vorkommen von ERRORWARN,INFO,, EXCEPTIONFATAL, oder 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;
Beispiel — Fragt ein bestimmtes Instanzprotokoll ab, i-00b3c0a839ece0a9c, nach,,,, oder ERROR WARN INFO EXCEPTION FATAL 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;
Beispiel — Fragt Presto-Anwendungsprotokolle für,,,, oder ab ERROR WARN INFO EXCEPTION FATAL 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;
Beispiel — Abfragen von Namenode-Anwendungsprotokollen fürERROR,,WARN,INFO, oder EXCEPTION FATAL 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;
Beispiel — Fragt alle Logs nach Datum und Uhrzeit fürERROR,,WARN, INFOEXCEPTION, FATAL oder ab 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;