本文介绍日志服务分析功能,包括使用限制、所支持的SQL语法等信息。

概述

说明 要使用分析功能,必须在配置索引时打开对应字段的开启统计开关,详情请参见开启并配置索引

打开开启统计开关后,提供秒级别快速分析且不会产生额外费用。

日志服务提供分析功能,该功能结合了查询功能和SQL计算功能,对查询结果进行计算分析。

查询语句和分析语句以竖线(|)进行分割,查询语句的语法为日志服务专有语法,请参见查询语法
  • 基本语法
    查询语句|分析语句
  • 示例
    status>200 |select avg(latency),max(latency),count(1) as c GROUP BY  method  ORDER BY c DESC  LIMIT 20

分析效果展示

查询效果

交互分析、仪表盘、Grafana、Datav等更多Demo信息,请单击DEMO

支持的SQL语法

日志服务支持以下SQL语法。

SQL语法

SQL语法结构

  • SQL语句中不需要填写from子句和where子句, 默认从当前Logstore的数据中查询,where条件为查询语句中设置的过滤条件。
  • 支持的子句包括SELECT、GROUP BY、ORDER BY [ASC,DESC]、LIMIT、HAVING。

使用场景

使用限制

  • 每个Project中,最大并发数为15个。
  • 开启分析功能后只对新数据生效。如果您需要分析历史数据,请对历史数据重建索引,详情请参见重建索引
  • 字段值的最大长度为2048KB,超过后会截断。
  • 默认最多返回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