什么是 建模?
决定了数据存储的方式,表的设计
为什么要建模?
- 大数据系统需要数据模型方法来帮助更好地组织和存储数据,在性能、成本、效率和质量之间取得最佳平衡。
- 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐
- 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本
- 效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率
- 质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性
有那些建模方法?
- ER模型:从全企业的高度设计一个 3NF 【三范式】模型,用实体关系模型描述企业业务,满足业务需求的存储
- 维度模型:从分析决策的需求出发构建模型,为分析需求服务,重点关注用户如何更快速的完成需求分析,具有较好的大规模复杂查询的响应性能
- Data Vault:ER 模型的衍生,基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对源系统变更的扩展性
- Anchor:一个高度可扩展的模型,核心思想是所有的扩展知识添加而不是修改,因此将模型规范到 6NF,基本变成了 k-v 结构化模型
构建维度模型步骤
- 选择业务
选择业务就是确认你要干什么,如 订单业务,配送业务, - 声明粒度 :你的分析基于什么样的粒度
每条数据代表什么样的粒度 - 确认环境的维度
整体有那些维度:列如日期,店铺,地点 - 确认拥有度量的事实:基于维度构建那些指标
维度建模的实施流程(重要)
1.需求分析:进行业务调研[熟悉整个业务流程],数据调研[业务流程中产生了哪些核心数据]
2.划分主题域:面向业务将业务划分主题
3.构建维度总线矩阵:明确每个业务主题对应的维度关系
image.png
4.明确指标统计:明确所有原生指标与衍生指标
image.png
5.定义事实与维度规范:建表建库规范,命名规范,开发规范
6.代码开发
网友评论