思考该项目(网站流量分析):
1)执行该项目的背景和意义
2)如何去开展网络流量分析(业务)
3)项目整体的框架的流程图+架构
技术流程:围绕着数据的流转(数据从哪里来 数据到哪了)
整体的框架:基于数仓的框架
4)模块开发
数据采集:从零到有:web服务器自带的日志,+自定义收集(埋点采集)
埋点的采集:预先在网页上写下js代码,设置事件,当用户触发这个事件时,会收集相关的信息。
数据的搬迁以及采集:
flume
1.该项目的背景以及意义(网站用户行为分析):
why?
1)有2种网站不需要分析用户:公益性网站+政府网站。其他网站的目的都是盈利
2)该网站是否盈利取决的是用户(比如说爱奇艺是不是充钱变成会员)
3)我们分析用户的行为习惯,根据用户的喜好,推荐用户相关的产品等等,让用户沉淀下来,变成长久性客户(淘宝京东都是如此)
2.如何开展网站分析?
整体是一个金字塔结构(漏斗)形状,分三个部分:流量分析、内容分析、转化分析
塔尖:RIO(投资回报率)。不管从那个角度分析,最终目的都是提高ROI赚钱
塔底:端到端的分析(数据来自于用户,经过分析最终反作用给用户)
质量分析(流程分析):
理解:一个用户打开一个网站,能不能长久性的留下来?留下来时间越长,能不能带来收入
结论:在保证质量的前提下,用户越来越好
多维度分析(流量分析)
细分:通过不同的维度对指标进行分割
扩展:多维度分析模式(麒麟)
什么叫多维度?
比如:统计分析过去3年来自于上海24岁未婚女性购物金额最多前3个。
维度:时间、地域、年龄、婚姻、性别
度量值:sum(金额)---->topN
甚至为了更好的开展多维分析,当下生态圈有一款软件火的一批。Apache kylin.
分析维度:A B C
零维:[]
一维:A B C
二维:AB AC BC
三维:ABC
内容分析:对得到用户的相关信息进行分析
转化分析:
理解:该网站是一个封闭渠道,引导用户按照流程实现最终的目的,意思就是付款
漏斗模型:层层递进 逐级流失
转化率 留存率
流失率
3.项目的流程和技术框架:
流程:先从数据的采集到后台接受到数据为主(now讲的)
1.数据采集分2种:
从无到有:
3.1使用web自带的日志记录功能
优点:简单方便 不需要配置 内置集成可使用
缺点:收集的数据有限 无法自定义
3.2使用前端自定义的埋点功能
埋点:预先在页面上写入js代码,设置事件,当满足一定情况时,触发事件,收集相关的信息
数据的搬运采集
Apache Flume(只针对于海量的日志文件):
基于文件夹监控采集:(source)sqoordir
基于文件实时采集:exec tail -f
2.数据储存
Hadoop hdfs
3.数据预处理
在正式分析数据之前对数据处理动作
理解:变成结构化数据,后期在hive数仓中使用sql便于分析
技术选型
理论上 任何一款软件或者编程语言 只要可以接受数据处理数据并且输出数据 用于预处理。
本项目中:Hadoop MapReduce
java语言程序 熟悉 可以去调用java各种已有工具类
MR是分布式程序 对应大量数据预处理可以并行执行 提高预处理效率
4.数据入库
入库:面向分析的数据仓库
ETL:将业务系统的数据经过抽取,清洗转换后加载到数据仓库的过程
5.数据分析
根据业务需求,编写sql计算各种指标
6.数据应用(可视化)
使用图形或者表格展示数据中的规律,人是视觉动物
以下是网站流量分析的流程图