读书频道 > 网络 > Splunk大数据分析
3.7 聚合
2014-05-30 13:43:35     我来说两句 
收藏    我要投稿   

本文所属图书 > Splunk大数据分析

在大数据和业务智能领域,Splunk是功能强大、简单易学并且能够快速获取直接动力的一个分析工具。你可以利用Splunk实时地监控数据,或者在海量事实中进行数据挖掘。Splunk提供的强有力的可视化工具可以帮助你从海  立即去当当网订购

最后一类命令是对结果进行聚合。聚合的目的是发现数据组合的模式。transaction是一个SPL命令,它能将事件聚合成一个事务。如果事件满足在命令中定义的约束条件,就会被聚合在一起。在transaction命令中通过定义约束条件来确定一个事务的开始和结束。这非常类似于传统数据库中对事务的划分。

我们使用transaction命令来进一步分析页面浏览量和真实购买量。在许多情况下,有些用户将商品添加到他们的购物车,但并没有进行购买操作,或者有些用户花费大量时间浏览网站,将商品添加到购物车,但并没有完成这个事务。

在我们的例子中,我们将根据特定的会话ID(JSESSIONID)和同一IP地址(客户端)来进行聚合事件,这些事件中第一个事件包含字符串addtocart并且最后一个事件包含字符串purchase。在我们开始搜索工作之前,让我们来看看一个比较小的样本事件集会是什么样子的,如图3-27所示。长方形的高亮区域显示了相同的IP地址和会话ID,并且在相关事件中也有addtocart和purchase行为。Splunk通过发现这些事件之间的关系,将它们聚合为一个事务。在样本集中,我们发现IP地址为237.15.107.90和60.66.3.96的两个事务。如果来自客户端的请求中也有cookie值,也可以使用cookie值进行聚合操作。

 

如图3-28所示,共有609个事件符合我们的聚合模型,我们可以看到每个聚合的事件都有addtocart和purchase行为、相同的IP地址以及相同会话ID。

 

transaction命令的另一个应用是,对特定的购买行为事件进行聚合,这些事件的会话不超过10分钟、不超过3个事件以及在相同IP的客户端上进行购买操作。这种类型的组合条件和事件聚合可以用来识别那些花费最短时间完成购买的用户,或者可以用来识别那些有长时间购买事务的用户。在下面的搜索中,我们使用maxspan和maxevents属性以及clientip字段来对事件进行聚合:

 

如图3-29所示,共有519个事件符合聚合条件,并且我们可以看到所有这些事件都有购买行为。
接下来我们将学习本章最后一个在分析组合访问日志数据时非常有用的案例,这个案例也将帮助我们熟悉本章中学习的一些命令和概念。这个案例涉及在线应用中失败的事务所导致的业务流失量。在MyGizmoStore.com的例子中,这就意味着因为在服务器或应用程序中存在错误,导致用户购买操作失败。

我们可以利用HTTP状态码来分析我们的样本数据集。在表3-2中,已经列出了4xx和5xx 系列的HTTP状态码。HTTP状态码为5xx的表示服务器错误。任何5xx错误都意味着在服务器端出了问题。一些常见的例子中包含500代码和503代码,500说明出现了一般内部服务器错误,503则意味着服务器无法处理该请求。从运维的角度来看,出现错误代码5xx意味着服务器出了问题,需要立即处理。对于如MyGizmoStore.com的网上零售商店,状态码5xx表示该网站目前无法完成客户的交易事务,这样的话网上零售商店可能会因为用户无法正常完成交易事务而失去一部分业务量。这样就会导致客户去竞争对手的网上商店,或者最起码应该要上报客户服务来处理这些问题。

 

我们来看看在样本数据集中出现5xx状态码的事件,或者状态码中的值大于或等于500的事件。我们通过使用status字段和设置status的值大于或等于500这个条件来进行搜索:

 

如图3-30所示,共有1557个状态码大于或等于500的事件。

我们可以使用Splunk的统计命令stats来准确获取不同的5xx状态码在事件中的分布情况。通过管道操作将之前的搜索事件结果作为stats命令的输入,并且使用count函数来对不同的状态码进行计数。图3-31显示1554个事件在不同的5xx状态码的分布情况。在我们这个例子中,只有500和503状态码。


 

现在我们已经确定MyGizmoStore.com的服务器存在一个问题,我们需要做的就是确定状态码大于或等于500的事件中是否也有购买行为。如果有任何符合这个条件的事件,即可以将这个事件计入MyGizmoStore.com的业务流失量中。我们将使用之前的搜索语句,并且增加一个附加字段条件,action=purchase,这样就能搜索出那些符合条件的事件:

 

如图3-32所示,共有175个事件符合我们刚刚设置的购买行为条件。

我们可以进一步分析这175个事件,看看商品在这些失败的交易事务中是如何分布的。

Splunk提供了rename命令,这个命令允许我们更改列名或备注为更加容易理解的名字,因为日志文件可能包含一些意义不明确的字段名。

我们使用管道操作将刚刚的搜索结果作为stats命令的输入,按商品对结果进行汇总。然后我们将结果集进行降序排序。最后,将count字段重命名为“Product Units In Failed Transactions”:

 

如图3-33所示,我们将相同的175个事件进行了汇总,并相应地重命名商品的count列。

 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.6 添加和评估字段
下一篇:3.8 小结
相关文章
图文推荐
1.2.2 包与帧
1.2.1 网络协议栈
云数据中心网络技术
3.4.6 文本约定
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站