查询语法全文参考官方文档:点击查看
由于阿里的官方文档对查询和分析的案例相当匮乏,导致很多函数只能猜测用法,这种不断试错的过程是在是浪费时间,并且浪费精力!所以我打算写一篇关于阿里云查询的案例,由简入深的案例分析,希望对大家有所帮助。
:代指所有日志
业务:我们想对每条日志中的uuid进行筛选查询,则只需要指定字段
业务:需要查询同一网段下的ip的日志情况,我们则可以使用模糊查询去匹配
常用的关键词、·、
业务:查询ip为192.168.1.1,或者ip为192.168.1.0,并且日期不等于2021-08-09
查询语法其实很简单,只需要对日志进行大的筛选即可,无需对日志进行复杂的分析,阿里云的日志不在于此,精髓就在于分析,分析语法比较诡异,和关系型数据库SQL有点像,但又不完全相同,其实思想是一样的,可以用SQL的思想去分析需要分析的结构。
参考文档:聚合函数
聚合函数相对于传统的数据库丰富不少,使用方法基本一致
-
count 聚合
-
count_if 聚合
统计满足指定条件的日志条数 -
max 聚合
-
max_by 聚合
max_by(KEY_01,KEY_02) :返回KEY_02为最大值时对应的KEY_01值。
参考文档:字符串函数
- split分割字符串
- lower 转小写
- 去除空格
trim:删除字符串中开头和结尾的空格。
ltrim:删除字符串中开头的空格。
- 格式化日期
- 计算时间差
:一般这个函数主要用于计算两个时间差,一般用于join时比对时间的方法,后续到join章节会有说明,这里不过多赘述
本章节是重点,因为日志中最纠结的地方如何拆分json,对json中的数据进行分析。
-
步骤一:json_parse(properties)
转化为阿里可识别的JSON类型 -
步骤二:使用cast()函数转换数据类型
转化为map(varchar,varchar)类型,这里必须是同一数据类型,否则无法进行后续查询 -
步骤三:unnest(特殊格式的日志字段进行查询分析)
在复杂的业务场景下,日志数据的某一列可能会是较为复杂的格式,例如数组(array)、对象(map)、JSON等格式。对这种特殊格式的日志字段进行查询分析,可以使用unnest语法。
-
步骤四:对x,y,log的进行查询分析,后续分析就是和正常sql一样,x,y中的数据可以随意查询分组,可以满足大部分的负责的查询需求了。
参考官方文档:unnest语法 官方讲的比较清楚,具体案例解析json已经讲解了,这里就不过多赘述了
参考我之前的博客:开窗函数
-
rank() OVER 在窗口内,按照某一列排序,返回在窗口内的序号
关键: (表示查询的结果集按照user_id聚合,并且按照time升序进行排序,rnk是分组后的排序序号,同等级rnk一致)
解析:rank()是一个聚合函数,可以使用分析语法中的任何函数,也可以使用本文档列出的函数。PARTITION BY 是值按照哪些桶进行计算。
- 以上就是本篇文章【【阿里云】阿里云日志查询语法】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/7233.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多