项目分析与项目分层设计的解释

项目需求

3.1 校区报名柱状图

说明:统计期内,全部报名客户中,各校区报名人数分布。

展现:柱状图

条件:年、月,校区

维度:天区间,按查询条件来定

指标:报名人数

粒度:天/线上线下/校区

数据来源:客户管理系统的customer_relationship、itcast_clazz报名课程表

3.2 学科报名柱状图

说明:统计期内,全部报名客户中,各学科报名人数分布。

展现:柱状图

条件:年、月,学科

维度:天区间,按查询条件来定

指标:报名人数

粒度:天/线上线下/学科

数据来源:客户管理系统的customer_relationship、itcast_clazz报名课程表

3.3 总报名量

说明:统计期内,已经缴费的报名客户总量。

展现:数值。

条件:年、月

维度:年、月

指标:报名客户总量

粒度:天

数据来源:客户管理系统的customer_relationship表

3.4 线上报名量

说明:总报名量中来源渠道为线上访客渠道的报名总量

展现:线状图。

条件:年、月

维度:天区间,按查询条件来定

指标:报名客户总量

粒度:天

数据来源:客户管理系统的customer_relationship表

3.5 意向用户报名转化率

说明:统计期内,新增的意向客户中报名的客户占比。全部报名人数 / 全部新增的意向人数

展现:线状图。双轴:全部报名人数、报名转化率。

条件:年、月

维度:天/线上线下

指标:报名转化率=全部报名人数/全部新增的意向人数

粒度:天

数据来源:客户管理系统的customer_relationship表

3.6 有效线索报名转化率

说明:线上报名量 / 线上有效线索量,与上一个指标类似,此处的线索量需要排除已申诉数据。

数据来源:展现:线状图。双轴:线上报名人数、线上报名转化率。

条件:年、月

维度:天/线上线下

指标:线上报名转化率=线上报名人数/线上有效线索量

粒度:天

客户管理系统的customer_relationship表、customer_clue表、customer_appeal表

3.7 日报名趋势图

说明:统计期内,每天报名人数的趋势图。

展现:线状图。

条件:年、月

维度:天/线上线下

指标:报名人数

粒度:天

数据来源:客户管理系统的customer_relationship表

3.8 校区学科的报名学员TOP

说明:统计期内,全部报名学员中,校区学科排行榜,topN。A校区b学科第一,B校区a学科第二等等。

展现:柱状图

条件:年、月,校区,学科,数据量N

维度:天/线上线下

指标:报名学员人数

粒度:各校区各学科的报名人数和

数据来源:客户管理系统的customer_relationship表、itcast_clazz表

3.9 来源渠道占比

说明:统计期内,全部报名学员中,不同来源渠道的报名学员占比情况。

展现:饼状图

条件:年、月

维度:天/线上线下/来源渠道

指标:比值

数据来源:客户管理系统的customer_relationship表

3.10 咨询中心报名贡献

说明:统计期内,全部报名学员中,各咨询中心的报名学员人数占比情况。

展现:饼状图

条件:年、月,咨询中心

维度:天/线上线下/咨询中心

指标:报名学员人数

粒度:天/报名学员人数

数据来源:客户管理系统的customer_relationship表、employee表、scrm_department表

需求分析

3.1校区报名柱状图

复制代码
维度
	年
	月
	校区
指标
	报名人数
表
	custormer_relationship,itcast_clazz
字段
	cr.itcast_clazz_id=ic.id

3.2学科报名柱状图

复制代码
维度
	年
	月
	学科
指标
	报名人数
表
	customer_relationship、itcast_clazz
字段
	cr.itcast_clazz_id=ic.id

3.3总报名量

复制代码
维度
	年
	月
指标
	报名客户总量
表
	customer_relationship
字段
	sid

3.4线上报名量

复制代码
维度
	年
	月
指标
	报名客户总量
表
	customer_relationship
字段
	origin_channel 来源渠道

3.5意向用户报名转化率

复制代码
维度
	天
	线上线下case when  origin_channel other,netservice,vistied,phome
指标
	报名转化率=全部报名人数/全部新增的意向人数
表
	customer_relationship
字段
	origin_channel 来源渠道

3.6有效线索报名转化率

复制代码
维度
	年
	月
指标
	线上报名转化率=线上报名人数/线上有效线索量
表
	客户管理系统的customer_relationship表、customer_clue表、customer_appeal表
字段
	customer_clue cc 与 customer_relationship cr  on -cr.id=cc.customer_relationship_id

3.7日报名趋势图

复制代码
维度
	天
	线上,线下
指标
	报名人数
表
	客户管理系统的customer_relationship表 
字段
	id

3.8 校区学科的报名学员TOP

复制代码
维度
	年
	月
	校区
	学科
	数据量N
指标
	报名学员人数
表
	客户管理系统的customer_relationship表、itcast_clazz表
字段
	customer_rellationship cr left join itcast_clazz itc on cr.itcast_clazz_id=itc.id

