【数据仓库】核心概念(一)

目录

什么是事实表和维度表

什么是星型模型和雪花模型

纬度建模过程


什么是事实表和维度表

在维度建模中,将度量称为事实,将环境描述为维度。

  • 度量通常为数值型数据。例如店铺每个月的销售额、库存情况,访客情况就是度量。
  • 维度是用于分析事实所需要的多样环境。例如,在分析交易过程中,可以通过买家、卖家、商品和时间等维度来描述交易发生的环境。

类比总结:

  • 事实表: 像一本流水账或动词。它记录发生了什么(销售、点击、访问)以及发生的程度(数量、金额)。核心是“数字”。
  • 维度表: 像一本字典或形容词/名词。它提供描述谁做的、对什么做的、什么时候做的、在哪里做的等背景信息。核心是“描述”。

什么是星型模型和雪花模型

在多维分析的解决方案中,根据事实表和纬度表的关系,将常见的模型分为星型模型,雪花模型及星座模型。

星型模型

星型模型中有一张事实表,以及一个或多个维度表,事实表与纬度表通过主键外键相关联,维度表之间没有关联,当所有维表都直接连接到“事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。

雪花模型
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上,其图解就像多个雪花连在一起,故称雪花模型。

星座模型

星座模型是由星型模型延伸而来,星型模型是基于一张事实表而星座模式是基于多张事实表,并且共享维度表信息,这种模型往往应用于数据关系比星型模型和雪花模型更复杂的场合。

总结

星型模型因为数据的冗余所以很多统计查询不需要做过多的外部连接,因此一般情况下效率比雪花型模型要高。星型结构不用考虑很多正规化的因素,设计与实现都比较简单。雪花型模型由于去除了冗余,有些统计就需要通过表的多次联接才能产生,所以效率比较低。

通过对比,我们可以发现数据仓库大多数时候是比较适合使用星型模型构建底层数据Hive表,通过大量的冗余减少表查询的次数从而提升查询效率,星型模型对OLAP的分析引擎支持比较友好。


纬度建模过程

维度建模一般按照四个步骤进行:

选择业务过程->声明粒度->确定纬度->确定事实

1)选择业务过程

在业务系统中,挑选我们需要分析的业务线,比如下单业务、支付业务、退款业务、物流业务,一条业务线对应一张事实表。

2)声明粒度

粒度是指数据仓库中数据的细化级别。

声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应对各种需求。

典型的粒度声明如:订单事实表中一行数据表示的是一个订单中的一个商品项。支付事实表中一行数据表示的是一条支付记录。

3)确定维度

纬度的主要作用是描述业务发生的环境,主要表示的是“谁,何处,何时”等信息。

确定纬度的原则是:后续需求中是否需要分析的相关纬度指标。例如需要统计,什么时间下的订单多,哪个地区下的订单多,哪个用户下的订单多。需要确定的维度就包括:时间维度、地区维度、用户维度。

4)确定事实

事实指的是业务中的度量值,例如订单金额、下单次数等。

在数仓建模过程中,基于每个具体业务过程的特点,构建最细粒度的明细层事实表。事实表可做适当的宽表化处理。事实表和维度表的关联比较灵活,但是为了应对更复杂的业务需求,可以将能关联上的表尽量关联上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值