本文介绍日志服务分析功能,包括使用限制、所支持的SQL语法等信息。
概述
日志服务提供分析功能,该功能结合了查询功能和SQL计算功能,对查询结果进行计算分析。
查询语句和分析语句以竖线(|)进行分割,查询语句的语法为日志服务专有语法,请参见查询语法。
- 基本语法
查询语句|分析语句
- 示例
status>200 |select avg(latency),max(latency),count(1) as c GROUP BY method ORDER BY c DESC LIMIT 20
支持的SQL语法
日志服务支持以下SQL语法。
SQL语法结构
- SQL语句中不需要填写from子句和where子句, 默认从当前Logstore的数据中查询,where条件为查询语句中设置的过滤条件。
- 支持的子句包括SELECT、GROUP BY、ORDER BY [ASC,DESC]、LIMIT、HAVING。
使用场景
使用限制
- 每个Project中,最大并发数为15个。
- 开启分析功能后只对新数据生效。
- 字段值的最大长度为2KB,超过后会截断。
- 默认最多返回100行数据。如果需要返回更多数据,请参见LIMIT语法。
保留字段
日志服务内置了一些字段供统计,详情请参见保留字段。
字段名 | 类型 | 说明 |
---|---|---|
__time__ | bigint | 日志时间。 |
__source__ | varchar | 日志来源。
说明 在查找语句中,该字段是source,在SQL语句中才会带上前后各两个下划线(__)。
|
__topic__ | varchar | 日志主题。 |
示例
统计每小时的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