一、
数据运营层(ODS):原始数据:
ODS:Operation Data Store 数据准备区,也称为贴源层。数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源。
数据仓库层(DW):数据清洗:
DWD:data warehouse details 细节数据层,是业务层与数据仓库的隔离层。主要对ODS数据层做一些数据清洗和规范化的操作。
数据清洗:去除空值、脏数据、超过极限范围的
DWB:data warehouse base 数据基础层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
DWS:data warehouse service 数据服务层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据层,一般是宽表。用于提供后续的业务查询,OLAP分析,数据分发等。
用户行为,轻度聚合
数据服务层/应用层(ADS):出报表:
ADS:applicationData Service应用数据服务,该层主要是提供数据产品和数据分析使用的数据,一般会存储在ES、mysql等系统中供线上系统使用。
二、
1.教育项目使用CDH6.2.1的版本
2.教育项目的环境注意事项:
坚决不允许挂起, 以及强制关闭操作, 如果做了, 非常大的概率导致服务器出现内存以及磁盘问题, 需要重新解压。而且长时间不用虚拟机需要将其关机。
(1)关机步骤:关机必须在XShell上直接执行关机命令: shutdown -h now (每一个节点都要执行)
(2)重启服务器: 执行 reboot (每一个节点都要执行)
(3)CDH软件开机所有服务恢复正常,大约需要耗时10-20分钟,所以一开机就访问hadoop01:7180是可能无法访问的。
3.数据仓库的基本概念:
(1)什么是数据仓库:存储数据的仓库,主要用于存储过去既定发生的历史数据,对这些数据进行数据分析的操作,从而对未来提供决策支持。
(2)数据仓库最大的特点:既不生产数据也不消耗数据,数据来源于各个数据源。
(3)数据仓库的四大特征:
a.面向于主题的:面向于分析,分析的内容是什么,什么就是我们的主题
b.集成性:数据来源于各个数据元,将各个数据源的数据汇总在一起
c.非易失性(稳定性):存储在数据仓库中数据都是过去既定发生的数据,这些数据都相对比较稳定,不会发生改变
d.时变性:随着时间的推移,原有的分析手段和原有的数据可能都会出现变化(分析手段的更换,以及数据的新增)
(4)ETL:抽取 转换 加载
指的是数据从数据源将数据灌入到ODS层,以及从ODS层将数据抽取出来,对数据进行转换处理工作,最终将数据加载到DW层,然后DW层对数据进行统计分析,将统计分析后的数据灌入到DA层,整个全过程都是属于ETL的范畴。
狭义上指从ODS层到DW层过程。
(5)数据仓库与数据库的区别:
数据库(OLTP):T(事务)面向于事务(业务)的,主要是用于捕获数据,主要是存储的最近一段时间内的业务数据,延迟性比较低(交互式强),一般不允许出现数据冗余
数据仓库(OLAP):A(分析)面向于分析(主题)的,主要用于分析数据,主要是存储过去的历史数据,延迟性比较高(交互性较弱),可以允许出现一定的冗余
(6)数据仓库与数据集市:
数据仓库指的是集团数据中心:主要是将公司中所有的数据全部聚集在一起进行相关的处理操作(ODS层),此操作一般和主题基本没有什么太大的关系。
数据的集市(小型数据仓库):在数据仓库的基础之上,基于主题对数据进行抽取处理分析工作,形成最终分析的结果
一个数据仓库下可以有多个数据集市。
4.维度分析:
维度分析:针对某一个主题,可以从不同的维度进行统计分析,从而得出各种指标的过程
维度:一般指分析的角度,看待一个问题的时候,可以多个角度来看待,而这些角度指的就是维度。
维度的分类:
定性维度:指的计算每天,每月,各个的维度,一般来说定性维度的字段都是放置在group by中
定量维度:指的是统计某一个具体的维度或者是某一个范围下的信息,比如:2020年度订单额,统计20-30岁区间人群的人数,一般来说定量维度的字段都是放置在where中
维度的分层与分级:本质上是对维度进行细分的过程,比如按年统计:按季度、按月、按天、按小时;又比如按省份统计:按市、按县。在实际分析中,统计的层级越多,意味着统计的越细化,设置维度内容越多。
维度的下钻和上卷:以某一个维度为基准,往细化统计的过程称为下钻,往粗粒度称为上卷。比如:按照天统计:如果需统计出小时,指的就是下钻;如果需要统计季度,月,年称为上卷统计。从实际分析中,下钻与上卷,意味着统计的维度变得更多了。
指标:指的是衡量事务发展的标准,就是度量值,常见度量值:count(),sum(),max(),min(),avg() 还有一些比例指标(转换率,流失率,同比...)
指标的分类:
绝对指标:计算具体的值指标 ->count(),sum(),max(),min(),avg()
相对指标:计算比率问题的指标->转换率,流失率,同比...
案例:
需求:请求出在2020年度,女性,未婚,年龄在18-25岁区间的用户每一天的订单量
维度:时间维度、性别维度、婚姻状态、年龄
定性维度:每一天
定量维度:2020年度,女性,未婚,18-25岁
指标:订单量(绝对指标)--->count()
select day,count(1) from 表 where year='2020' and age between 18 and 25 and 婚姻='未婚' and sex='女' group by day;
5.数仓建模:
数仓建模指的是规定如何在hive中构建表,数仓建模中主要提供两种理论来进行数仓建模操作:三范式建模和维度建模理论。
三范式建模:主要是存在关系型数据库建模方案上,主要规定了比如建表的每一个表都应该有一个主键,数据要尽量避免冗余的发生等等
维度建模:主要存在分析型数据库建模方案上,主要是一切以分析为目标,只要是利于分析的建模,都是可以的,允许出现一定的冗余,表可以没有主键