一、理论派
国内u通常所说的数据仓库的四个特性角度的定义,就是Inmon提出的,因此他被称为数据仓库之父(数据仓库理论大师)。
Inmon 提倡以三范式构建集中式的企业数据仓库(EDW),作为整个系统核心。其上再建设若干面向主题的、遵循维度模型设计的数据集市。前端工具直接访问数据集市,而不访问EDW。
对应词汇:
EDW: Enterprise Dimensional Warehouse 企业级数据仓库
知识盲区:
三范式:解释一下关系数据库的第一第二第三范式?(知乎)
二、实践派
而实践大师Kimball的工具箱系列著作,也被奉为数据仓库建设的经典书籍。
对应词汇:
Transaction Application 业务领域 ETL 数据抽取转换加载 Dimensional Data Wareouse(数据仓库) Data mart(数据库) within data warehouse
Kimball支持数据仓库总线结构,提倡维度建模,以星型模型或是雪花模型等方式构建维度数据仓库。架构体系中,数据集市于维度数据仓库是紧密结合的,数据集市是数据仓库中一个逻辑上的主题域。各种前端工具将可以直接访问使用维度数据仓库。
知识盲区:
计算机总线结构(百度百科)
维度建模:
其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)。
星型模型:多张维度表都连接到同一张事实表。
雪花模型:雪花模型有部分维度表连接到事实表。
雪花模型是当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。
相比星型模型,雪花模型的特点是贴近业务,数据冗余较少,但由于表连接的增加,导致了效率相对星型模型来的要低一些。
三.数据仓库建设方式:
四.Kimball vs Inmon
Kimball方式对团队技术水平要求不太高,更易于实现,从小型的主题域数据集市建设起,但在逐步建设过程中,联合维度数据仓库的一致性较难控制,适用于战术层级的规划,或是有迫切的目标需要实现。
Inmon的方式,规范性较好,数据集成和数据一致性方面得到处理,适用于较为大型的企业级、战略级的规划。但对团队的要求较高,且实现周期较长、成本高昂。具体可根据企业的规模、项目规划、预算、团队等角度进行综合考虑。
五.形象生动说明Kimball和Inmon架构(可参考一、二中的说明)
参考链接:
数据仓库理论两大流派(天善学院)
深入对比数据仓库模式:Kimball vs Inmon(segmentfault)
期待和大家交流,共同进步,欢迎大家加入我创建的与前端开发密切相关的技术讨论小组:
- SegmentFault技术圈:ES新规范语法糖
- SegmentFault专栏:趁你还年轻,做个优秀的前端工程师
- 知乎专栏:趁你还年轻,做个优秀的前端工程师
- Github博客: 趁你还年轻233的个人博客
- 前端开发QQ群:660634678
微信公众号: 人兽鬼 / excellent_developers
努力成为优秀前端工程师!