12

我有 CWL 条目如下。为了清楚起见,以 SQL 类型显示条目

Name City
1     Chicago
2     Wuhan
3     Chicago
4     Wuhan
5     Los Angeles

现在我想得到低于输出

City         Count
Chicago        2
Wuhan          2
Los Angeles    1

有没有办法可以GROUP BY在 CWL Insights 中运行。

伪查询

Select Count(*), City From {TableName} GROUP BY City
4

1 回答 1

35

您可以将聚合函数countby语句一起使用:https ://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

这是您案例的完整示例,假设日志包含的条目与示例中的条目完全相同(城市名称的正则表达式非常简单,您可能需要对其进行细化)。

fields @timestamp, @message
| parse @message /^(?<number>\d+)\s+(?<city>[a-zA-Z\s]+)$/
| filter ispresent(city)
| stats count(*) by city

结果:

---------------------------
|     city     | count(*) |
|--------------|----------|
| Chicago      | 2        |
| Wuhan        | 2        |
| Los Angeles  | 1        |
---------------------------
于 2020-02-27T22:12:11.360 回答