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 basierend auf Amazon-EMR-Protokolldateien
Im folgenden Beispiel wird die Basistabelle myemrlogs erstellt, die auf Protokolldateien basiert, die in s3://aws-logs- gespeichert sind. Der in den folgenden Beispielen verwendete Amazon-S3-Speicherort spiegelt das Muster des Standardprotokollspeicherorts für einen EMR-Cluster wider, der durch das Amazon-Web-Services-Konto 123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/123456789012 in der Region us-west-2 erstellt wurde. 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 Erstellen und Abfragen einer partitionierten Tabelle basierend auf Amazon-EMR-Protokollen.
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 – Abfrage von step-Protokollen nach Vorkommen von ERROR, WARN, INFO, EXCEPTION, FATAL 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 – Abfrage eines bestimmten Instance-Protokolls, i-00b3c0a839ece0a9c, nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage von presto-Anwendungsprotokollen nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage von Namenode-Anwendungsprotokollen nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage aller Protokolle nach Datum und Stunde für ERROR, WARN, INFO, EXCEPTION, FATAL oder 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;