A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我是楠楠 于 2018-10-10 16:23 编辑

【郑州校区】Storm学习笔记案例之点击流日志分析系统
用户在网站上操作的任何行为,都会被悄悄记录下来(以数据的方式)。
9.1、课程目标
  • 介绍点击流日志产生、收集、部署
  • 集成点击流系统+Flume+Kafka+Storm+Redis
  • 数据分析业务知识【重点】
  • 学生动手开发一套流式计算的程序
我们想知道用户在网页中点击了哪些标签、每个标签被点击了多少次。
分析场景(一)-黑马程序员
分析场景(二)-京东商城
分析场景(三)-京东专题页分析
9.2、如何进行点击流日志分析
1) 用户访问http://yun.itheima.com/open/c-139.html 是否可以理解为是从‘云计算大数据’标签过来的?
答案:不一定,因为用户可以从其他地方访问这个url。
解决:最好的办法,当用户点击了‘云计算大数据’的标签,通过js代码向后台发送一个数据,这个数据就记录了用户点击过这个标签。
User info、标签唯一标识、点击事件、浏览器尺寸等等。
2) 如何给网页中一个标签设置一个唯一的标志?
京东:在京东上,通过给每个标签设置一个clstag用来标志标签的唯一性。
苏宁:苏宁是通过在每个标签上设置一个cms-name属性来标志标签的唯一性
国美:国美是通过在每个标签上这是一个data-code属性来标志标签的唯一性
淘宝:疑似通过data-groupid进行唯一标志
3) 如何通过js代码发送日志
京东:当用户点击或者浏览某个页面的时候,后台有js会发送类似于以下的信息给服务器。
4) 解析出点击流日志中的字段信息
1、来源URL ref
3、请求时间 reqTime (用户打开网站的时间)
4、操作类型  type   (0:浏览操作,1:点击操作)
9、页面停留时间
10、用户IP地址
11、sessionID
12、用户的账号信息
13、点击什么东西 clstag
5、操作系统
6、浏览器的信息 br
7、屏幕尺寸
8、鼠标点击的位置
9.3、一些简单的数据分析需求
1)计算“京东首页”中来自于百度的流量信息
        Select count(*) from 点击表 where requestUrl = “京东首页” and refUrl =“百度”;
2)计算‘“京东首页”中来自于百度的流量信息中chrome浏览器占比
        Select  count(浏览器类型)    from 点击流表 where requestUrl=”京东首页” and refUrl=“百度” group by 浏览器类型。
3)计算“京东首页”中来自于百度流量的信息中各省份的流量占比情况
        需要些一个UDF函数,将IP地址转化成省市县信息。
新的挑战:
        虽然通过sql语句可以很好的计算出各种数据分析的需求。
        但是,一个网站需要分析的页面会很多需要分析、很多标签需要计算指标、很多新上线的页面和标签……
解决办法
        开发一个自动计算指标的系统由产品经理输入相关的判断条件程序自动给出结果解放程序员的双手
9.4、业务逻辑梳理
1)Storm部分 主要计算pv,uv
        KafkaSpout:读取点击流收集系统收集的日志信息。不同公司的日志信息不一样,需要通过nginx+lua对日志进行标准化。 \t分割。
        EtlBolt :将数据解析成一个Java对象。Java对象中有很多字段,这些字段名称会显示在网页,给产品经理去选择。
        ProcessBolt:读取数据库的所有Job信息,判断Job是否被触发(所有条件是否被满足)。如果触发了Job,就开始为Job计算pv,uv。 将结果保存到Redis中
        
2)app部分 主要计算增量数据
        计算每个Job的pv的增量数据、uv的增量数据。以便展示在网页上称为一个趋势图。
1) 读取数据库中所有的Job信息。得到JobId,通过一定的规则生成redis的key,去获取最新的值。
2) 用最新的值,减去上一个时间点(分钟、十五分钟、半小时、1小时)的值。得到差值之后,将数据保存到数据库。
作用:解放了程序员的双手。要分析指标的时候,只需要产品经理在网页配置一下即可。
传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马