日志服务提供分析功能,该功能结合了日志服务查询能力和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中执行分析操作。

单个Project支持的最大分析操作并发数为150个。

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

数据量 单个Shard单次仅支持分析1 GB数据。 单次分析最大支持扫描2000亿行数据。
开启模式 默认开启。 通过开关开启。具体操作,请参见开启SQL独享版
费用 免费。 根据实际使用的CPU时间付费。更多信息,请参见计费项
数据生效机制 分析功能只对开启统计功能后写入的数据生效。

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

分析功能只对开启统计功能后写入的数据生效。

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

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

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

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

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

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

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

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

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

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

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

Double类型的字段值最多52位。

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

操作方式

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

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

  • API/SDK方式

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

分析函数和语法

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

分析结果展示

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

查询效果

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