数据仓库为什么要分层

第一家公司的老数仓技术架构: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的依赖的层数,便于后期维护。

你可能感兴趣的:(数据仓库)