谈笑间学会数仓—大数据建模过程
首先我们先来了解一下,大数据建模都需要遵循哪些原则呢?先来列举一下
建模原则
-
高内聚和低辑合
将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型:将高概率同 时访问的数据放一起 ,将低概率同时访问的数据分开存储。
-
核心模型与扩展模型分离
建立核心模型与扩展模型体系,核心模型包括的宇段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要 ,不能让扩展模型的宇段过度侵人核心模型,以免破坏核心模型的架构简洁性与可维护性。
-
公共处理逻辑下沉及单一
越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在。
-
成本与性能平衡
适当的数据冗余可换取查询和刷新性能,不宜过度冗余与数据复制。
-
数据可回滚
不改变处理逻辑,不修改代码的情况下重跑任务结果不变
-
一致性
字段命名及定义必须一致
-
命名清晰、可理解
表命名需清晰、一致,表名需易于使用方理解
声明了解完原则,剩下的就是进行建模了,那么具体步骤应该是怎么样子的呢?
建模过程及步骤
- 分析拆分
例如:举个电商下单的业务过程:每个用户或会员提交了一笔购物订单,对应到业务系统底层数据库中也就是一条/多条记录。
分析从几个方面进行如下:
业务过程是什么?粒度是什么?维度是什么?事实/度量?
业务过程: 客户下单
粒度: 每笔交易订单(拆分为单个商品)
维度:地域、渠道、年龄、性别、商品类别等(可供分析的角度)
事实/度量:订单金额、数量等(用于分析的数据)
- 建模步骤
1、梳理业务需求&思考数据实现
在开始建模之前,首先要了解具体的业务需求,想要做什么?需要用哪些数据来做?也即是底层业务系统、数据源、数据表的实际情况。通过与需求方沟通交流、查看现有模型数据情况,清楚理解他们的基于关键性指标、竞争性商业问题,确定需求和目标,根据实际情况确定方案的可行性以及数据可行性(因为:大部分企业对数据安全比较看重,用何种方式展现以及能否展现都需要评估)等。
2、选择业务过程
业务过程是组织完成的操作型活动。业务过程时间建立或获取性能度量,并转化为事实表中的事实。大多数事实表就是某一业务过程的结果。过程选择非常重要de,因为过程定义了特定的设计目标及粒度、维度、事实的定义。
3、声明粒度
声明粒度是维度设计的重要步骤。粒度用于确定某一事实表中的行表示什么。在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度。强烈建议从关注原子级别粒度数据开始设计,因为原子粒度数据能够承受无法预期的用户查询。
4、确认维度
维度提供围绕某一业务过程事件所涉及的’谁、什么、何处、何时、为什么、如何’等背景。维度表包含分析应用所需要的用于过滤及分类事实的描述性属性。牢牢掌握事实表的粒度,就能够将所有可能存在的维度区分开来。
5、确认事实
事实,涉及来自业务过程事件的度量,基本上都是以数据值表示。一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。在事实表内,所有事实只允许与声明的粒度保持一致。
6、部署方式
选择一种维度模型的落地方式。既可以选择星型模型,部署在关系数据库上,通过事实表及通过主外键关联的维度表;也可以选择多维模型,落地于多维数据库中。
建模涉及名词

- 数据域
指面向业务分析,将业务过程或者维度进行抽象的集合。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。
- 业务过程
指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件。
- 时间周期
用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等。
- 修饰类型
是对修饰词的一种抽象划分,是从属于某个业务域的。
- 修饰词
指除了统计维度以外指标的业务场景限定抽象。修饰词隶属于一种修饰类型。
- 度量/原子指标
原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额。
- 维度
维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。维度属于一个数据域,如地理维度(其中包挤国家、地区、省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)。
- 维度属性
维度属性隶属于一个维度,如地理维度里面的国家名称、国家ID、省份名称等都属于维度属性。
- 派生指标
派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定。
小结
事实表和维度表设计,请参考下面链接,在此就不多bb了。
维度表:https://blog.csdn.net/MrZhangBaby/article/details/108801873
事实表:
https://blog.csdn.net/MrZhangBaby/article/details/108096179
https://blog.csdn.net/MrZhangBaby/article/details/108342505
本文详细介绍了大数据建模的过程,包括建模原则如高内聚低耦合、核心模型与扩展模型分离等,建模步骤如分析拆分、选择业务过程、声明粒度等。此外,还解释了数据域、业务过程、时间周期等关键概念,为读者提供了全面的数仓建模指南。
4325

被折叠的 条评论
为什么被折叠?



