数据仓库分层

发布于:2022-11-02 ⋅ 阅读:(895) ⋅ 点赞:(0)

1、ods层做了哪些事?

(1)保持数据原貌,不做任何修改====>数据备份

(2)采用压缩 snappy,lzo      =====>节省磁盘的空间

(3)创建分区表             ========>防止后续全表扫描

2、dwd层做了哪些事?

(1)数据清洗

             1)空值去除 

             2)过滤核心字段无意义的数据,比如订单中订单id为null支付表中支付id为空;

             3)重复数据,进行过滤;

(2)清洗手段

             HQLMRSparkSQLKettlePython(一般项目采用sql进行清除)

(3)清洗掉多少数据算合理

         1万条数据清洗掉1条

(4)数据脱敏

          md5(hive自带的函数);身份证号、手机号(177***0013)、银行卡号

(5)采用压缩

       lzo 、snappy ======>减少磁盘空间(100G-->10G)

(6)采用列式存储

        parquet、orc =====>增加查询速度

(7)数仓建模(这个是第一步的!!!!!,但是内容太多放在第7了)

        dwd层需构建维度模型,一般采用星型模型,呈现的状态一般为星座模型。

        维度建模一般按照以下四个步骤:

        选择业务过程→声明粒度→确认维度→确认事实

         1)选择业务过程

                 选择关心的事实表(下单、支付、点赞、收藏)

                中小型公司:选择所有的业务线

                 大型公司:3000张表(选择感兴趣的业务线)

        2)声明粒度

                一行数据表示上面含义:1次、1天、1周、一个月(尽可能选择最小粒度,不然一行代                    表 聚合一个月的数据,求这个月中某一天的数据就没办法了)

               例如订单表里面: 张三(用户) 下单   10块钱 (1.代表买了一个商品一次10块?2.还是                 代表一天以内把所有商品买了10块?3.还是一周时间内买的所有商品10块?)

              声明粒度:一般选择一次或者一天

               (不要做聚合操作就可以了)

       3)确认维度

            时间、地区、用户、商品、活动、优惠卷(都是描述性的名称,称为维度信息,一般也就               是 where或者group by筛选的字段

     对于某些维度信息退化(维度建模当中的星型模型,让事实表周围只有一级维度):

        1)对业务数据传过来的表进行维度退化和降维。(商品一级二级三级、省市县、年月                   日)

        2)商品表、spu表、品类表、商品一级分类、二级分类、三级分类===>商品表

        3)省份表、地区表=>地区表

        4)时间表、假期表===>时间表

        5)活动表、活动规则表===>活动表

    4)确认事实

          确认事实中的度量值(次数、件数、个数、金额)。

          度量值的特点是可以累加

              通过以上步骤,结合本数仓的业务事实,得出业务总线矩阵表如下表所示。业务总线矩            阵的原则,主要是根据维度表事实表之间的关系,如果两者有关联则使用√标记。

表  业务总线矩阵表

时间

用户

地区

商品

优惠券

活动

编码

度量值

订单

件数/金额

订单详情

件数/金额

支付

次数/金额

加购

件数/金额

收藏

个数

评价

个数

退款

件数/金额

优惠券领用

个数

       

         至此,数仓的维度建模已经完毕,DWS、DWT和ADS和维度建模已经没有关系了。

         DWS和DWT都是建宽表,宽表都是按照主题去建。主题相当于观察问题的角度。对应着维             度表。

3、dws层做了哪些事?

   字段怎么来?

  站在维度表的角度去看待事实,主要看的是事实表的度量值,通过与之关联的事实表,获得不同的事实表的度量值。

 4、dwt层做了哪些事?

DWT层主题宽表都记录什么字段?

如图所示,每个维度关联的不同事实表度量值以及首次末次时间、累积至今的度量值、累积某个时间段度量值

    根据需求倒推
    业务过程 + 统计周期 + 统计粒度 相同的 多个派生指标 ===》 放到一张汇总表
    
    比如:交易域用户商品粒度订单最近1日汇总表
        业务过程: 订单 
        统计周期: 最近1日 
        统计力度: 用户商品
      
    分类: 最近1天的汇总、最近n天的汇总、历史至今的汇总 ==》 22张汇总表

 

  5、ads层做了哪些事?

有多少个?

平时100左右 活动时200个左右  我们公司试过400、500个

分别对设备主题、会员主题、商品主题和营销主题进行指标分析,其中营销主题是用户主题和商品主题的跨主题分析案例

  出指标: 分析过哪些指标 
        ---》 手写 (指标实现的思路 :例如:谁跟谁Join、按照什么groupby聚合、怎么开窗)

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到