赞
踩
一般大数据数据仓库的分层结构如图所示:
其中,ODS层是近源层,一般是同步业务端数据,数据不进行更改(但是可以扩充字段,比如更新时间、来源等);CDM层是用来进行数据清洗、数据分析以及建模;ADS层存储的是清洗好的数据,对外提供数据服务,狭义上也称为数据集市层。
CDM层又分为数据明细层DWD和数据汇总层DWS层:
数据明细层DWD层存储的是经过维度退化后进行简单汇总
明细表,何为维度退化?
维度就是一个组织方式,比如时间、分类、地域等,维度退化其实也就是简单汇总的过程,就是通过添加字段的形式,关联维度表形式一张表。比如,目前有四张表,分别是商品表、一级分类表、二级分类表、三级分类表,如图所示
那么,这里的维度退化,就指的是将主表关联维表最后形成一张表,也就是在商品表加五个字段,分别是:一级品类名称、二级品类id、二级品类名称、三级品类id、三级品类名称,如图所示
这样做的好处是在后续关于商品信息表的操作时,直接使用经过维度退化的轻度汇总的明细表,减少join操作(大数据的join操作会进行大量数据移动,效率较低)
数据汇总层DWS层,是按照主题进行计算汇总,形成的宽表
首先,何为主题?
主题就是某一个需求或目标,比如我们要获取所有交易信息的汇总表,那么主题就是交易信息,如图所示:
明细表有商品信息表、支付方式表、交易场景表,经过join连接,汇总得到相应主题的大宽表,也就是数据汇总表DWS的交易信息表。
这里的DWD的表与DWS表的区别如下:
DWS宽表是针对某个场景,由多个DWD表组成而来,其实也叫宽表模型。(在DWD建模一般是星形模型,也就是事实表关联多个维度表)。
ADS是数据应用层,狭义上也是数据集市层,存储的是处理好的数据,为上层应用提供数据服务。这里存在一个问题,数仓是离线批处理,较慢,上层应用需要的是即时查询,那么如果数据保存在数仓中,就无法满足应用,那么ADS层数据需要存储在哪里?
ADS层数据可以选择其他产品,比如并发查询可以存储在Hbase中,搜索检索可以存储在ES中,聚合查询可以存储在Druid中,或者有些场景可以存储在PG或Mysql关系数据库中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。