这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看( 二 )


这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
以下是阿里的OneData的建模工作流 , 可以参考 。
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
(3)优缺点
优点:技术要求不高 , 快速上手 , 敏捷迭代 , 快速交付;更快速完成分析需求 , 较好的大规模复杂查询的响应性能
缺点:维度表的冗余会较多 , 视野狭窄
2、关系建模
(1)定义
是数据仓库之父Inmon推崇的、从全企业的高度设计一个3NF模型的方法 , 用实体加关系描述的数据模型描述企业业务架构 , 在范式理论上符合3NF , 站在企业角度面向主题的抽象 , 而不是针对某个具体业务流程的实体对象关系抽象 。
它更多是面向数据的整合和一致性治理 , 正如Inmon所希望达到的“single version of the truth” 。
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
当有一个或多个维表没有直接连接到事实表上 , 而是通过其他维表连接到事实表上时 , 其图解就像多个雪花连接在一起 , 故称雪花模型 。
雪花模型是对星型模型的扩展 。 它对星型模型的维表进一步层次化 , 原有的各维表可能被扩展为小的事实表 , 形成一些局部的 "层次 " 区域 , 这些被分解的表都连接到主维度表而不是事实表 。
雪花模型更加符合数据库范式 , 减少数据冗余 , 但是在分析数据的时候 , 操作比较复杂 , 需要join的表比较多所以其性能并不一定比星型模型高 。
(2)建模方法
关系建模常常需要全局考虑 , 要对上游业务系统的进行信息调研 , 以做到对其业务和数据的基本了解 , 要做到主题划分 , 让模型有清晰合理的实体关系体系 , 以下是方法的示意:
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
以下是中国移动的概念模型的一种示例 , 如果没有自顶向下的视野 , 基本是总结不出来的:
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
(3)优缺点
优点:规范性较好 , 冗余小 , 数据集成和数据一致性方面得到重视 , 比如运营商可以参考国际电信运营业务流程规范(ETOM) , 有所谓的最佳实践 。
缺点:需要全面了解企业业务、数据和关系;实施周期非常长 , 成本昂贵;对建模人员的能力要求也非常高 , 容易烂尾 。
3、建模方法比较
一般来讲 , 维度模型简单直观 , 适合业务模式快速变化的行业 , 关系模型实现复杂 , 适合业务模式比较成熟的行业 , 阿里原来用关系建模 , 现在基本都是维度建模的方式了 。
运营商以前都是关系建模 , 现在其实边界越来越模糊 , 很多大数据业务变化很快 , 采用维度建模也比较方便 , 不需要顶层设计 。
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
四、企业建模的三点经验维度建模就不说了 , 只要能理解业务过程和其中涉及的相关数据、维度就可以 , 但自顶向下的关系建模难度很大 , 以下是关系建模的三个建设要点 。
1、业务的理解:找到企业内最理解业务和源系统的人 , 梳理出现状 , 比如运营商就要深刻理解三域(O/B/M) , 概念建模的挑战就很大 , 现在做到B域的概念建模已经很不容易 。
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
2、数据及关系的理解:各个域的系统建设的时候没有统一文档和规范 , 要梳理出逻辑模型不容易 , 比如运营商的事件主题下的逻辑模型就非常复杂 。
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
3、标准化的推进:数据仓库建模的任何实体都需要标准化命名 , 否则未来的管理成本巨大 , 也是后续数据有效治理的基础 , 以下是我们的一个命名规范示例:
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
五、推荐三本书
这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看文章插图
【这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看】总而言之 , 你可以把我的文章当成一个指引 , 具体还是要结合企业的实际去推进 , 但做事的时候要不忘建模的初心:即数据如何摆布才能提高支撑应用的效率 , 手段上不用区分什么先进不先进 , 好用就成 。