在Logstore中存在很多时序数据,日志服务支持通过时序SPL指令和SPL函数处理Logstore中的时序数据。
什么是Series
Series是由时间维度序列和指标维度序列组成的二维数据结构,适用于表达随时间变化的观测值集合。和Series相对应的是Table数据。
与Table模型的对比
对比维度 | Table模型 | Series模型 |
对比维度 | Table模型 | Series模型 |
数据组织方式 | 离散时间点记录(行式存储) | 连续时间序列(列式存储) |
查询模式 | 基于离散点的聚合计算 | 支持滑动窗口等时序运算 |
存储效率 | 适合低频离散事件 | 优化高频连续指标存储 |
示例
以Nginx访问日志分析为例,计算URI维度的分钟级平均响应时间。
Table模型
*
| extend ts = to_unixtime(date_trunc('hour',date_parse(time_local, '%d/%b/%Y:%H:%i:%s')))
| stats avg_latency = avg(cast(upstream_response_time as double)) by ts,request_uri
离散时间点聚合结果示例:
Series模型实现
*
| stats avg_latency=avg(cast(upstream_response_time as double)) by time_local, request_uri
| make-series avg_latency default = 'last'
on time_local
from 'sls_begin_time' to 'sls_end_time'
step '1m'
by request_uri
连续时间序列可视化示例:
SPL指令
SPL指令用于将Table数据转换为Series数据。
指令名称 | 说明 |
指令名称 | 说明 |
用于计算数据集的统计信息,支持按分组字段聚合。 | |
将Table数据构建成Series数据。 | |
将SPL查询结果渲染为图表以实现可视化。 |
SPL函数
通过make-series处理数据得到serie后,可调用SPL函数进行可视化。
函数名称 | 说明 |
函数名称 | 说明 |
时间转换函数:将秒级时间戳转为纳秒级,适用于高精度场景。 | |
时间序列预测函数:基于历史数据预测未来趋势,适用于监控、分析和规划。 | |
异常检测函数:基于机器学习算法,识别时间序列中的异常点或异常模式,适用于监控、告警和数据分析等场景。 | |
时间序列分解与异常检测函数:基于时间序列分解算法,将原始数据拆分为趋势性、季节性和残差分量,并通过统计方法分析残差分量以识别异常点,适用于实时监控、根因分析及数据质量检测等场景。 |
该文章对您有帮助吗?
- 本页导读 (1)
- 什么是Series
- 与Table模型的对比
- 示例
- SPL指令
- SPL函数