数据仓库为什么要分层

第一家公司的老数仓技术架构:mysql+kettle,分层s(ods)层、b层(有点记不清了,一个是取数据,一个是做拉链)、m层(根据业务设计的表:贷前loan_before、贷后loan_after,并且是拉链表_h)/a层(a_fc_analysis_user_info/a_fc_analysis_transaction_info)
第一家公司的新数仓技术架构:sqoop+hive,分成ods层(所有表都是保存历史全量快照,除了es映射的日志表)、mid层(是拉链表,org_info数据量小、变化不大)、a层(a_fc_analysis_user_info/a_fc_analysis_transaction_info)
第二家公司的数仓:建立在阿里云EMR上,分层:ods层(快照,历史保存30/60/无限大天)、dwd层(模型)、dws层(报表)、rpt层(报表)

最近在开发一个业务数据支撑的时候,我想用其他同事写好的,rpt层的数据,这样依赖要避免!正确做法是开发模型,然后尽可能的复用。当我把几个表需要的用户数据做好一张表之后,我发现rpt层的sql量大大减少,依赖关系也变得很清晰。我有点理解分层的意义了——减少冗余的sql,避免重复执行浪费资源浪费时间,同时减少从ods到rpt的依赖的层数,便于后期维护。

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
分割线
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

20201106更新
去年对分层的好处的理解是:复用。除此之外,增加其他几点,总结如下:
1.复用性:避免重复开发、重复计算,节约资源。
2.易于理解:数仓是面向分析的,分层组织数据使数据更容易理解,比如在dwd层使用星型模型/宽表,便于理解和使用。
3.加快查询:比如使用宽表,避免了多次join,可以从单表快速支持需求产出结果;将数据做预聚合(轻度汇总层),减少计算量,加快查询速度。
4.条理清晰:每一层各司其职。
5.容错性:出现错误可以根据血缘关系快速进行错误的排查。比如在azkaban,可以看到flow的执行中的job的执行情况,非常直观。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值