时序数据的可视化实践

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介:

什么是时序数据?

时序数据也就是我们平时经常说到的时间序列数据。时间序列数据是统一指标按时间顺序记录的数据列。数据分析的目的一般是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型,进行样本外预测。时序数据在数据分析中也是非常常见的。当然有了可靠的时序数据,可视化是不可少的。

场景分析

现在我们想要通过访问量趋势的时序数据来做一个可视化的分析。需要解决的问题主要有以下几个:
1.通过访问趋势,针对一些突变的数据做一些异常点的标注
2.访问趋势预测
3.访问量包含PV和UV,两者数据量差距较大,如何更好的展示
4.时序数据可能中间会有缺失

进行时序数据的可视化之前,我们首先需要了解“时间”所具有的特征:
1.有序性:时间都是有序的,事件之间有先后顺序。
2.周期性:许多自然或商业现象都具有循环规律,如季节等周期性的循环。
3.结构性:时间的尺度可以按照年、季度、月、日、小时、分钟、秒等去切割。

日志服务提供一站式的数据采集可视化分析能力,下面我们来看看怎么基于日志服务提供的可视化功能做时序数据的分析。

前提条件

成功开通并接入日志服务,这里以nginx访问日志为例
undefined

查询分析

日志服务提供大规模日志实时查询与分析能力。我们先通过输入SQL,将实时的时序数据查询出来。我们以小时作为粒度,查询相对4小时

* | select date_format(from_unixtime(__time__ - __time__% 3600), '%Y-%m-%d %H:%i:%S') as hour, count(1) as pv group by hour order by hour asc limit 100

undefined

可视化分析

可以看到我们的时间格式为:%Y-%m-%d %H:%M:%S(含义参考:时间函数
这里只查询了最近4个小时,年月日的显示就略显多余了,但是我们需要分析周趋势和月趋势,所以查询的结果里的年月日就需要保留。理想的显示状态是,查询区间为1天内,显示小时分钟秒级别,查询区间超过1天,显示完整的时间。

时间序列

1.首先选择“线图”,然后点击属性配置,我们能看到详细的配置
undefined
2.在下面找到“时间序列”,选中我们当前数据列中为时间的字段,右侧可以看到解析出来的时间格式(注意:这里的时间列数据必须是完整的时间,即可以转换成时间戳的数据)。
undefined
3.我们扩大查询时间范围,选择相对时间”一周“,这里看到X轴的时间格式也会跟着发生变化
undefined
4.选择”添加仪表盘“,将我们的图表保存下来。再进入我们创建好的仪表盘,就能看到我们创建好的图表了。
5.undefined

异常点

对于一些数据的突变,想要通过更明显的方式标注出来,我们这里可以使用异常点标注的功能
1.在仪表盘右上角点击”编辑“,进入编辑模式。
2.然后在图表的右上角选择”编辑“,编辑当前图表的属性配置
3.首先,选择”异常点所在维度“,这里直接选择”pv“列。然后输入”异常点下界“或”异常点上界“的实际值。这里在异常点上界输入150000
undefined

访问趋势预测

预测在时序数据分析场景中非常重要,我们这里通过简单的配置就能实现时序数据的预测。
1.同样,还是编辑图表,找到属性配置“机器学习”,开启后并点击“确认”进行保存
undefined
2.在图表右上角可以找到“机器学习”的图标,选中左键点击,出现机器学习分析的窗口
undefined
3.选择“数据所在列“为pv,点击开始分析,可以看到我们异常检测的结果,蓝线为实际曲线,红色为预测曲线,绿色区域为预测区间
undefined
4.同样,我们还可以进行时序预测,分析类型选择”时序预测“,点击开始分析。其中蓝色曲线为实际值,红色曲线为预测值
undefined

多个数值列

如果存在多维度的数值列,我们这里新增一列UV的趋势,看一下效果
undefined
由于UV的数值明显比PV的数值低,这样几乎看不清UV的趋势是什么样子,当然我们也可以通过点击图例来调整UV的显示。不过这样人工操作体验会较差。这里的线图配置,提供了两个Y轴维度:左Y轴和右Y轴。我们选择”右Y轴“为UV。为了更好区分,在”为柱列“里选择UV(”为柱列“即显示柱状的数据列)。
undefined
现在我们就可以一眼看出PV趋势和UV趋势的对比图了

时序数据补点

在很多特殊场景下,时序数据并不是一个连续的数据。可能由于各种原因,导致中间有些数据丢失,在可视化显示的时候,如果不去显示这些丢失的数据,用户通过可视化图表很难去发现这些数据丢失了。如果进行补点的话,这个数值的大小定义就成了一个问题。这里我们就可以用到线图的”补点“功能来解决这个问题。
1.同样还是选择编辑刚刚配置好的图表,在属性配置中找到”自动补点“
undefined
2.这里有四个选项可以选择:零值,平均值,最大值,最小值。如果想要标注这些缺失点,建议选择零值。如果只想要看时序数据整体趋势建议选择平均值。当然视具体情况而定。

写在最后

这里关于时序数据的可视化实践,是日志服务可视化中很小一部分功能。目前日志服务支持的可视化组件类型有30+,覆盖了绝大部分数据可视化场景。日志服务可视化目前经历了大量场景的锤炼,在集团内部得到了广泛使用。如果您有更好的想法或者建议,欢迎加入钉钉群进行讨论。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
11月前
|
数据采集 人工智能 搜索推荐
|
开发者 人工智能 消息中间件
|
7月前
|
供应链 算法 量子技术
量子跃迁:量子计算在物流优化中的革命性应用
量子跃迁:量子计算在物流优化中的革命性应用
519 22
|
Web App开发 JSON 自然语言处理
fastchat与autogen使用要点澄清
fastchat与autogen使用要点澄清
|
JavaScript
Vue3滑动输入条(Slider)
这是一个可高度定制的滑动输入条组件,支持多种配置选项,如宽度、最小值、最大值、是否禁用、双滑块模式等。主要功能包括点击滑动条快速定位并获取数值、拖动滑块调整数值、键盘操作调整数值以及自定义Tooltip显示格式。组件通过监听DOM尺寸变化来动态调整布局,并利用requestAnimationFrame优化动画效果,提供了丰富的交互体验。在线预览和详细代码示例可见[这里](https://themusecatcher.github.io/vue-amazing-ui/guide/components/slider.html)。
372 4
Vue3滑动输入条(Slider)
|
人工智能 监控 前端开发
基于ReAct机制的AI Agent
当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己的LLM推出了自己的AI Agent,比如字节的Coze,百度的千帆等,还有开源的Dify。你是否想知道其中的原理?是否想过自己如何实现一套AI Agent?当然,借助LangChain就可以。
|
机器学习/深度学习 PyTorch TensorFlow
PyTorch使用一维卷积对时间序列数据分类
PyTorch使用一维卷积对时间序列数据分类
516 0
Flutter 74: 图解基本 DropdownButton 下拉选项框按钮
0 基础学习 Flutter,第七十四步:学习一下下拉选项框的基本用法!
3523 0
Flutter 74: 图解基本 DropdownButton 下拉选项框按钮