3.9来源渠道占比

复制代码
维度
	年
	月
	天
	线上/线下
	来源渠道
指标
	不同渠道占比
表
	客户管理系统的customer_relationship表 
字段
	origin_type

3.10咨询中心报名贡献

复制代码
维度
	年
	月
	咨询中心
	天
	线上/线下
	来源渠道
指标
	报名学员人数
表
	客户管理系统的customer_relationship表、employee表、scrm_department表
字段
	customer_relationship cr  
    LEFT JOIN employee e ON cr.creator = e.id  
    LEFT JOIN scrm_department sd ON e.tdepart_id = sd.id 

分层设计的原因分析

ods层

将mysql中的数据导入到ods层,期间加了一个dt字段

dwd层

将ods层的数据进行清洗和格式转换,过滤空字段,拉链表建表时需要再添加两个字段

生效日期start_time,失效日期end_time.

  • 插入时,全量插入将所有数据直接导入即可
  • 增量插入使用dwd层的表,左连接ods层的表,再判断连接字段是否为null,不为空就修改
    edu_state字段为当前日期,为空就设置为9999-99-99

dwb层

根据需求分析,判断有多少张表进行连接,并分析表中的数据的大小,连接时用左连接的方式,大表放左边

可以避免数据倾斜的问题,

对于连接时字段的处理,应该是仅仅连接使用到的字段,这样会节省资源。但是大表如果不想以后重做就将每一个字段

赋予一个表名称缩写的别名,这样就可以不用管重复字段的问题(问题是,浪费资源,占用空间)。

dm层

这一层主要的任务是根据需求计算所需要的各种指标,其中时间是常计算的指标,而dws层是否需要搭建的判断依据很关键

(老师说判断是否需要去重,暂时还没理解清楚)

(网上说都是分析粒度的)

(我的理解,如果再dm层不能完成所有细粒度指标的计算,就需要进行上一层dws层的搭建)

rpt层

我主要将dm层计算好的数据按照需求取出来,并转换成fineBi需要的格式

其中发现的问题(FineBi好像不能展示纯数字,纯数字就会被识别为指标,不管导入的格式是什么)

(要想展示年月日,最好使用拼接字符串或者加上一个汉字年,月,日等)

mysql_rpt层

将数据从hive的rpt层导入到mysql中,暂时知道可以使用的方式有两种

①使用presto,进行多数据源的连接然后导入

②使用sqoop导入工具,在终端导入,这个使用的是sqoop命令连接hive和mysql的源数据进行导入

遇到的问题

第一个问题:导入中文时,中文变成了?,

解决:第一次将mysql的建库建表语句都设为了utf8编码格式,但是导入时中文还是为?号

sql 复制代码
第二次是在sqoop导入语句中加
?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

--connect jdbc://192.168.88.80/edu_rpt?useUnicode=true&characterEncoding=UTF-8&autoTeconnect-true

解释:--connect jdbc://虚拟机ipv4地址/数据库名?useUnicode=true&characterEncoding=UTF-9&autoTeconnect-true

第二个问题grouping sets方法对比

①hive中grouping sets的格式为,让分组字段逆序排列,然后分组的就为1,未分组的就为0,这时得到二进制,再将其转换成十进制就可以作为group_type的值进行类型判断

②presto中grouping sets 的格式为

case when group_type=值 then '值',when group_type=值 then '值'......

group by

grouping sets(分组字段)

FineBI

展示结果时使用的是FineBI

遇到的问题是,通过计算所得到的年月日,作为维度时不太正常,纯数字是没有办法显示的,需要加入汉字或者字符连接才能够进行展示(不知道是不是只是我个人的问题)

最后使用FineBI展示结果时更炫酷的小技巧:

①可以在标签行列加入指标或者维度,然后在三个点的选择里会有一个为特殊显示,这个可以设置闪烁动画,一般设为大于10就可以让所有的都动起来

②在选择颜色列时,拖入一个维度或指标后,可以点击左边的颜色文字,可以更换颜色样式,可以选择彩虹样式,也可以自定义颜色组成

③在选择双轴时,可以通过点击样式标签,然后自定义双轴显示图形的样式,可以一个是柱状图,一个是折线图

相关推荐
说私域1 小时前
基于开源AI智能名片链动2+1模式S2B2C商城小程序的超级文化符号构建路径研究
人工智能·小程序·开源
永洪科技1 小时前
永洪科技荣获商业智能品牌影响力奖,全力打造”AI+决策”引擎
大数据·人工智能·科技·数据分析·数据可视化·bi
shangyingying_11 小时前
关于小波降噪、小波增强、小波去雾的原理区分
人工智能·深度学习·计算机视觉
计算机毕设定制辅导-无忧学长1 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
weixin_307779131 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
程序员柳2 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、2 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
书玮嘎2 小时前
【WIP】【VLA&VLM——InternVL系列】
人工智能·深度学习
IT乌鸦坐飞机2 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10242 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle