美文网首页
用户日志分析实战案例详解

用户日志分析实战案例详解

作者: 机灵鬼鬼 | 来源:发表于2019-05-29 14:36 被阅读0次

用户行为日志

用户访问网站时所有的行为数据(访问、浏览、搜索、点击等等)也叫做行为轨迹或流量日志。

为什么要记录用户访问行为日志?

网站页面的访问量

网站粘性

推荐

用户行为日志生成渠道?

Nginx(直接去nginx的日志中获取)

Ajax(在页面预设js代码)

日志数据分类:

1)访问系统的数据行:操作系统、浏览器等等

2)访问特征:点击的url、从哪个url跳转过来的(reference)、页面上的停留时间

3)访问信息:session_id、访问的ip信息(能获取ip所属地市或运营商)

用户行为日志分析的意义

网站的眼睛:

我们可以通过日志分析得知,我们的网站的访问者来自哪里?我们的访问者在找什么东西?哪些页面最受欢迎?访问者从哪个地方跳转过来的?比如从百度,360推广。

网站的神经:

网站的布局是否合理对于用户的使用和推广效果时非常非常重要的。网站的排版和内容摆放不是随便放的。

网站的大脑:

根据网站用户访问日志,来指导我们的决策,最受欢迎的课程、比如在哪些地区做重点推广,对我们的课程做哪些优化摆放,什么时候做网站搜索引擎的推广,设置推广预算,什么时候开展活动?

数据处理流程

在线处理和离线处理两中解决方案(DataX、Oozie和Azkbaban是作业任务调度)

1)数据采集

一般我们用Flume,它是专门用来把数据从一个地方(nginx产生日志的地方)搬运到另一个地方(HDFS)的数据处理框架

2)数据清晰

脏数据(就是不适用的数据),清洗工具可以是(spark sql、hive、mapreduce),清洗完之后的数据可以存放在HDFS(Hive/Spark SQL)

3)数据处理

按照我们的需要进行相关的业务的统计和分析,工具有spark sql、hive、mapreduce等其他一些分布式计算框架

4)数据的处理结果入库

结果可以存放到Mysql、等关系型数据库、NoSql(Hbase、redis、es等)或者是HDFS上。

5)数据的可视化展示

通过图形化方式展示出来:饼图、柱状图、地图、折线图(典型的技术选型Echarts(百度开源)、HUE、Zeppelin)

数据清洗

数据清洗可以一次完成,也可以多次完成。

1)使用Spark Sql解析访问日志

2)解析出课程编号和类型

3)根据ip解析出城市信息

4)使用Spark Sql将访问时间按天进行分区输出

访问日志的处理原则

一般我们对访问日志的分析,是需要进行分区的,按照日志的访问时间进行相应的分区。比如按天、小时、分钟等

这一段仅仅是一次简单的清洗工作

如何分区和设置每个分区生成的part文件呐?

这里就是把dataframe数据按天分区写入到机器磁盘/usr/hadoop/testdata/wish文件夹下

/usr/hadoop/testdata/wish文件夹下这时会生成以”day=value“为目录名字,cd进去目录里存放的是part-0000*.snappy.parquet的文件

按需求完成统计信息,并将统计结果入库(关系型数据库)

入库方式有两种
第一种:使用DataFrame API完成统计分析

第二种:使用SQL API完成统计分析

我们先把统计好的parquet格式的文件数据加载进来

这里的day我们存入的是string格式的,为什么读取出来的是integer尼?

这里的day我们存入的是string格式的,为什么读取出来的是integer尼?

答:这是spark sql的推到服务做的事情,其实在官网上有说明,默认情况下自动推算的解析服务是开启的。

这里如果我们不想让他自动推算,就要设置spark.sql.source.partitionColumnTypeInference.enabled为false即可。

相关文章

网友评论

      本文标题:用户日志分析实战案例详解

      本文链接:https://www.haomeiwen.com/subject/hzjwoftx.html