数仓学习_入门篇2

数仓学习-入门篇2

一、数据仓库分层架构

按照数据流入流出的过程,数据仓库架构可分为:源数据、数据仓库、数据应用
在这里插入图片描述
数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自下而上流入数据仓库后向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。
(1)源数据:此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
(2)数据仓库:也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
(3)数据应用:前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
在这里插入图片描述
数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。(具体通过ETL工具实现,FDL)

二、常规数仓模型架构

如下图可知:
数据仓库的整体架构:各个系统的元数据通过ETL同步到操作性数据仓库ODS中,对ODS数据进行面向主题域建模形成DW(数据仓库),DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ODS

操作性数据仓库ODS的应用场景:
1.在业务系统和数据仓库之间形成一个隔离,ODS直接存放从业务系统抽数过来的数据,这些数据从结构和数据上与业务系统保持一致,降低了数据抽取的复杂性
2.转移一部分业务系统的细节查询功能,因为ODS存放的数据与业务系统相同,原来由业务系统产生的报表,现在可以从ODS中产生了
3.完成数据仓库中不能完成的功能,ODS存放的是明细数据,数据仓库,DW或DM都存放的是汇聚数据,ODS提供查询明细的功能

DW

数据仓库,是为企业所有级别的决策指定过程,提供所有类型数据支持的战略集合,是一个包含所有主题的通用的集合
1.效率足够高,要对进入的数据快速处理
2.数据质量,数据仓库是提供很多决策系统的支撑数据,所以数据准确非常重要
3.扩展性,企业业务扩展和降低企业建设数据仓库的成本考虑
4.面向主题,数据仓库中的数据是按照一定的主题域进行组织的。每一个主题对应一个宏观的分析领域,数据仓库排除对决策无用的数据,提供特定主题的简明视图

DM

数据集市,以某个业务应用为出发点而建设的局部DW,DW只关心自己需要的数据,不会全盘考虑企业整体的数据架构和应用,每个应用有自己的DM

补充概念:数据集市

在这里插入图片描述
数据集市是数据仓库的一个子集或者说是集成后的子集。
数据集市通常是面向部门的或者是部门级业务,或者是面向部门的主题的,举个例子例如在金融领域可能会有结算部门的数据集市、风控部部门数据集市、市场部门的数据集市、运营部门的数据集市,这里的特点就是面向部门的,但是对于有的部门它的组织结构可能比较大,所以它所负责的业务线也有多个。
数据集市是面向部门的子业务,
数据集市是面向主题的,一般公司的主题就是部门或者业务线。

三、数仓设计过程

1、建模基本流程

在这里插入图片描述
数仓项目建设过程可以分为
①需求调研:输出需求分析文档和模型设计文档,设计出DW层和DM所需要的数据表,维度表和事实表
②源数据》ODS;
③ODS》DW;
④DW》DM;
⑤DM》报表
其中
②源数据》ODS、③ODS》DW、④DW》DM 的数据流是借助ETL工具实现,
DM》报表 的数据流借助FineReport/FineBI实现。

2、常用的建模方法

数据仓库的建模方法有很多种,每一种建模方法代表了哲学上的一个观点,代表了一种归纳、概括世界的一种方法。
常见的有:范式建模法、维度建模法、实体建模法等,每种方法从本质上将是从不同的角度看待业务中的问题。

(1)范式建模

范式建模法(Third Normal Form,3NF)
范式建模法其实是我们在构建数据模型常用的一个方法,该方法的主要由 Inmon 所提倡,主要解决关系型数据库的数据存储,利用的一种技术层面上的方法。目前,我们在关系型数据库中的建模方法,大部分采用的是三范式建模法。
范式 是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则,而在关系型数据库中这种规则就是范式,这一过程也被称为规范化。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
在数据仓库的模型设计中,一般采用第三范式。一个符合第三范式的关系必须具有以下三个条件 :
每个属性值唯一,不具有多义性 ;
每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;
每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
在这里插入图片描述
根据 Inmon 的观点,数据仓库模型的建设方法和业务系统的企业数据模型类似。在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模型和逻辑模型。同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例化。

(2)维度建模法(Dimensional Modeling)

维度模型是数据仓库领域另一位大师Ralph Kimall所倡导,他的《数据仓库工具箱》是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。
在这里插入图片描述
典型的代表是我们比较熟知的星形模型(Star-schema),以及在一些特殊场景下适用的雪花模型(Snow-schema)。

维度建模中比较重要的概念就是 事实表(Fact table)和维度表(Dimension table)。其最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。

(3)实体建模法(Entity Modeling)

实体建模法并不是数据仓库建模中常见的一个方法,它来源于哲学的一个流派。从哲学的意义上说,客观世界应该是可以细分的,客观世界应该可以分成由一个个实体,以及实体与实体之间的关系组成。那么我们在数据仓库的建模过程中完全可以引入这个抽象的方法,将整个业务也可以划分成一个个的实体,而每个实体之间的关系,以及针对这些关系的说明就是我们数据建模需要做的工作。

虽然实体法粗看起来好像有一些抽象,其实理解起来很容易。即我们可以将任何一个业务过程划分成 3 个部分,实体,事件,说明,如下图所示:
在这里插入图片描述
上图表述的是一个抽象的含义,如果我们描述一个简单的事实:“小明开车去学校上学”。以这个业务事实为例,我们可以把“小明”,“学校”看成是一个实体,“上学”描述的是一个业务过程,我们在这里可以抽象为一个具体“事件”,而“开车去”则可以看成是事件“上学”的一个说明。
参考资料:
(1 https://zhuanlan.zhihu.com/p/27395332 大数据环境下该如何优雅地设计数据分层
(2 https://zhuanlan.zhihu.com/p/28434331 为什么我们需要数据仓库
(3 https://blog.csdn.net/sheep8521/article/details/82703518 数据仓库(二):数据仓库为什么要分层
(4)数据仓库工具箱:维度建模的完全指南(第三版)
(5)万字详解整个数据仓库设计体系 - 知乎 (zhihu.com)
(6)01.模型框架规范 - 3.1 项目组 - 知识管理 (fineres.com)
(7)(27条消息) 数据仓库和数据集市详解:ODS、DW、DWD、DWM、DWS、ADS_好奇新的博客-CSDN博客_ods 数据仓库 数据集市

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值