数据仓库次要有四种架构,Kimball 的 DW/BI 架构、独立数据集市架构、辐射状企业信息工厂 Inmon 架构、混合 Inmon 与 Kimball 架构。不过不论是那种架构,基本上都会应用到维度建模。
Kimball 的 DW/BI 架构 ,能够参考这篇文章 数据仓库(4) 基于维度建模的 KimBall 架构。
独立数据集市架构,采纳这种架构的数据仓库,数据以部门为根底来部署,不思考企业级别的信息共享和集成。也就是各个部门各自依照须要,各自在数据源同步数据,依照各自的规范,对数据进行解决。这种实际上就是没有架构,会造成剖析数据的冗余存储,计算资源的节约,会导致每一个统计部门统计口径的不对立,也就会导致因为数据口径不统一导致长时间的对数据。
辐射状企业信息工厂 Inmon 架构,数据从操作型数据源中获取,在 ETL 中进行解决,取得的原子数据保留在满足第三范式的数据库中,这种规范化,原子数据的仓库就是企业信息工厂 Inmon 架构。Inmon 架构与 Kimball 架构的差异之一就是,Inmon 的数据仓库是规范化的,而 Kimball 架构是基于维度建模的星型模型。
混合 Inmon 与 Kimball 架构,这种就是将 Kimball 与 Inmon 两种架构进行嫁接,抽取过去的数据,寄存在规范化的数据仓库中,而后在这个的根底之上抽取基于维度建模的数据展示,开发给数据分析人员等。
在经典的实践认为,混合 Inmon 与 Kimball 架构是最好的形式。这种办法能够将数据规范化,而后通过维度建模,以一种比较简单的形式开发给剖析人员。然而这种形式适宜比拟传统的行业,或者政府单位,这种业务发展缓慢的模式,如果是互联网企业,特地是守业型团队,业务还在疾速的迭代中,应用维度建模须要破费很长的后期筹备工作,而且扩展性不好,应用 Kimball 维度建模是比拟适合的。
Kimball 模式从流程上看是是自底向上的,即从数据集市到数据仓库再到数据源 (先有数据集市再有数据仓库) 的一种麻利开发方法。对于 Kimball 模式,数据源每每是给定的若干个数据库表,数据较为稳固可是数据之间的关联关系比较复杂,须要从这些 OLTP 中产生的事务型数据结构抽取出剖析型数据结构,再放入数据集市中不便下一步的 BI 与决策反对。所以KimBall 是依据需要来确定须要开发 ETL 哪些数据。
Inmon 模式从流程上看是自顶向下的,即从数据源到数据仓库再到数据集市的(先有数据仓库再有数据市场)一种瀑布流开发方法。对于 Inmon 模式,数据源每每是异构的,好比从自行定义的爬虫数据就是较为典型的一种,数据源是依据最终目标自行定制的。这里次要的数据处理工做集中在对异构数据的荡涤,包含数据类型测验,数据值范畴测验以及其余一些简单规定。在这种场景下,数据没法从 stage 层间接输入到 dm 层,必须先通过 ETL 将数据的格局荡涤后放入 dw 层,再从 dw 层抉择须要的数据组合输入到 dm 层。在 Inmon 模式中,并不强调事实表和维度表的概念,因为数据源变动的可能性较大,须要更加强调数据的荡涤工做,从中抽取实体 - 关系。immon 是将 整个数据仓库布局好,对立依照范式建模进行开发。
上面是两种架构的优劣比拟。