Day23_20180528_网站日志流量分析项目04:分析模型的实现及数据仓库设计 (1)

一、ETL结果

	-》功能:只有Mapper程序
    大部分情况下都是对数据进行过滤和格式化
		-》字段过滤
		-》字段补全
		-》字段格式化

结果          

 标志字段

         ip

         user_id

         time

         url

         status

         body_size

         http_ref

true1.80.249.223-2013-09-18 07:57:33/hadoop-hive-intro/20014764"http://www.google.com.hk/url?sa=t&rct=j&q=hive%E7%9A%84%E5%AE%89%E8%A3%85&source=web&cd=2&ved=0CC4QFjAB&url=%68%74%74%70%3a%2f%2f%62%6c%6f%67%2e%66%65%6e%73%2e%6d%65%2f%68%61%64%6f%6f%70%2d%68%69%76%65%2d%69%6e%74%72%6f%2f&ei=5lw5Uo-2NpGZiQfCwoG4BA&usg=AFQjCNF8EFxPuCMrm7CvqVgzcBUzrJZStQ&bvm=bv.52164340,d.aGc&cad=rjt""Mozilla/5.0(WindowsNT5.2;rv:23.0)Gecko/20100101Firefox/23.0"

二、page view 模型

目标:基于session,每一条访问记录的停留时间,步长

 

	-》基于session,每一条访问记录的停留时间,步长
	-》基于etl数据:
		-》sessionId:在本次项目中自己创建,实际工作中日志中已包含该字段
		-》length:每个页面停留时长
			当前页面停留时长=下一个页面的访问时间-当前页面的访问时间
			session1		user1		url1		2018-05-28 12:00:00
			session1		user1		url2		2018-05-28 12:02:23
			session2		user1		url2		2018-05-29 12:02:23

 

需求:

-》最后一条记录的停留时长?
			-》一般给默认值
			-》如果下一个页面的访问时间与我当前页面的时间差大于session的超时时间?
				-》这两条记录不能属于同一个session
				-》当前页面为第一个session的最后一个页面
				-》session超时时间:30分钟
		-》step:步长   
-》编程分析
		input:从hdfs读etl以后的数据
		map :
			key:用户id(实际工作中使用访客id,用ip代替用户)
			value: 每条记录
			
			user1		url1		2018-05-28 12:00:00
			user1		url2		2018-05-28 12:02:23
			user1		url2		2018-05-29 12:02:23
		shuffle:
			key		value
			用户	{recoder1、recorder2……}
		Reduce
			 key   null
			 value  每个用户下的所有记录
			-》每个用户调用一次reduce
			-》按照时间对用户的所有访问记录进行排序
			-》生成sessionId/length/step
		output

三、visit模型

目标
        session
		起始时间:访问第一个页面的时间
		结束时间:访问最后一个页面的时间
		进入页面:访问的第一个页面
		离开页面:访问的最后一个页面
		访问页数:每个session中所有的记录数
		ip
		用户id
		来源页面:访问的第一个页面的前一个页面
代码实现
input:读取pageview模型的输出
		map:
			key:session
			value:所有记录(pvbean)
		shuffle
			session   {record1、record2……}
		reduce:
			-》按照step进行排序
			sessionid:key
		起始时间:beans.get(0).getTime
		结束时间:beans.get(beans.size() -1).getTime
		进入页面:beans.get(0).getRequest
		离开页面:beans.get(beans.size()-1).getRequest
		访问页数:beans.size
		ip			
		用户id
		来源页面:beans.get(0).getHttp_ref

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值