Hive分析项目案例梳理

商业网站中经常统计的数据有哪些:

  1. UV:独立访客

    同一个用户访问多次会产生多个记录,但是这些记录会在运算的时候合并为1个

    语法:count(distinct guid)

  2. PV:页面浏览量

    同一个用户访问多次,产生多条记录,每一条记录都是一次PV

    语法:count(url)

  3. 登陆人数:

    登陆网站访问的人数[普通会员,VIP,SVIP]

    endUserId标识会员

  4. 游客人数:

    在没有登陆的情况下访问的客户。

    endUserId为空 --> “”/null

  5. 平均访问时长

    用户在网站停留的时间

    trackTime --> max - min

  6. 二跳率:

    在同一个网站中平均浏览了2个以上的页面的用户

    计算方法:(pv > 2) / 用户总数

  7. 独立IP:

    客户的公网IP

    正常情况下,分析一天内的数据,同一个用户的IP是不会变的

    语法:cunt(distinct ip)

  8. 分析结果表的结构

     键名                  描述               对应track_log字段session_id         会话id                sessionIdguid               访客id                guidtrackerU            访问去掉id,获取    trackerU会话中的第一个         landing_url         着陆URL               urllanding_url_ref      着落之前的URL        refereruser_id              会员id                endUserIdpvuvstay_time          停留时间            trackTimemin_trackTime      最小时间ipprovinceId            省份id                provinceId
    

分析步骤:

1.创建会话信息表
create table if not exists db_web_ana.session_info(session_id string,guid string,tracker_u string,landing_url string,landing_url_ref string,user_id string,pv string,uv string,stay_time string,min_trackTime string,ip string,province_id string
)
partitioned by (date string,hour string)
row format delimited fields terminated by '\t';
2.创建临时表1
create table if not exists db_web_ana.session_info_temp1(session_id string,guid string,user_id string,pv string,stay_time string,min_trackTime string,ip string,province_id string
)
row format delimited fields terminated by '\t';
3.分析数据并向临时表1中插入数据
insert overwrite table db_web_ana.session_info_temp1
select
sessionId,
guid,
endUserId,
url,
max(unix_timestamp(trackTime))-min(unix_timestamp(trackTime)),
min(from_unixtime(unix_timestamp(trackTime))),
ip,
provinceId,
from db_web_data.track_log where date='20150828'
group by
sessionId;
4.创建临时表2
create table db_web_ana.session_info_temp2(
session_id string,
tracktime string,
tracker_u string,
landing_url string,
landing_url_ref string
)
row format delimited fields terminated by '\t';
5.分析数据并向临时表2中导入数据
insert overwrite table db_web_ana.session_info_temp2
select
sessionId,
trackTime,
tracker_u,
url,
referer
from db_web_data.track_log where date='20150828';
6.通过sessionId和trackTime将两张临时表join在一起后插入到会话信息表中:db_web_ana.session_info
insert overwrite table db_web_ana.session_info partition(date='20150828')
select
p1.session_id,
p1.guid,
p2.tracker_u,
p2.landing_url,
p2.landing_url_ref,
p1.user_id,
p1.pv,
p1.stay_time,
p1.min_tracktime,
p1.ip,
p1.province_id
from db_web_ana.session_info_temp1 p1 join db_web_ana.session_info_temp2 p2
on p1.session_id=p2.session_id and p1.min_tracktime=p2.tracktime;执行一系列操作
$ bin/hive -f hql/web_ana/create_session_info.hql ;
bin/hive -f hql/web_ana/create_session_info_temp1.hql ;
bin/hive -f hql/web_ana/create_session_info_temp2.hql ;
bin/hive -f hql/web_ana/insert_session_info_temp1.hql ;
bin/hive -f hql/web_ana/insert_session_info_temp2.hql ;
bin/hive -f hql/web_ana/insert_join_session_info.hql
7.创建结果表
日期  UV          PV      登录人数        游客人数    平均访问时长  二跳率     独立IP
create table db_web_ana.result_info(
date string,
uv string,
pv string,
login_users string,
visit_users string,
avg_time string,
sec_hop string,
ip_count string
)
row format delimited fields terminated by '\t';
8.为结果信息导入数据:
insert overwrite table db_web_ana.result_info
select
date,
count(distinct guid),
sum(pv),
count(case when user_id != '' then user_id else null end),
count(case when user_id = '' then user_id else null end),
avg(stay_time),
count(distinct (case when pv >= 2 then guid else null end))/count(distinct guid),
count(distinct ip)
from db_web_ana.session_info where date='20150828'
group by
date;
9.验证结果日期           UV        PV         登录人数    游客人数        平均访问时长            二跳率           独立IP
20150828    38985   131668.0      18548      21902       750.7895179233622  0.5166089521610876  29668

