ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5. 数据分析统计的指标_项目一

2022-08-10 14:01:12  阅读:223  来源: 互联网

标签:数据分析 pvs string visit month 指标 year table 统计


数据分析指标

1. 基于时间维度(①每月用户的访问指标 ②每天用户的访问指标 ③每小时用户的访问指标) 重写数据
2. 基于用户维度(不同年龄段用户的访问量指标) 重写数据
3. 基于地理维度(每个分区下不同省份用户的访问指标) 追加数据

创建时间维度表及导入数据

/*
 * 统计分析
 */
-- 1. 统计网站每个月用户的访问量指标
-- 创建指标结果的数据存储表 指标表一般都是内部表,而且不需要分区
create table if not exists month_pvs(
	visit_year string,
	visit_month string,
	pvs int
) row format delimited 
fields terminated by ',';


-- 将查询结果增加到指标表中
insert overwrite table month_pvs 
select visit_month, visit_year, count(*) as pvs
from web_detail
group by visit_month, visit_year;



create table if not exists day_pvs(
	visit_year string,
	visit_month string,
	visit_day string,
	pvs int
) row format delimited 
fields terminated by ',';


insert overwrite table day_pvs
select visit_year, visit_month, visit_day, count(*) as pvs
from web_detail
group by visit_year, visit_month, visit_day;



/**
 * 创建指标表
 */
create table if not exists hour_pvs(
	visit_year string,
	visit_month string,
	visit_day string,
	visit_hour string,
	pvs int
) row format delimited 
fields terminated by ',';


-- 统计网站每小时用户的访问量指标 按照年月日时进行分组,求每一组中的数据 覆盖写
insert overwrite table hour_pvs
select visit_year, visit_month, visit_day, visit_hour, count(*) as pvs
from web_detail
group by visit_year, visit_month, visit_day, visit_hour;

创建用户维度表及导入数据

/*
 * 统计不同年龄段
 * 划分年龄段规则如下:
 * 	0-18 少年人
 *  18-40 青年人
 *  40-65 中年
 *  65以上 老年
 */
create table if not exists age_pvs(
	age_range string,
	pvs int
) row format delimited fields terminated by ",";

insert overwrite table age_pvs
select tmp.ageDuan age_range, count(*) pvs
from
(
select 
    case 
    when (age between 0 and 18) then "少年人"
    when (age between 18 and 40) then "青年人"
    when (age between 40 and 65) then "中年"
    else "老年"
    end as ageDuan
from web_detail
) tmp
group by tmp.ageDuan;

创建地理维度表及导入数据

/*
 * 统计网站不同的省份的用户访问量指标 -- 明细宽表中存在三个字段、省份、纬度、经度 
 * 这三个字段都是和地理纬度有关的字段
 * 只需要统计“昨天”不同省份即可
 */
create table if not exists area_pvs(
	logdate string,
	provice string,
	latitude string,
	longitude string,
	pvs int
) row format delimited fields terminated by ",";


-- 追加写
insert into table area_pvs
select logdate, province, latitude, longitude, count(*) as pvs
from web_detail 
where logdate ="${hiveconf:yesterday}" 
-- where logdate ="20220808" 
group by province, latitude, longitude, logdate;

标签:数据分析,pvs,string,visit,month,指标,year,table,统计
来源: https://www.cnblogs.com/jsqup/p/16572140.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有