数据仓库理论

10 Mar 2021

什么是数据仓库

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策 (Decision-Making Support)

数据仓库四大特征

数据仓库作用

整合企业业务数据,建立统一的数据中心;
产生业务报表,了解企业的经营状况;
为企业运营、决策提供数据支持;
可以作为各个业务的数据源,形成业务数据互相反馈的良性循环;
分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;
开发数据产品,直接或间接地为企业盈利;

数据仓库与数据库的区别

数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别

数据集市

数据仓库(DW)是一种反映主题的全局性数据组织。但全局性数据仓库往往太大, 在实际应用中将它们按部门或业务分别建立反映各个子主题的局部性数据组织,即数 据集市(Data Mart),有时也称它为部门数据仓库

数据集市:是按照主题域组织的数据集合,用于支持部门级的数据分析与决策。如在商品销售的数据仓库中可以建立多个不同主题的数据集市:

数据集市仅仅是数据仓库的某一部分,实施难度大大降低,并且能够满足企业内部部分业务部门的迫切需求,在初期获得了较大成功。但随着数据集市的不断增多,这种架构的缺陷也逐步显现。企业内部独立建设的数据集市由于遵循不同的标准和建设原则,以致多个数据集市的数据混乱和不一致,形成众多的数据孤岛。

数据仓库建模方法

数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。有了适合业务和基础数据存储环境的模型,能获得以下好处:

大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。

ER模型

数据仓库之父Bill Inmon提出的建模方法是从全企业的高度设计一个3NF模型,用实体关系(Entity Relationship, ER)模型描述企业业务,在范式理论上符合3NF。数据仓库中的3NF与OLTP系统中的3NF的区别在于,它是站在企业角度面向主题的抽象, 而不是针对某个具体业务流程的实体对象关系的抽象。其具有以下几个特点:

釆用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企 业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。其建模步骤分为三个阶段:

维度模型

维度建模从分析决策的需求出发构建模型,为分析需求服务,重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星型模型,以及在一些特殊场景下使用的雪花模型。其设计分为以下几个步骤:

ER和维度的比较

现代企业业务变化快、人员流动频繁、业务知识功底的不够全面,导致ER模型设计 产出周期长。大多数企业实施数据仓库的经验说明:在不太成熟、快速变化的业务面 前,构建ER模型的风险非常大,不太适合去构建ER模型。而维度建模对技术要求不 高,快速上手,敏捷迭代,快速交付;更快速完成分析需求,较好的大规模复杂查询 的响应性能。

数据仓库分层

数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了数据建 模、ETL(数据抽取、转换、加载)、作用调度等在内的完整的理论体系流程。数据仓库在构建过程中通常都需要进行分层处理。业务不同,分层的技术处理手段也不同。
分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控。

分层的好处

常见分层

数仓的常见分层一般为3层,分别为:数据操作层、数据仓库层和应用数据层(数据集市层)。当然根据研发人员经验或者业务,可以分为更多不同的层,只要能达到流程清晰、方便查数即可。

数据仓库模型

事实表与维度表

星型模型

星型模是一种多维的数据关系,它由一个事实表和一组维表组成;
事实表在中心,周围围绕地连接着维表;
事实表中包含了大量数据,没有数据冗余;
维表是逆规范化的,包含一定的数据冗余;

与雪花模型相比:
星型模型存在数据冗余,所以在查询统计时只需要做少量的表连接,查询效率高;
星型模型不考虑维表正规化的因素,设计、实现容易;
在数据冗余可接受的情况下,实际上使用星型模型比较多;

雪花模型

雪花模式是星型模型的变种,维表是规范化的,模型类似雪花的形状;
特点:雪花型结构去除了数据冗余。

事实星座

数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。
特点:公用维表

元数据

元数据(Metadata)是关于数据的数据。元数据打通了源数据、数据仓库、数据应用,记录了数据从产生到消费的全过程。元数据就相当于所有数据的地图,有了这张地图就能知道数据仓库中:

在大数据平台中,元数据贯穿大数据平台数据流动的全过程,主要包括数据源元数据、数据加工处理过程元数据、数据主题库专题库元数据、服务层元数据、应用层元数据等。

业内通常把元数据分为以下类型: