开发者学堂课程【智能数据建模训课程 :数仓建模理论与规范(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1223/detail/18308
数仓建模理论与规范
内容介绍:
一、数仓模型简介
二、数仓模型架构设计目标
三、数仓模型架构设计核心思想
四、数据分层架构设计
五、数据分域架构设计
六、数据模型设计的流程
数仓建模的内容主要分为两部分内容,第一部分是理论方面的介绍,即最佳实践的过程,第二部分是针对 DataWorks 数据建模功能的演示。
本节课主要学习理论介绍部分,该部分主要分为五部分内容:首先介绍数仓模型架构的设计目标,接下来说明模型制架构设计所秉承的核心思想,其次介绍数据分层的架构设计,然后学习在分层之后所要做的数据模型的分域,最后介绍在分域之后做具体的模型设计的流程,即模型设计的实操过程。
一、数仓模型简介
1、数仓(OLAP)的概念
从字面意义上,可以结合90年代就有的英文介绍进行理解:数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)
的数据集合,用于支持管理决策(Decision Making Support)。根据以上解释,可以提取其关键字概括其特点:
(1)面向主题
即数仓与线上的一些 OLTP 系统不同,而是更多地面向分析主题,如面向商家的全域的分析,或者面向交易环节的分析。
(2)集成
指把各个原业务系统的数据做集成的组装,整合到数据仓库中。
(3)相对稳定
OLTP 系统会执行很多事务型的操作,如插入、更新式删除等频繁的操作,而数仓与之不同,它会一次性地载入,多次地执行相应的查询访问,相对而言,数仓是一种较为稳定的结构。
(4)反映历史状况
在组件数据的存储粒度上,如对于订单,OLTP 系统只保存现在当下的状态,而 OLAP 系统则会反映历史的变化情况。
2、建模方法论
关于数据仓库建模的方法有很多种,最核心的两大流派(两大思想)是范式建模和维度建模。范式建模(inmon)主张的是从底层到上层建模的思路,而 Kimball 的维度建模更多的是基于集市向上进行做相应的数据的加工,每种建模方法具体的优点和缺点如下:
今天主要学习维度建模。
二、数仓模型架构设计目标
无论做怎样的模型架构设计,其目标其实是一定的,即希望数仓的架构具有清晰的层次划分,具有合理的、相对稳定的数据分域,并且最终设计的模型是高效易用的。简言之包括以下几方面:
(1)易使用,其主要体现在一致性,规范性和完整性;
(2)高质量,即稳定产出的模型指标口径是一致的,否则无法获知不同厂商产出的模型间的差异,就更谈不上所谓的质量了,这是数仓模型设计的初衷,非常关键的目标;
(3)好的模型设计也体现在运维方面,如业务在发生变化时,模型是否可以灵活地拓展,以及回刷历史数据时,任务是否能保证直接进行数据回刷去,而不会改变业务本身的数据,出现指标计算错误等;
(4)低成本,出去之前提到的跟中需求之外,还有一个很朴素的诉求,即希望成本是可控的,包括进行计算、存储,以及本身进行研发的成本。
三、数仓模型架构设计核心思想
在设定目标之下,我们应该秉承怎样的思想?
1、核心原则
其核心原则实际上与软件设计的思路相同,即高内聚和低耦合,也就是指域内的高内聚和域与域之间的以及业务和数据模型之间的低耦合。在此之上,在考虑稳定性、扩展性,以及各种效率,包括建设效率、产出效率和使用效率。
2、核心过程
核心的过程在于,在我们接触到新业务时,应先做相应的分层分域,分层分域完成后,在分层分域的结果上做相应的模式设计。在后面我们将按照核心过程具体了解整个数仓模型建设的路径。