SQL on log : 同比分析各种指标

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
文件存储 NAS,50GB 3个月
简介: 同比环比函数 同比函数用于把当前区间的计算结果和之前一个指定区间的结果进行比较。 函数 含义 样例 compare(value, time_window) value为double或long类型,time_window为秒。

同比环比的需求场景

在业务分析,以及线上监控中,我们常常遇到这些需求:

  1. 对比分析今天的uv和昨天的uv,以及增长率。
  2. 对比分析今天每个小时的pv,和昨天每个小时的pv,进行对比画图。
  3. 最近15分钟和上一个15分钟对比,如果pv下降,立即短信通知告警。

同比环比函数

同比函数用于把当前区间的计算结果和之前一个指定区间的结果进行比较。

  • 函数语法:

    • compare(value, time_window)
  • value为double或long类型,time_window为秒。比较当前窗口计算出来的value值和 time_window计算出来的结果进行比较,返回值为数组类型,分别是当前值,time_window之前的值,当前相对于之前的增长比例。
  • 样例:

    • * | select compare( pv , 86400) from (select count(1) as pv from log)

1. 计算当前1小时和昨天同一时刻1小时的pv比例

查询的起止时间为: from=2018-7-25 14:00:00 , to=2018-07-25 15:00:00

* | select compare( pv , 86400) from (select count(1)  as pv from log)

参数中86400表示当前窗口减去86400秒
返回结果:

[9.0,19.0,0.47368421052631579]
其中9.0为从`2018-7-25 14:00:00`到`2018-07-25 15:00:00`的pv值。
19.0表示`2018-7-24 14:00:00`到`2018-07-24 15:00:00`的pv值。
0.47368421052631579表示当前窗口相对于之前窗口的比值。

如果要把数组展开成3列数字,需要这样写:

* | select diff[1],diff[2],diff[3] from(select compare( pv , 86400) as diff from (select count(1)  as pv from log))

2. 计算当前1小时,每分钟的pv曲线,和昨天一时刻的pv曲线,

查询的起止时间为:from=2018-7-25 14:00:00 , to=2018-07-25 15:00:00:

*| select t, compare( pv , 86400) as diff  from (select count(1)  as pv, date_format(from_unixtime(__time__), '%H:%i') as t from log group by t) group by t order by t

输出结果:

t diff
14:00 [9520.0,7606.0,1.2516434393899554]
14:01 [8596.0,8553.0,1.0050274757395066]
14:02 [8722.0,8435.0,1.0340248962655603]
14:03 [7499.0,5912.0,1.2684370771312586]

其中diff列的内容是一个数组,分别表示当前窗口的pv值,之前窗口的pv值,当前窗口/之前窗口的比例。

若要展开成曲线,则这样写:

*|select t, diff[1] as current, diff[2] as yestoday, diff[3] as percentage from(select t, compare( pv , 86400) as diff  from (select count(1)  as pv, date_format(from_unixtime(__time__), '%H:%i') as t from log group by t) group by t order by t)

结果可以配置成曲线图,两条曲线分别代表今天的值,昨天的值:

image.png

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
1月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
163 3
|
1月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
阿里云日志服务(SLS)推出智能分析助手 SLS SQL Copilot,融合 AI 技术与日志分析最佳实践,将自然语言转换为 SQL 查询,降低使用门槛,提升查询效率。其具备原生集成、智能语义理解与高效执行能力,助力用户快速洞察日志数据价值,实现智能化日志分析新体验。
157 1
|
1月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
本文是阿里云日志服务(SLS)首次对外系统性地揭秘 SLS SQL Copilot 背后的产品理念、架构设计与核心技术积淀。我们将带你深入了解,这一智能分析助手如何从用户真实需求出发,融合前沿 AI 能力与 SLS 十余年日志分析最佳实践,打造出面向未来的智能化日志分析体验。
230 27
|
25天前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
102 6
|
1月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
|
6月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
6月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
516 117
|
3月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
558 0
|
5月前
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路

相关产品

  • 日志服务