我需要使用 AWS Cloudwatch 日志见解从 lambda 查询数据。 aws提供的查询语法没有区别。
仅支持(count_distinct(fieldname))
参考。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html
示例数据
列#@timestamp@message
1 2020-02-17T13:33:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
2 2020-02-17T11:32:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
3 2020-02-17T11:31:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
4 2020-02-17T11:30:29.049+07:00 [INFO] 2020 分区键:ABC12345_C_
5 2020-02-17T11:29:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
预期结果
1 2020-02-17T13:33:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
2 2020-02-17T11:32:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
4 2020-02-17T11:30:29.049+07:00 [INFO] 2020 分区键:ABC12345_C_
如果使用正常的 SQL 语法如下所示。
选择distinct(uuid)作为uuid,max(time)作为时间 从 table_name 按 uuid 分组 按时间 desc
你可以使用
| stats count(*) by fieldname
这允许在
fieldname
中列出不同的值。
您可以在统计命令中使用非聚合函数,如下所示
stats latest(@timestamp) as @latestTimestamp by @message
| display @latestTimestamp, @message
您现在可以使用
dedup
关键字删除重复项。
fields @timestamp, @message, order_id
| sort @timestamp desc
| dedup order_id
据我所知,它必须是查询中的最后一个运算符。