数据洞察(2):描述性数据分析在日志场景的落地

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 随着互联网的极速发展,海量用户产生的海量日志,每天都在急剧膨胀。数据仓库就像一个个油井一样,我们都知道这里边有矿,但是怎么从矿里边挖出有价值的信息,一直是困扰矿主的最大问题。如果缺乏强大的分析工具,或者数据分析能力,积累再多的数据的数仓,都会变成数据坟墓:花了大力气采集过来数据,然后打包放到冷存仓库里边,一直没有任何访问,直到一天磁盘空间满了,把最老的数据清理掉。我们的决策,往往是依赖于个人的经验和直觉,而不是基于数据所呈现给我们的信息。而要从数据中挖掘出有用的信息辅助我们做决策,一方面需要强大的数据分析工具,一方面需要专业的数据分析经验。

随着互联网的极速发展,海量用户产生的海量日志,每天都在急剧膨胀。数据仓库就像一个个油井一样,我们都知道这里边有矿,但是怎么从矿里边挖出有价值的信息,一直是困扰矿主的最大问题。如果缺乏强大的分析工具,或者数据分析能力,积累再多的数据的数仓,都会变成数据坟墓:花了大力气采集过来数据,然后打包放到冷存仓库里边,一直没有任何访问,直到一天磁盘空间满了,把最老的数据清理掉。我们的决策,往往是依赖于个人的经验和直觉,而不是基于数据所呈现给我们的信息。而要从数据中挖掘出有用的信息辅助我们做决策,一方面需要强大的数据分析工具,一方面需要专业的数据分析经验。
阿里云日志服务从各种孤岛系统中采集日志,统一到云上存储,让数据所见所得。也提供了SQL这种通用的、强大的数据分析能力,让用户可以在秒级别内、在百亿数据中分析数据。数据洞察系列文章,介绍一系列数据分析经验给我们的客户,帮助我们的客户最大化数据的价值。
在数据分析中,有6大类统计分析:

  1. 描述性统计分析:告诉我们发生了什么事情
  2. 推断统计分析:通过小数据集合推断大数据集合发生了什么事情
  3. 预测统计分析:告诉我们未来会发生什么事情
  4. 指导性分析:告诉我们接下来怎么做
  5. 探索式数据分析:给我们一个数据的初步印象,告诉我们一些关键的发现
  6. 因果分析:告诉我们为什么会发生某件事情

今天我们介绍描述性数据分析的方法,帮助我们的获得对一份数据的大致印象。当我们有了一份数据,还没有明确的分析目的的时候,我们不妨先用描述性分析,先看看数据能给我们提供什么信息。

描述性数据分析的类别

1. 描述数据的频率

了解事件发生的频率至关重要,方法包括发生的次数或者百分比。在日志领域,我们甚至可以查看事件在时间维度的频率波动情况,例如查看每分钟PV的变化

* | select date_trunc('minute',__time__) as t, count(1) as pv group by t order by t limit all

2. 测量数据集中趋势

集中趋势告诉我们,数据的中心点在什么位置,一般使用三个平均值来衡量:均值、中位数、众数。就像我们看一个几何图形,会找他的几何中心或者重心在哪里,知道了大致重心,就知道了大量数据是围绕着中心转的。
SQL中计算均值和中位数的方法:

* | select avg(key), approx_percentile(key,0.5)

计算众数的方法:

* | select key,count(1) as pv group by key order by pv desc limit 1

3. 计算离散度

当我们知道数据的中心在哪里之后,我们还需要知道,其他数据是怎么围绕中心分布的,即距离中心的程度,是非常发散,还是非常聚集。评估离散度的指标有:方差(标准差)、变异系数、绝对中位数差。
标准差用于评估每个数字距离均值的距离。但是标准差是个绝对值,我们很难判断某个标准差到底是高还是低,所以我们需要一个比例变异系数,更加直观的判断。变异系数就是用标准差除以均值。 绝对中位数差,是指每个数字距离中位数的距离,类似于标准差,因此也需要一个系数来判断,可以用绝对中位数差除以中位数。
用SQL可以实现如下:

*|select stddev(key)     # 标准差
*|select stddev(key)/avg(key) # 变异系数
*|select sum(diff)/count(1) as mad from (select  abs(key - approx_percentile(key,0.5) over()) as diff from log ) # 计算绝对中位数差
*|select sum(abs(key-p50))/count(1)/p50 from(select  key , approx_percentile(key,0.5) over() as p50 from log )  # 绝对中位数差系数

4. 评估位置

均值和中位数是总体的估计量,当我们要评估单个数字的位置的时候,最好的办法是使用分位数或者四分位数来评估。
分位数和四分位数的计算方法:

* | select approx_percentile(key,0.1) as p10, approx_percentile(key,0.9)as p90 

5. 评估多列的关系

上述指标用于评估单列数字的概况。如果是2个以上变量的分析,我们更多关注两个变量之间的关系。在SQL上,我们可以计算两列的相关系数。而使用可视化手段,我们可以采取散点图或者交叉表。

*  | select corr(key1, key2) # 计算相关系数

总结

本文介绍了针对数据做描述性统计分析的方法。本系列会陆续推进更多分析日志的方法。
数据洞察(2):描述性数据分析在日志场景的落地.md.

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4天前
|
数据采集 监控 数据可视化
BI工具在数据分析和业务洞察中的应用
BI工具在数据分析和业务洞察中的应用
25 11
|
2月前
|
数据挖掘 PyTorch TensorFlow
|
8天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
114 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
16天前
|
数据采集 数据可视化 数据挖掘
数据驱动决策:BI工具在数据分析和业务洞察中的应用
【10月更文挑战第28天】在信息爆炸的时代,数据成为企业决策的重要依据。本文综述了商业智能(BI)工具在数据分析和业务洞察中的应用,介绍了数据整合、清洗、可视化及报告生成等功能,并结合实际案例探讨了其价值。BI工具如Tableau、Power BI、QlikView等,通过高效的数据处理和分析,助力企业提升竞争力。
34 5
|
8天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
某A保险公司的 数据图表和数据分析
某A保险公司的 数据图表和数据分析
58 0
某A保险公司的 数据图表和数据分析
|
3月前
|
数据采集 DataWorks 数据挖掘
提升数据分析效率:DataWorks在企业级数据治理中的应用
【8月更文第25天】本文将探讨阿里巴巴云的DataWorks平台如何通过建立统一的数据标准、规范以及实现数据质量监控和元数据管理来提高企业的数据分析效率。我们将通过具体的案例研究和技术实践来展示DataWorks如何简化数据处理流程,减少成本,并加速业务决策。
438 54
|
1月前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
35 2
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
46 2
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
49 0

相关产品

  • 日志服务