今天,跟我一起学习数据仓库的基础知识,我希望你能通过结合案例来彻底理解。
1、数据仓库建模的意义
如果您将数据视为图书馆中的书籍,我们希望看到它们分组在书架上,如果你认为数据是一座城市建筑,我们希望城市规划布局合理,如果我们把数据想象成电脑文件和文件夹,我们希望按照自己的习惯,有一个好的文件夹组织,而不是一个凌乱的桌面,我们常常找不到一个文件。
数据模型是数据组织和存储的方法,它强调从业务、数据访问和使用的角度对数据进行合理的存储,Linux的创始人托瓦尔兹(Torvalds)有一句关于“什么是一本优秀的程序”的名言:“坏程序员关心代码,好程序员关心数据结构,它们之间还有关系”,这最能说明数据模型的重要性。
只有在数据模型有序地组织和存储数据之后,大数据才能高效、低成本、高效率、高质量地使用。
性能:可以帮助我们快速查询所需的数据,降低数据的I/O吞吐量,提高数据的使用效率,如宽表。
成本:可以大大减少不必要的Alps,实现计算结果的重用,大大降低存储和计算成本。
效率:当业务或系统发生变化时,可以稳定或易于扩展,提高数据的稳定性和连续性。
质量:良好的数据模型可以改善统计口径的不一致性,减少数据计算错误的可能性,数据模型可以促进业务与技术之间的有效沟通,形成对主要业务定义和术语的统一理解,它是跨部门、中立的,可以表达和覆盖所有业务。
大数据系统需要数据建模方法来帮助更好地组织和存储数据,以实现性能、成本、效率和质量之间的最佳平衡!
下图是一个示例,通过统一数据模型,屏蔽了数据源变化对业务的影响,保证了业务的稳定性,体现了数据仓库模型的价值
2、数据仓库的分层设计
整齐
为了达到上述目的,数据仓库应该分层设计,这样可以带来五个好处。
清晰的数据结构:每个数据层次结构都有其作用域,这使得我们在使用表时更容易定位和理解。
数据血缘追踪:能快速准确地定位问题所在,并明确其危害范围。
减少重复开发:规范数据分层,开发一些常见的中间层数据,可以减少大量的重复计算。
简化复杂问题:将复杂任务分解为多个步骤,每一层只处理一个步骤,相对简单易懂,当数据出现问题时,您不需要修复所有数据,只需从出现问题的步骤开始。
屏蔽原始数据的异常:你不需要改变服务一次,你需要重新访问数据。
以下是一种分层设计方法,数据缓冲区(ODS)的数据结构与源系统完全一致,基础数据模型(DWD)和融合数据模型(DWI和DWA)是大数据平台的关键数据模型,每个应用层按需构建模型,基础数据模型一般采用ER模型,融合数据模型采用维度建模思想。
3、两种经典的数据仓库建模方法
在前面的分层设计中,您会发现有两种设计方法:关系建模和维度建模,下面简要介绍它们的特点和适用场景。
1维度建模
(1)定义
维度模型是数据仓库领域的另一位大师拉尔夫·金博尔提出的,维度建模根据分析和决策的需要建立模型,构建的数据模型满足分析需求,因此,它