《数据仓库维度建模:星型模式与雪花模式及维度模型建设步骤全解析》
一、数据仓库维度建模中的两种主要模式
1、星型模式
图片来源于网络,如有侵权联系删除
- 星型模式是一种简单且广泛使用的维度建模模式,它包含一个事实表位于中心,周围连接着多个维度表,事实表存储业务过程的度量值,例如销售额、销售量等数值型数据,维度表则包含描述性信息,如客户的姓名、地址、产品的名称、类别等。
- 以一个销售数据仓库为例,事实表可能包含订单编号、订单日期、销售金额等字段,而与之相连的维度表可能有客户维度表(包含客户ID、客户姓名、客户所在地区等)、产品维度表(产品ID、产品名称、产品规格等)和时间维度表(日期ID、年、月、日等),这种模式的优点是结构简单,查询性能高,因为事实表和维度表之间是直接连接,没有复杂的嵌套关系,对于用户和开发人员来说,理解和使用都比较容易。
2、雪花模式
- 雪花模式是星型模式的一种扩展,在雪花模式中,维度表可以进一步规范化,将某些属性分解成新的维度表,在产品维度表中,如果产品有类别和品牌等属性,在雪花模式下,可以将类别和品牌分别建立新的维度表,然后通过外键与产品维度表相连。
- 雪花模式的优点在于它在一定程度上减少了数据冗余,提高了数据的一致性,它的查询性能相对星型模式可能会稍差一些,因为在查询时可能需要连接更多的表,但是在数据仓库数据量非常大且对存储空间要求较为严格的情况下,雪花模式可能是一种更好的选择。
二、数据仓库维度模型建设的四个步骤
1、选择业务过程
- 这是维度模型建设的第一步,也是非常关键的一步,需要深入了解企业的业务需求和业务流程,在一个电商企业中,可能有订单处理、库存管理、客户关系管理等多个业务过程,要确定哪些业务过程对数据分析和决策支持是最为关键的。
图片来源于网络,如有侵权联系删除
- 如果企业最关心的是销售业绩的分析,那么订单处理业务过程可能就是首要选择,在这个过程中,需要明确业务过程的边界,例如订单从下单开始到订单完成(包括支付、发货、收货等环节)的整个流程中的相关数据都属于这个业务过程的范畴,要考虑业务过程的粒度,是按照每个订单记录,还是可以按照订单中的每个商品行项目来确定粒度。
- 对于业务过程的选择还需要考虑到数据的可用性和质量,如果某些业务过程的数据来源不可靠或者数据不完整,那么在构建维度模型时可能需要谨慎对待,或者先进行数据治理工作以提高数据质量。
2、声明粒度
- 粒度定义了事实表中数据的详细程度,一旦选择了业务过程,就需要确定合适的粒度,以销售业务为例,如果选择的粒度是每个订单,那么事实表中的每一行数据就代表一个订单的相关信息,如订单金额、订单日期等,如果粒度是订单中的商品行项目,那么事实表中的每一行将代表一个订单中的一个商品的销售信息,如商品的销售数量、销售单价等。
- 合适的粒度选择取决于业务需求和分析目的,较细的粒度(如商品行项目粒度)可以提供更详细的分析,但会导致事实表的数据量较大,较粗的粒度(如订单粒度)数据量相对较小,但分析的详细程度会受到一定限制,在确定粒度时,还需要考虑到数据的存储成本和查询性能之间的平衡,如果存储资源有限,可能需要选择相对较粗的粒度,但如果需要进行深入的分析,如分析每个商品的销售趋势,那么较细的粒度可能更合适。
- 粒度一旦确定,在整个维度模型的构建和使用过程中应该保持一致,如果在不同的分析场景下需要不同的粒度,可以考虑构建多个事实表,每个事实表采用不同的粒度。
3、确定维度
- 在确定了业务过程和粒度之后,就需要确定与业务过程相关的维度,维度是用于描述业务过程的角度,对于销售业务过程,常见的维度包括客户维度、产品维度、时间维度等。
图片来源于网络,如有侵权联系删除
- 客户维度可以包含客户的基本信息,如客户ID、客户姓名、客户联系方式、客户所在地区等,这些信息可以用于从客户的角度分析销售数据,例如分析不同地区客户的购买行为、不同类型客户的购买偏好等,产品维度包含产品的相关信息,如产品ID、产品名称、产品类别、产品品牌等,通过产品维度可以分析不同产品的销售情况,时间维度则是非常重要的一个维度,它可以包含日期、星期、月份、季度、年份等不同层次的时间信息,用于分析销售数据在不同时间尺度上的变化趋势。
- 在确定维度时,还需要考虑维度的层次结构,时间维度有年 - 季 - 月 - 日这样的层次结构,这种层次结构可以方便用户进行不同层次的汇总分析,要确保维度的完整性,尽量包含所有与业务过程相关且对分析有意义的维度属性。
4、确定事实
- 事实是业务过程的度量值,是维度模型中的核心内容,对于销售业务过程,事实可能包括销售额、销售量、利润等数值型数据,这些事实数据存储在事实表中,并且与维度表相关联。
- 在确定事实时,需要明确事实的类型,如可加性事实、半可加性事实和不可加性事实,可加性事实,如销售额和销售量,可以在不同维度上进行汇总相加,可以计算某个月所有订单的总销售额,或者计算某个地区所有客户的总购买量,半可加性事实,如库存余额,只能在某些维度上进行相加,例如可以计算某个产品在不同仓库的库存余额总和,但不能简单地在时间维度上相加,不可加性事实,如商品的单价,通常不能直接相加,而是用于其他计算,如计算销售额(销售量×单价)。
- 要确保事实数据的准确性和一致性,事实数据的来源可能来自多个业务系统,在将其集成到事实表中时,需要进行数据清洗、转换等操作,以保证数据的质量,还需要考虑事实的时效性,对于一些实时性要求较高的业务场景,需要及时更新事实表中的数据。
数据仓库维度建模中的星型模式和雪花模式各有优劣,在实际构建维度模型时,需要根据业务需求、数据特点和性能要求等因素进行选择,而维度模型建设的四个步骤是一个有机的整体,每个步骤都相互关联,只有全面、准确地完成这四个步骤,才能构建出一个有效的数据仓库维度模型,为企业的数据分析和决策支持提供有力的保障。
评论列表