数据仓库包含多个不同用途的存储区域:
1
)暂存区。暂存区是介于原始数据源和集中式数据存储库之间的
中间数据存储区域。数据在这里短暂存留,以便可以对其进行转换、集
成并准备加载到仓库。
2
)参考数据和主数据一致性维度。参考数据和主数据可以存储在
单独的存储库中。数据仓库为主数据系统提供数据,这个单独的存储库
为数据仓库提供同样维度数据。
3
)中央数据仓库。完成转换和准备流程后,数据仓库中的数据通
常会保留在中央或原子层中。在这一层保存所有历史的原子数据以及批
处理运行后的最新实例化数据。该区域的数据结构是根据性能需求和使
用模式来设计和开发的。数据结构的设计元素包括:
①基于性能考虑而设计的业务主键和代理主键之间的关系。
②创建索引和外键以支持维度表。
③用于检测、维护和存储历史记录的变更数据捕获(
Change Data
Capture
,
CDC
)技术。
4
)操作型数据存储(
ODS
)。操作型数据存储是中央持久存储的
一个解决方案,它能支持较低的延迟,因此可以支持业务应用。由于操
作型数据存储包含一个时间窗口的数据而不是全部历史记录,因此可以
比数据仓库有更快地刷新频率。有时,实时数据流以预定义的时间间隔
进入操作型数据存储,实现报告集成和分析。随着时间的推移,随着业
务需求驱动更新频率的增加,以及将实时数据集成到数据仓库技术的不
断发展,许多软件产品已将其操作型数据存储合并到其现有的数据仓库
或数据集市架构中。
5
)数据集市。数据集市是一种数据存储,通常用于支持数据仓库
环境的展示层,还用于呈现数据仓库的部门级或功能级子集,以便对历
史信息进行集成报表、查询和分析。数据集市面向特定主题域、单个部
门或单个业务流程。它还可以是构成虚拟化数据仓库的基础,合并的数
据集市构成了最终的数据仓库实体。数据集成过程会刷新、更新或扩展
来自持久层各个集市的内容。
6
)数据立方体(
Cubes
)。存在三种经典的支持在线分析处理系统
(
OLAP
)实现方法:基于关系数据库的、基于多维数据库的及混合型
存储结构的,它们的名称与底层数据库类型有关。
8.
加载处理的方式
数据仓库建设涉及两种主要的数据集成处理类型:历史数据加载和
持续不断的数据更新。历史数据通常只需要加载一次,或者为了处理数
据问题加载有限的几次,然后再也不会加载。
“
持续不断的数据更新
”
需
要始终如一地规划和执行,以保证数据仓库中包含最新的数据。
(
1
)历史数据
数据仓库的一个优势是它可以捕获所存储数据的详细历史记录。有
多种不同的方法来捕捉这些详细信息,想要获取历史数据信息,组织应
该根据需求进行针对性的设计,能够重现时间点的快照与简单地显示当
前状态需要采用两种截然不同的方法。
Inmon
类型的数据仓库建议所有数据存储在单个数据仓库层中。这
一层中存储已清洗过的、标准化的和受管控的原子级数据。通用的集成
和转换层有助于在多个交付实施项目中进行重用,企业级数据模型有助
于数据仓库项目的成功。一旦经过验证,单一数据存储就可以通过星形
架构的数据集市面向不同的数据消费者提供数据。
Kimball
类型的数据仓库建议,数据仓库由包含已清洗过的、标准
化的和受管控数据的部门级数据集市合并而成。数据集市将在原子级别
存储历史记录,由一致性维度表和一致性事实表提供企业级信息。
另外一种方法,称作
Data Vault
,作为数据暂存处理的一部分,同
样进行数据清洗和标准化。历史数据以规范化的原子结构存储,每个维
度定义了代理键(
Surrogate
key
)、主键(
Primary
key
)、备用键
(
Alternate key
)。确保业务键和代理键关系保持不变,进而成为
vault
的次要角色,这就是数据集市的历史。在这里,事实表以原子结构的形
式持续存在。然后,通过数据集市,各种数据消费者可以使用该
vault
。
通过保留
vault
内的历史数据,当后来的增量引入粒度(
grain
)变化时,
可以重新加载事实表。可以对表示层进行虚拟化,促进敏捷增量交付以
及与业务社区的协作开发。最终的实现过程可以采用更传统的星形数据
集市,供生产最终用户消费。
(
2
)批量变更数据捕获
通常,数据仓库是通过每天晚上的批处理窗口进行一次数据加载服
务。因为不同源系统可能需要不同的变更捕获技术,所以加载过程可以
包含各种变更检测。
数据库日志技术可能是内部开发应用程序的候选技术,因为购买的
供应商应用程序不太可能容忍使用触发器或额外开销进行修改。时间戳
或日志表加载是最常见的技术方式。在处理没有原生时间戳功能的遗留
系统(是的,那些不用数据库的应用程序)或某些批量恢复条件时,会
用到全量加载。
表
11-2
总结了各种变更数据捕获技术之间的差异,包括它们的相对
复杂度和加载效率。重叠列判断源系统的更改与目标环境之间是否存在
数据重复。当重叠的判断是
“Yes”
时,此更改数据可能在目标端已存
在。当删除提示符设置为
“Yes”
时,更改数据方法将跟踪源系统中发生
的任何删除操作,这对于不再使用的到期维度表非常有用。当源系统未
跟踪删除操作时,需要额外的能力来确定它们何时发生(参见第
8
章)。