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

基础语法

查询语句和分析语句以竖线(|)分割。查询语句可单独使用,分析语句必须与查询语句一起使用。即分析功能是基于查询结果或全量数据进行的。
说明 分析语句中的内容不区分大小写。
  • 基本语法
    查询语句|分析语句
    语句类型 说明
    查询语句 查询语句用于指定日志查询时的过滤规则,返回符合条件的日志。

    查询语句可以为关键词、数值、数值范围、空格、星号(*)等。 如果为空格或星号(*),表示无过滤条件。更多信息,请参见查询语法

    分析语句 分析语句用于对查询结果或全量数据进行计算和统计。
  • 示例
    * | SELECT status, count(*) AS PV GROUP BY status

语法说明

日志服务分析功能采用标准的SQL92语法。在日志服中使用分析语句时,有如下注意事项:

  • 不需要在分析语句末尾加半角分号(;)表示结束。
  • 无嵌套子查询时,分析语句中不需要填写FROM子句和WHERE子句,默认分析当前Logstore中的数据。
  • 针对复杂的分析场景,您可以通过SQL嵌套子查询。使用SQL嵌套子查询时,需要填写FROM子句。
    * | SELECT sum(pv) FROM (SELECT count(*) AS pv FROM log GROUP BY method)
  • 分析语句中的列名必须由字母、数字、下划线组成,且以字母开头。
    如果您在采集日志时设置了不符合SQL92语法的列名,则需要在配置索引时需为目标列名设置一个别名。别名仅用于SQL分析,在存储底层,仍使用原始列名。查询语句中需使用原始列名。如何设置别名,请参见配置索引列的别名

使用限制

限制项 说明
操作并发数 单个Project支持的最大分析操作并发数为15个。

例如15个用户同时在同一个Project的各个Logstore中执行分析操作。

数据量 单个Shard单次仅支持分析1 GB数据。
开启模式 默认开启。
费用 免费。
数据生效机制 分析功能只对开启统计功能后写入的数据生效。

如果您需要分析历史数据,请对历史数据重建索引。更多信息,请参见重建索引

返回结果 执行分析操作后,默认最多返回100行数据。

如果您需要返回更多数据,请使用LIMIT语法。更多信息,请参见LIMIT语法

字段值长度 单个字段值最大长度为16384字节,即16 KB,超出部分不参与分析。

您可以在配置索引时,修改字段值的最大长度(64字节~16384字节)。具体操作,请参见配置索引

超时时间 分析操作的最大超时时间为55秒。
Double类型的字段值位数 Double类型的字段值最多52位。

如果浮点数编码位数超过52位,会造成精度损失。

操作方式

注意
  • 如果您要使用分析功能,则必须配置索引且在配置索引时打开对应字段的开启统计开关。更多信息,请参见配置索引
  • 日志服务默认存在保留字段。如果您要分析保留字段,请参见保留字段
  • 控制台方式

    登录日志服务控制台,在目标Logstore的查询和分析页面执行分析操作。具体操作,请参见查询和分析日志

  • API/SDK方式

    通过GetLogsGetHistograms接口执行分析操作。

分析函数和语法

日志服务支持以下分析函数和语法。

分析结果展示

您可以使用仪表盘展示分析结果,如下图所示。更多信息,请参见可视化概述

查询效果