大数据——Hive分析项目案例相关推荐

  1. 大数据日志分析项目架构

    老是弹出由于您编辑时间过长,页面和服务器之间的连接已断开,请先将文章内容另外保存,再刷新本页面继续编辑让我保存页面我也是醉了,图片多没法一次上传,上传图片还一直失败,我只好都放在一个附件里面了.阿里能 ...

  2. 大数据电信号分析项目

    电信信号强度诊断项. 知识点1 项.背景 ⼿机⽬前已经是⼈们⽣活必不可缺少的⼯具,给我们带来⽅便的同时,特带来⼀些困扰,例如:由于 信号强度差.⽹络速率低导致的抢红包慢,通话的质量较差.本项⽬主要⽤于 ...

  3. 大数据日志分析项目mapreduce程序

    总体思路: 使用flume将服务器上的日志传到hadoop上面,然后使用mapreduce程序完成数据清洗,统计pv,visit模型.最后使用azkaban定时执行程序. 用户每次登录根据sessio ...

  4. 泰迪云课堂数据分析案例:广电大数据营销推荐项目

    泰迪云课堂数据分析案例:广电大数据营销推荐项目,通过学习本案例,可掌握缺失值和重复值处理的常用方法,熟悉绘制pyplot图形进行探索分析的方法,并可以构建相关特征和推荐模型,为后续相关课程学习及将来从 ...

  5. 2021年大数据Hive(十二):Hive综合案例!!!

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive综合案例 一.需求描述 二.项目表的字段 三.进 ...

  6. 图解大数据 | Hive搭建与应用@实操案例

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/84 本文地址:http://www.showmeai.tech/article-det ...

  7. Hadoop大数据平台开发与案例分析

    关于举办"Hadoop大数据平台开发与案例分析 "高级工程师 一.课程介绍 1. 需求理解 Hadoop 设计之初的目标就定位于高可靠性.高可拓展性.高容错性和高效性,正是这些设计 ...

  8. 大数据课程综合实验案例:网站用户行为分析

    大数据课程综合实验案例 1 案例简介 1.1 案例目的 1.2 适用对象 1.3 时间安排 1.4 预备知识 1.5 硬件要求 1.6 软件工具 1.7 数据集 1.8 案例任务 1.9 实验步骤 2 ...

  9. Python项目实战:使用PySpark对大数据进行分析

    Python项目实战:使用PySpark对大数据进行分析 大数据,顾名思义就是大量的数据,一般这些数据都是PB级以上.PB是数据存储容量的单位,它等于2的50次方个字节,或者在数值上大约等于1000个 ...

最新文章

  1. BZOJ 2037 Sue的小球
  2. AWS re:Invent 2019 召开 | 云原生生态周报 Vol. 30
  3. android menu菜单 实现点击后不消失_教你修改Windows万年不变的黄色文件夹,让文件也不枯燥...
  4. sql去重常用的基本方法
  5. scp瓶中船是什么梗_早安打工人是什么梗?
  6. 特殊乘法 [清华大学计算机研究生机试真题]
  7. 牛客网 - 机器人走方格 (动态规划)
  8. html禁用选择,html – 设置可选的禁用属性
  9. 已知一个函数f可以等概率的得到1-5间的随机数,问怎么等概率的得到1-7的随机数...
  10. GIVE root password for maintenance
  11. latex longtable and supertabular 跨页表格
  12. latex插入参考文献技巧
  13. C++笔试题目大全(笔试宝典)(不断完善中)
  14. Fullcalendar 日历控件的基本使用
  15. Calendar设置HOUR_OF_DAY获取0点0分0秒一直输出12点
  16. STM32开发笔记03---Bit-Banding
  17. 存储过程中的异常处理
  18. 自动驾驶——模型预测控制(MPC)理解与实践
  19. upload-labs安装及攻略
  20. react项目中解决IE浏览器下报Promise未定义的错误

热门文章

  1. 「ACM-ICPC基础算法」
  2. 【信号处理】CFO估计技术(Matlab代码实现)
  3. 高精度直线度测量仪设计问题
  4. ACA大数据助理工程师题库总结
  5. jsp分页功能的实现
  6. 最新全开源的个人主页源码/原创拟态UI3.0版
  7. windows文件上传到linux平台乱码的解决办法
  8. 求助!利用pycharm爬取拉勾网Python相关职位招聘信息,报错json.decoder.JSONDecodeError
  9. 我们如何全面转向 Kubernetes?
  10. 浪潮8465m4安装linux,NF8465M4 – IPMI设置