开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段): 网站流量日志分析--统计分析--复合指标分析--平均访问时长】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/696/detail/12217
网站流量日志分析--统计分析--复合指标分析--平均访问时长
1、平均访问时长
平均每次访问(会话)在网站上的停留时间。体现网站对访客的吸引程度。
平均访问时长=访问总时长/访问次数。
2、举例子,a 网站人均用户在上面只能呆两三秒钟,b网站人均用户在上面呆七八分钟,这时就可以知道到底哪个网站对用户具有吸引力,想要得到平均访问时长,需要一个总的时间除以访问的次数也是会话次数,这样就可以得到一个大概的平均值。
3、平均访问时长:一天之内用户平均每次会话在网站的停留时间
=总的停留时间/会话的次数(基础指标 vv)
数据表:ods_ click_ pageviews
涉及到 session,除了 session 之外还需要总的停留时间,这时基于两点,优先考虑点击流模型,在点击流模型中有 pageviews 和 visit,这两个都有 session,都有会话,visit 把 pageviews 做了聚合,只用第一步和最后一步的数据得到这样一个结果,当中提供停留几步就看不出来了,所需要的两个指标只能通过 pageviews 模型生成。首先第一个有 session 字段进行去重统计得到今天的会话指数,另外一个面属于同一个 session 优化的,每一步都有一个所谓的 page_staylong 页面停留时间。
把 pageviews 模型做一个抽象,在 pageviews 模型中有 session id 的概念, session 编号,接下来会有 step 访问地,在同一块是第几步,每一步的停留时间staytime,第一步 session1停留了30秒,第二步停留10s,第三步60s,session2 第一步30s,第二步停留60s,计算用户今天在网站上总的停留时长,如下有两个会话,一个会话 session1停留100s,另一个会话 session2停留90s。
pageviews
sessionID |
step |
staytime |
Session1 |
1 |
30s |
session1 |
2 |
10s |
Session1 |
3 |
60s |
session2 |
1 |
30s |
session2 |
2 |
60s |
把两个指标相加除以二得到平均停留指标,灵活一点,用sum求和把每一步的时间加起来,先局部求和变成 session,再把 session 加起来,和把 session 直接求和效果一样,直接把每一步的停留时间加起来变成总的会话时间,统计会话有五条记录,属于两个会话,因此统计时需要进行去重操作 distinct,把所有页面的节点加起来变成总的停留时间,再把 session 做去重统计,得到会话 vv,两个一相除就是平均网站会话访问时间。
sun (staytime )
count (distinct sessionID)
分组字段:时间( day) day 比较特殊还是表的分区字段通过 where 分区过滤即可。
度量计算:sum(page_ staylong)/count(distinct session)
select
sum(t.page_ staylong)/count(distinct t.session)
结合表进行修改,
得到每一步的停留时间变成总的停留时间,再去重 session 得到 vv,两个指标再相除得到的就是平均访问时长,用户每次在网站停留的时间
From
ods_click_pageviews t
where
t.datestr=
"20181101";--211.24
别名t,分区过滤,保证拿到的是20181101这一天的数据,天分组比较特殊,分区字段
4、在 hive 中做执行,最终计算的结果是211.24,大概是三分多钟。
今天来到网站的用户,产生对话, 平均每次会话会在网站上停留211秒钟,这个指标就可以看出来该网站对用户的吸引程度,如果平均会话时间只有一秒两秒,网站没有吸引,所以这个指标可以从业务中解读出来网站的访问情况,简单梳理一下,确定秒确定数据梳理思路写sql即可。