数据仓库分层详解

  • 为什么要对数据仓库分层?

a)空间换时间 通过建设多层次的 数据模型供用户使 用,避免用户直接 使用操作型数据, 可以更高效的访问 数据。

b)把复杂问题简单化。 将一个复杂的任务分 解成多个步骤来完成, 每一层只处理单一的 步骤,比较简单和容 易理解。而且便于维 护数据的准确性,当 数据出现问题之后, 可以不用修复所有的 数据,只需要从有问 题的步骤开始修复。

c)便于处理业务的变化。 随着业务的变化,只需 要调整底层的数据,对 应用层对业务的调整零 感知

  • 数据仓库分层结构

数据仓库分层详解_第1张图片

ODS层(操作数据存储层):ODS层是将OLTP数据通过ETL同步到数据仓库来作为数据仓库最基础的数据来源。在这个过程中,数据经过了一定的清洗,比如字段的统一,脏数据的去除等,但是数据的粒度是不会变化的。ODS层的数据可以只保留一定的时间。

MID层(中间层): MID中间层使用范式建模的方法。这一层主要是做规范化的事情,比如应用库表非规范化,字段格式复杂(json格式)需做一些处理。这一层不是必须有的。也不会对外开放使用。范式建模保证了数据一致性、唯一性、正确性。

DW-DM层(仓库核心层): DW-DM层针对部门(比如财务部门)或者某一主题(比如商户、用户),通过维度建模(推荐星型模型),构建一致性维度,原子粒度的数据是DW层,按照实体或者主题经过一定的汇总,建设数据集市模型。数据集市可以为OLAP提供服务。

OLAP/OLAM/APP层(应用层): 这层数据是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。从数据粒度来说是高度汇总的数据。从数据的广度来说,则并不一定会覆盖所有业务数据。从极端情况来说,可以为每一张报表在APP层构建一个模型来支持,达到以空间换时间的目的数据仓库的标准分层只是一个建议性质的标准,实际实施时需要根据实际情况确定数据仓库的分层,不同类型的数据也可能采取不同的分层方法。

有什么不懂的欢迎大家在评论区交流!

你可能感兴趣的:(数据仓库,大数据,hive,sql,数据库,数据库开发)