时序数据的可视化实践

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
日志服务 SLS,月写入数据量 50GB 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+,覆盖了绝大部分数据可视化场景。日志服务可视化目前经历了大量场景的锤炼,在集团内部得到了广泛使用。如果您有更好的想法或者建议,欢迎加入钉钉群进行讨论。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
64 0
|
SQL 分布式计算 调度
开源大数据分析实验(1)——简单用户画像分析之采集数据
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
SQL 分布式计算 运维
开源大数据分析实验(2)——简单用户画像分析之加工数据
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
机器学习/深度学习 存储 数据可视化
数据分析与可视化概述
数据分析与可视化概述
206 1
|
数据可视化 数据挖掘 数据处理
【数据篇】33 # 可视化数据处理的一般方法是什么?
【数据篇】33 # 可视化数据处理的一般方法是什么?
234 0
【数据篇】33 # 可视化数据处理的一般方法是什么?
|
数据采集 自然语言处理 数据可视化
数据分析实例-获取某宝评论数据做词云图可视化
数据分析实例-获取某宝评论数据做词云图可视化
421 0
数据分析实例-获取某宝评论数据做词云图可视化
|
机器学习/深度学习 数据采集 自然语言处理
全自动化数据洞察!数据分布对比可视化!⛵
本文介绍如何使用 Pandas Profiling 的比较报告功能,分析两个数据集的分布差异,完成数据探索分析 (EDA) 的完整流程,为后续分析做准备。
314 0
全自动化数据洞察!数据分布对比可视化!⛵
|
监控 数据挖掘 关系型数据库
网站流量日志分析—数仓设计—维度建模多维数据分析|学习笔记
快速学习网站流量日志分析—数仓设计—维度建模多维数据分析
217 0
网站流量日志分析—数仓设计—维度建模多维数据分析|学习笔记
|
算法 数据挖掘
《数据挖掘:实用案例分析》——2.4 时序模式
本节书摘来自华章计算机《数据挖掘:实用案例分析》一书中的第2章,第2.4节,作者 张良均 陈俊德 刘名军 陈荣,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1767 0