简介:日志服务(Log Service,简称 SLS) 是阿里云提供的行业领先的日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化、告警等功能。智能查询分析是数据中台重要的一环,SLS支持秒级查询10亿到千亿级别的日志数据,为万级开发者提供每日百亿级的查询服务。SLS查询语句是日志服务的专有语法,为了帮助用户简单、快速地构建查询语句,降低用户的学习成本,SLS推出了查询辅助输入(Query Builder)功能,让用户无需关注语法细节也可完成查询。

背景

日志服务(SLS)

日志服务(Log Service,简称 SLS) 是阿里云提供的行业领先的日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化、告警等功能,全面提升海量日志处理能力,实时挖掘数据价值,智能助力研发/运维/运营/安全等场景。

智能查询分析是数据中台重要的一环,SLS支持秒级查询10亿到千亿级别的日志数据,为万级开发者提供每日百亿级的查询服务。SLS非常适合于做监控报表/告警/运营探索式交互分析,更可以通过API调用集成数据分析能力,集成到第三方的可视化平台,BI工具,或自研程序。

SLS查询分析

SLS的日志查询分为两部分:查询语句和分析语句。查询语句和分析语句以竖线(|)分割,查询语句的语法为日志服务专有语法,分析语句采用标准的SQL92语法。

查询语句|分析语句

语句类型

说明

查询语句

查询语句用于指定日志查询时的过滤规则,返回符合条件的日志。

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

分析语句

分析语句用于对查询结果或全量数据进行计算和统计。更多信息,请参见分析概述

其中,查询语句可单独使用,分析语句必须与查询语句一起使用。即分析功能是基于查询结果或全量数据进行的。

示例:

// 仅查询
status > 200

// 仅统计
* | SELECT status, count(*) AS PV GROUP BY status

// 查询 + 统计
status > 200 | SELECT status, count(*) AS PV GROUP BY status

Query Builder介绍

SLS查询语句是日志服务的专有语法,为了帮助用户简单、快速地构建查询语句,降低用户的学习成本,SLS推出了查询辅助输入(Query Builder)功能,让用户无需关注语法细节也可完成查询。

(注:当前版本只支持查询语句,SQL分析语句的辅助输入功能SQL Builder将在后续版本推出,敬请期待)

1. 功能入口

登录日志服务控制台,在Project列表区域,点击进入目标Project。在日志存储 > 日志库页签中,点击进入目标Logstore,在查询和分析语句输入框中,点击右侧

图标,唤起Query Builder面板。随后在配置查询条件面板中,配置查询条件即可。

2. 使用模式

  • 简洁模式

简洁模式中的多个查询条件是平铺展示的,各个查询条件之间为同级关系。

  • 高级模式

高级模式中的多个查询条件是换行展示的,各个查询条件之间可设置层级关系,即对应于查询语句中的括号运算符。用户可以通过点击且、或两侧的<图标或>图标,定义各个查询条件之间的层级关系。

  • 双向同步

为了最大程度的保证用户使用的灵活性,Query Builder的查询条件与用户手动输入的查询语句是实时双向同步的。用户既可以通过Query Builder生成查询语句,也可以在查询框中修改生成的查询语句。Query Builder会实时解析用户手动输入的查询语句并同步到面板上。

3. 功能概述

3.1 查询类型

  • 全文查询和字段查询

查询方式

说明

示例

全文查询

配置全文索引后,日志服务根据用户设置的分词符将整条日志拆分成多个词。用户可以指定关键字(字段名、字段值)和查询规则进行查询。

字段查询

配置字段索引后,用户可以指定字段名称和字段值(Key:Value)进行查询。根据字段索引中设置的数据类型,用户可以进行多种类型的基础查询和组合查询。

  • 精确查询和模糊查询

查询方式

说明

示例

精确查询

使用完整的词进行查询。

模糊查询

使用通配符*或者?来进行模糊查询,参考模糊查询

3.2 逻辑连接符

逻辑连接符

说明

对应于查询语法中的and运算符

对应于查询语法中的or运算符

缩进

在高级模式下,您可以使用缩进设置各个查询条件之间的层级关系。对应于( )运算符。

所有值

为一个字段设置了多个查询值时,会出现此逻辑连接符。对应于and运算符。

任意值

为一个字段设置了多个查询值时,会出现此逻辑连接符。对应于or运算符。

示例

3.3 运算符

Query Builder功能支持如下运算符。更多信息,请参见运算符

  • 针对全文查询,提供包含、不包含运算符。
  • 针对text类型的字段,提供包含、不包含、(字段)存在、(字段)不存在运算符。
  • 针对long类型或double类型的字段,提供=、!=、>、<、>=、<=、(字段)存在、(字段)不存在运算符。

4. 使用示例

示例1

  • 查询包含GET、PUT、POST中任意值的日志

  • 查询同时包含GET、PUT、POST中的日志

示例2

  • 查询user_agent字段的值中包含Chrome的日志

  • 查询slbid字段的值以slb-开头且client_ip字段的值是在127.0.0.x范围内的日志

示例3

查询请求时间小于1秒的成功请求的日志中包含SLS字符串的日志

常见问题

简洁模式和高级模式有什么区别?

  • 简洁模式中的多个查询条件是平铺展示的,各个查询条件之间为同级关系。
  • 高级模式中的多个查询条件是换行展示的,各个查询条件之间可设置层级关系,即对应于查询语句中的括号运算符。

是否支持构建SQL分析语句?

目前,Query Builder功能只支持构建查询语句,不支持构建SQL分析语句。我们将在后续版本推出针对SQL分析语句的构建能力,敬请期待后续版本。

如果您在输入框中输入了SQL分析语句,Query Builder面板将消失且面板唤起按钮被禁用。删除SQL分析语句部分后,可重新打开Query Builder面板。

更多Query Builder使用过程中的问题参考常见问题

写在最后

SLS Query Builder可以帮助用户简单、快速地构建查询语句,让用户无需关注语法细节也可完成查询。正如前面提到,SLS的查询分析能力由查询语句和分析语句两部分构成,分析语句能够在秒级查询的基础上进行实时统计分析,适合于做监控报表/告警/运营探索式交互分析,更可以通过API调用集成数据分析能力,集成到第三方的可视化平台,BI工具,或自研程序。

相较于查询语句,分析语句具有更强大的能力和更丰富的应用场景。SLS分析语句采用标准的SQL92语法,相较于查询语法,使用门槛和学习成本更高,因此我们也将在不久的将来推出针对SQL分析语句的辅助输入工具SQL Builder,敬请期待!

原文链接
本文为阿里云原创内容,未经允许不得转载。 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