数据仓库架构
为了满足技术冀望,数据仓库工程师能够应用各种架构来构建 数据仓库 。常见的 数据仓库架构 是基于分层办法的,这在信息系统中很常见。上面将形容其中的两个典型数据架构。
两层数仓架构
Kimball 引入了一种罕用的双层结构。在这个架构中 (如图 1.3 所示), 数据仓库 零碎自身只有两层。
图 1.3 两层数仓架构
来自源零碎的原始数据被加载到 集结区 。指标是领有应该加载到 数据仓库 中的所有 数据 的准确正本。集结区 的次要目标是缩小源零碎上的操作数量和从源零碎中提取 数据 的工夫。集结区 中的表是依照源零碎中的表建模的。当转换很简单并且不能即时执行时,或者当数据在不同的工夫从多个源零碎达到时,须要一个 集结区。
一旦数据被加载到 集结区 ,Kimball 倡议将数据加载到 数据仓库 中。该 数据仓库 是依照 维度模型 建模的,由 数据集市 (示意业务流程) 组成。
1996 年,Kimball 首次提出这一倡议。维度模型 是一个事实上的规范,业务用户和剖析工具 (如 OLAP 前端或引擎) 能够很容易地查问它。因为它是符合标准的 数据集市 的逻辑关联,所以必须在 数据仓库 层之前实现业务规定,以便合乎和对齐数据集。咱们将在第 7 章“维度建模 ”中探讨 维度建模 。数据拜访应用程序应用 维度模型 向用户显示信息,并容许进行专门的剖析。
两层数仓架构 的长处是,与其余架构相比,从源数据构建维度存储很容易。然而,毛病是从雷同的源数据构建第二个 维度模型 更为简单,因为须要从集结区中再次加载数据,而且无奈重用现有的ETL 工作流。
三层数仓架构
为了克服两层数仓架构的局限性,另一个常见的数仓架构是基于三层的 (图 1.4)。
图 1.4 三层数仓架构
该架构由 Inmon 引入,并引入了 原子数据仓库 ,通常是 集结区 和维度模型 之间的规范化业务数据存储(ODS)。此架构中的集结区遵循两层数仓架构。然而,数据仓库 持有以 三范式 标准建模的原始数据。它集成了企业的所有数据,但依然基于来自源零碎的物理表。通过这样做,它的行为相似于一个大型 业务数据库。
在业务数据的规范化视图之上,有一个 维度模型 。业务用户能够应用面向主题的 数据集市 (相似于 两层数仓架构 ) 拜访和剖析数据。然而,从业务数据存储中可用的数据创立新的 数据集市 要容易得多,因为 数据 曾经被荡涤和集成了。因而,构建新的 数据集市 不须要进行数据荡涤和集成。在实践中,2 层的 数据仓库 通常有多个 数据集市 ,通过向用户提供不同的主题域来满足不同用户组的需要。
然而,它更简单,须要更多的数据处理来构建整个 数据仓库 ,包含 业务数据存储 和依赖数据集市 。另一个问题是,如果许多 数据集市 依赖于业务性数据存储,那么对数据模型的更改可能成为一种累赘。在下篇文章中,咱们将探讨一种代替的三层架构,以反对对 数据仓库 进行更快的更改。