背景
日志服务(Log Service,简称 SLS) 是阿里巴巴云提供的行业领先的日志大数据解决方案,提供数据收集、清洁、分析、可视化、报警等一站式功能,全面提高大量日志处理能力,实时挖掘数据价值,智能帮助研发/运维/运营/安全。
智能查询分析是数据中台的重要组成部分,SLS支持秒级查询10亿至1000亿的日志数据,为万级开发者提供每日100亿的查询服务。SLS非常适合监控报告/报警/操作探索性交互分析API调用集成数据分析能力,集成到第三方可视化平台,BI工具,或自研程序。

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将在后续版本中推出,敬请期待)
登录日志服务控制台Project点击列表区域进入目标Project。在点击进入目标页签Logstore,单击右侧查询和分析句子输入框
图标,唤起Query Builder面板。然后在在面板中,配置查询条件。
简单模式中的多个查询条件是平铺展示的,每个查询条件是同级关系。
高级模式中的多个查询条件是换行显示的。每个查询条件之间可以设置层次关系,即与查询句中的括号操作符对应。用户可以单击两侧<图标或>定义查询条件之间的层次关系。
为最大限度地保证用户使用的灵活性,Query Builder查询条件与用户手动输入的查询句实时双向同步。用户可以通过Query Builder在查询框中询框中修改生成的查询句,生成查询句。Query Builder用户手动输入的查询语句将实时分析并同步到面板上。
3.1 查询类型
- 全文查询和字段查询
| 查询方式 |
说明 |
示例 |
| 全文查询 |
配置全文索引后,日志服务根据用户设置的子字符将整个日志分成多个字。用户可以指定关键字(字段名、字段值)和查询规则。 |
|
| 字段查询 |
配置字段索引后,用户可以指定字段名称和字段值(Key:Value)查询。根据字段索引中设置的数据类型,用户可以进行多种类型的基础查询和组合查询。 |
- 精确查询和模糊查询
| 查询方式 |
说明 |
示例 |
| 精确查询 |
使用完整的单词进行查询。 |
|
| 模糊查询 |
使用通配符*或者进行模糊查询,参考模糊查询 |
3.2 逻辑连接符
| 逻辑连接符 |
说明 |
| 且 |
对应于查询语法and运算符 |
| 或 |
对应于查询语法or运算符 |
| 缩进 |
在高级模式下,您可以使用缩进设置查询条件之间的层次关系。( )运算符。 |
| 所有值 |
这个逻辑连接符将出现在为一个字段设置多个查询值时。and运算符。 |
| 任意值 |
这个逻辑连接符将出现在为一个字段设置多个查询值时。or运算符。 |
3.3 运算符
Query Builder功能支持以下操作符。有关更多信息,请参见操作符。
- 为全文查询提供包含和不包含操作符。
- 针对text提供包含、不包含、(字段)存在、(字段)无运算符的类型字段。
- 针对long类型或double提供类型字段=、!=、>、<、>=、<=、(字段)存在,(字段)没有运算符。
4. 使用示例
- 查询包含GET、PUT、POST任意值的日志
- 同时包含查询GET、PUT、POST中的日志
- 查询user_agent包含字段值Chrome的日志
- 查询slbid字段的值以slb-开头且client_ip字段值为127.0.0.x范围内的日志
查询请求时间小于1秒的成功请求的日志中包含SLS字符串的日志
常见问题
- 简洁模式中的多个查询条件是平铺展示的,各个查询条件之间为同级关系。
- 高级模式中的多个查询条件是换行展示的,各个查询条件之间可设置层级关系,即对应于查询语句中的括号运算符。
目前,Query Builder功能只支持构建查询语句,不支持构建SQL分析语句。我们将在后续版本推出针对SQL分析语句的构建能力,敬请期待后续版本。
如果您在输入框中输入了SQL分析语句,Query Builder面板将消失且面板唤起按钮被禁用。删除SQL分析语句部分后,可重新打开Query Builder面板。
更多Query Builder使用过程中的问题参考常见问题。
写在最后
SLS Query Builder可以帮助用户简单、快速地构建查询语句,让用户无需关注语法细节也可完成查询。正如前面提到,SLS的查询分析能力由查询语句和分析语句两部分构成,分析语句能够在秒级查询的基础上进行实时统计分析,适合于做监控报表/告警/运营探索式交互分析,更可以通过API调用集成数据分析能力,集成到第三方的可视化平台,BI工具,或自研程序。
相较于查询语句,分析语句具有更强大的能力和更丰富的应用场景。SLS分析语句采用标准的SQL92语法,相较于查询语法,使用门槛和学习成本更高,因此我们也将在不久的将来推出针对SQL分析语句的辅助输入工具SQL Builder,敬请期待!