本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以下範例會根據儲存至 s3://aws-logs-
的日誌檔建立基本資料表 123456789012
-us-west-2
/elasticmapreduce/j-2ABCDE34F5GH6
/elasticmapreduce/myemrlogs
。在以下範例中使用的 Amazon S3 位置會反映由 Amazon Web Services 帳戶 123456789012
在區域 us-west-2
中建立之 EMR 叢集的預設日誌位置的模式。如果您使用自訂位置,則模式為 s3://amzn-s3-demo-bucket/ClusterID
。
如需建立分割的資料表以盡可能提升查詢效能並減少資料傳輸的詳細資訊,請參閱 根據 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
'
查詢範例
以下範例查詢可在上一個範例建立的 myemrlogs
資料表上執行。
範例 – 查詢 ERROR、WARN、INFO、EXCEPTION、FATAL 或 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;
範例 – 查詢 ERROR、WARN、INFO、EXCEPTION、FATAL 或 DEBUG 的特定執行個體日誌 i-00b3c0a839ece0a9c
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;
範例 – 查詢 ERROR、WARN、INFO、EXCEPTION、FATAL 或 DEBUG 的 Presto 應用程式日誌
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;
範例 – 查詢 ERROR、WARN、INFO、EXCEPTION、FATAL 或 DEBUG 的 Namenode 應用程式日誌
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;
範例 – 依日期和小時查詢 ERROR、WARN、INFO、EXCEPTION、FATAL 或 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;