查看原文
其他

数仓架构之数仓分层

关注回复:Flink, 领取资料!

 关于喜马拉雅首席数仓架构师-杰尼在长沙的往事 


    首先应该说明的是,关于数仓如何分层的范畴,并没有统一的标准,具体分层应该视系统技术要求做规范。



01

ODS-操作数据层


    ODS全称 Operational Data Store,是最容易理解的一层,也是最接近源数据的一层。整体上,ODS偏向存储,面向主题。此处所言【主题】,大概可以给出几个主题供感受一下,e.g. 销售订单主题、用户行为主题等...基本上是某一类基于真实应用场景的范围。    ODS层的数据,是下层数据源经过抽取、清洗、加载得来的。下层是一个形象的表述,其真实构成主要包括:业务系统的结构化数据,日志系统的半结构化数据以及常见的非结构化数据,非结构化数据主要以文本多媒体资源音视频存在。
    抽取、清洗、加载这一过程,往往还匹配着一个岗位,ETL工程师。由于源数据存在例如不具有分析处理价值的脏数据和其他异常数据,所以在进行ETL的过程中,会进行必要的清洗、去重等过程,这样接入到ODS层的数据具有一定的规范性,为后续分层处理作为支撑。

文章太干货,注水防上火


02


DW-数据仓库层


    数据仓库层(DW),是数据仓库的主体.在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。这一层和维度建模会有比较深的联系。    DW又可细分:       数据明细层:Data Warehouse Detail       数据中间层:Data WareHouse Middle       数据服务层:Data WareHouse Servce
Data Warehouse Detail    DWD一般保持和ODS层一样的数据粒度,并且提供给一定的数据质量保证。同时,为了提高数据明细层的易用性,DWD层会采用一些维度退化手法,将维度退化到事实表中,减少事实表和维度表的关联。此外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中形成宽表,提高数据的可用性。    可能这部分不是特别容易理解,但是基本上就是退化和聚合两个要点。


Data WareHouse Middle

    在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表提升公共指标的复用性,减少重复加工,直观来说,就是对通用的核心维度进行聚合操作,算出相应的统计指标。


Data WareHouse Service

    又称为数据集市或者宽表,按照业务划分,例如流量,订单,用户等,生成字段比较多的宽表,用于后续的业务查询,OLAP分析,数据分析等。



03


数据应用层-APP


    这部分也很容易理解,最能直观感受的一层,主要产品体现方式:智慧大屏,企业报表等。

    应用层是根据业务需要,由前面三层数据统计而出的结果,可以直接提供查询展现,或导入至数据库中使用。

整体架构分层明细     我目前也是着手了这一层的工作,前段时间主要和前端负责对接口,稳定的数据源都没有,全是整理的数据,基本上是数据孤岛,一天写几十个sql接口。
- END -

点个关注,一起进步↓


干货推荐



大批量更新数据mysql批量更新的四种方法


深入理解HBase Memstore


数据分析指标篇——指标解读


博主微信(空空|渣渣空)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存