日志服务提供类似于SQL的聚合计算功能,该功能结合了查询功能和SQL的计算功能,对查询结果进行计算。
语法示例:
status>200 |select avg(latency),max(latency) ,count(1) as c GROUP BY method ORDER BY c DESC LIMIT 20
基本语法:
[search query] | [sql query]
search条件和计算条件以|
分割,表示以search query从日志中过滤出需要的日志,并对这些日志进行SQL query计算。search query的语法为日志服务专有语法,参见查询语法文档。
要使用分析功能,必须在查询分析设置中点击SQL涉及的字段下开启分析开关,详情请参考简介中设置步骤。
日志服务支持以下SQL语法,详细内容请点击链接查看。
SQL语法结构如下:
* | select count(1) as c, ip group by ip order by c desc limit 100
。日志服务内置了一些字段供统计,当用户配置了任何一个有效列后,就会自动加上这些内置字段。
字段名 | 类型 | 含义 |
---|---|---|
__time__ |
bigint | 日志的时间。 |
__source__ |
varchar | 日志来源IP。注意,在搜索时,该字段是source,在SQL中才会带上前后各两个下划线。 |
__topic__ |
varchar | 日志的Topic。 |
统计每小时的PV、UV和最高延时对应的用户请求,延时最高的10个延时:
*|select date_trunc('hour',from_unixtime(__time__)) as time,
count(1) as pv,
approx_distinct(userid) as uv,
max_by(url,latency) as top_latency_url,
max(latency,10) as top_10_latency
group by 1
order by time
您好,我想分析每5分钟API的平均响应时应该怎么查询,我的字段里面没有时间字段,使用的是默认系统时间。感谢
2017-10-10 11:38:58
作者回复日志里有个默认的时间字段__time__,可以这样查询: select avg(latency), from_unixtime(__time__ - __time__ % 300) group by __time__ - __time__% 300
2017-10-12 10:29:36
在文档使用中是否遇到以下问题
更多建议
匿名提交