ODS (原始数据层)
主要完成:
(1)保持数据原貌不做任何修改,保留历史数据,储存起到备份数据作用;
(2)压缩采用gzip,压缩比是100g数据压缩完10g左右;
(3)创建分区表,防止后续的全表扫描,减少集群资源访问数仓的压力,一般按天存储在数仓中。
DWD(Data WareHouse Detail)数据明细层,主要是将从业务数据库中同步过来的ODS层数据进行清洗和整合成相应的事实表。事实表作为数据仓库维度建模的核心,需要紧紧围绕着业务过程来设计。
DWD主要完成:
采用维度模型方法,按照主题建立各种数据模型,构建最细粒度的明细事实表
数据清洗:去除空值、脏数据、枚举值转换,超过极限范围的,使用hive sql数据清洗
数据脱敏:对身份证,手机号等敏感信息脱敏,加*,使用spark 脱敏
1. 数据清洗
(1)空值去除
(2)过滤核心字段无意义的数据,比如订单表中订单 id 为 null,支付表中支付 id 为空
(3)将用户行为宽表和业务表进行数据一致性处理
2. 脱敏
对手机号、身份证号等敏感数据脱敏
3. 维度退化
将维度退化至事实表中,减少事实表和维度表的关联
对业务数据传过来的表进行维度退化和降维。(商品一级二级三级、省市县、年月日)
4. 压缩
snappy
5.存储
orc列式存储
去除空值,脏数据,超过极限范围的数据,行式存储改为列存储,改压缩格式)、规范化、维度退化、脱敏等操作。
基于每个具体的业务过程特点,构建最细粒度的明细层事实表
但在数据仓库只产品中,一旦涉及到 join 关联操作,会消耗大量的资源,且降低运行的速度。所以会选择增加几余,将这些维度表合并到主表中形成宽表。这种操作被称为维度退化。
星星模型 所有维表都直接连接到事实表上时,整个图解就像星星一样,故将该模型称为星型模型
雪花模型是对星型模型的扩展
雪花模型使得维度分析更加容易
多个星型构成一个星座
去除空值,脏数据,超过极限范围的数据,行式存储改为列存储,改压缩格式)、规范化、维度退化、脱敏等操作。