1.1 数仓分层及每层的职责
-
近源层(ods)
存放原始数据,直接加载原始日志、数据,数据保存原貌不做处理
-
仓库整合层
-
明细数据层(dwd)
结构与粒度原始表保持一致,对ODS层数据进行清洗(去除空值、脏数据、超过极限范围的数据)
-
服务数据层(dws)
以DWD为基础,进行轻度汇总
-
-
应用层(ads)
以DWD为基础,进行轻度汇总
1.2 分层的意义
空间换时间:通过建设多层次的数据模型供用户使用,避免用户直接使用操作型数据,可以更高效的访问数据
把复杂问题简单化:一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复
便于处理业务的变化:随着业务的变化,只需要调整底层的数据,对应用层对业务的调整零感知
1.3 如何理解数仓
面向主题 – 集成数据 – 随时间变化 – 信息相对稳定 --> 用于管理决策过程支持
是具有什么样特点什么样目地的数据集合
1.4 数据集市和数仓的区别
数仓更多的市针对一个公司,数据集市针对的是一个部门,数据技术的数据针对范围更小。
1.5 数据仓库和数据库的区别
数据库是软件,数据仓库是数据管理的概念。数据库更多的为了交互关系数据,数据仓库更多是为了利用数据进行分析决策。一般数仓数据比数据库数据保留时间更长。
1.6 数仓中每层表的建模
ODS: 特点是保持原始数据的原貌,不作修改!
原始数据怎么建模,ODS就怎么建模!举例: 用户行为数据特征是一条记录就是一行!
ODS层表(line string) 业务数据,参考Sqoop导入的数据类型进行建模。
DWD层:特点从ODS层,将数据进行ETL(清洗),轻度聚合,再展开明细!
- 在展开明细时,对部分维度表进行降维操作
例如:将商品一二三级分类表,sku商品表,spu商品表,商品品牌表合并汇总为一张维度表!
- 对事实表,参考星型模型的建模策略,按照选择业务过程→声明粒度→确认维度→确认事实思路进行建模
选择业务过程: 选择感兴趣的事实表
声明粒度: 选择最细的粒度!可以由最细的粒度通过聚合的方式得到粗粒度!
确认维度: 根据3w原则确认维度,挑选自己感兴趣的维度
确认事实: 挑选感兴趣的度量字段,一般是从事实表中选取!