数据仓库主题九-(事务事实表)

11 篇文章 13 订阅
10 篇文章 28 订阅
本文详细介绍了事务事实表的设计,包括单事务事实表和多事务事实表的适用场景及优缺点。通过订单业务过程的例子,阐述了下单、支付和成功完结等关键节点如何在事实表中体现。讨论了粒度、维度和事实的一致性,以及如何处理父子订单问题。最后提出了事实表设计的准则,强调事实的完整性、一致性和可加性。
摘要由CSDN通过智能技术生成

事务事实表

对于单事务事实表,一个业务过程建立一个事实表,只反映一个业务过程的事实 对于多事务事实表,在同一个事实表中反映多个业务过程。多个业务过程是否放到同一个事实表中。
订单作为交易行为的核心载体,直接反应了交易的状况。订单的流转回产生很多业务过程,而下单、支付和成功完结三个业务过程是整个订单的关键节点。。获取这三个业务过程的笔数、金额以及转化率是日常
数据统计分析的重点,事务事实表设计可以很好地满足这个需求。

一、单事务事实表
1、顾名思义,即针对每个业务过程设计 个事实表。这样设计的优点不言而喻,可以方便地对每个业务过程进行独立的分析。例如再交易流程中把下单和支付分别设计到不同事实表中。选定业务过程之后,将对每个业务过程确定粒度、维度和事实。
分别设计的表结果如下
以下单事实表数据实例
在这里插入图片描述
交易订单支付事务事实表数据实例如下
在这里插入图片描述

二、多事务事实表

多事务事实表,将不同事实放到同一个事实表中,即同一个事实表包含不同的业务过程。多事务事实表在设计时有两种方法进行事实的处理:1、不同 务过程的事实使用不同的事实字段进行存放:2、不同业务过程的事实使用同一个事实字段进行存放,但增加个业务过程标签。(下面有不同例子做了区分)
此处也用某宝的交易事实表为例子。取将不同业务过程的事实使用不同事实字段进行存放的设计模式。淘宝交易事务事实表 中同时包含了下单、支付和成功完结 个业务过程,这三个业务过程拥有相同的粒度,都是子订单粒度,也比较适合放到同一个事实表中。选择业务过程时没有把发货也加到此事务事实表中,原因是发货的粒度比子订单更细,属于不同粒度上的业务过程,因此没有放到同一个事实表中。
确定好粒度后, 下一步是确定维度和事实,对不同业务过程和粒度,维度并不是完全一致。但常用的维度可能一致。因此在维度层面可以保证这三个业务过程放到同一个事务事实表中。这里面馆维度中比较常见的,如包括买家、卖家、商品、类目、店铺、收发货地区等,无论在哪一个业务过程中,都需要按照这些维度进行统计分析。
某宝的交易事务事实表中包含下单度量、支付度量和成功完结度量信息,分别使用一个字段进行保存,如果不是但钱业务事实,则可以采取零值处理方式。
个事实表中包含了多个业务过程,为了对每个业务过程进行区分,采用每个业务打一个标签,标记当天是否是这个业务过程,比如针对下单,则打一个是否当天下单的标签;针对支付,打一个是否当天支付的标 针对成功完结,打一个是否当天成功完结的标签 ,标签之间互不相干。

同样以交易订单为例子,order在2016-01-01 下单并且在当天完成支付 order2和order3在2016-01-01 下单并且在 2016-01-02 完成支付,在2016-01-04成功完结。其具体具体设计为
在这里插入图片描述
具体多事务事实表数据实例为:
在这里插入图片描述
而对于收藏商品的表设计中,我们可以用一个字段来区分是收藏商品和删除商品这两个不同的业务过程,具体的业务实例为:
在这里插入图片描述
多事务事实表的设计方式选择:
当业务过程度量比较相似,差异不大时,可以采用第二种设计方式,使用同 个字段来表示 数据(问题同周期中出现多条记录)
当业务过程度量值差异较大,可以采用择第 事务事实表的设计方式,(问题度量字段零值较多)

三、单事务和多事务事实表的对比

前面介绍了单事务事实表和多事务事实表的设计过程,在不同应用场景中多有不同应用。但具体哪 种设计方式更优,我们接下来进行分析。

1、业务过程分析
多业务事实表和单业务事实表选择,首先需要分析不同业务过程之间的相似性和业务源系统。比如某宝的宝交易的下单、支付和成功完结这三个业务过程是存在相似性的,都属于订单处理中的 环,并且都来
自于交易系统 ,因此适合放到同一个事务事实表。
2、粒度和维度分析
确定好业务过程之后,分析器不同业务过程的粒度和维度,当其有相同的粒度和较多的通用维度时候可以设计为多业务事实表,反之。例如交易中支付和发货有不同的粒度,则无法将发货业务过程放到淘宝
交易事务事实表中。
3、事实分析
如果单务过程的事实较多,同时不同业务过程的事实又不相同,则可以考虑使用单事务事实表,处理更加清晰 若使用多事务事实表, 会导致事实表零值或空值字段较多。
4、下游使用分析
单事务事实表对于下游用户而言更容易理解 关注哪个 务过程就使用相应的事务事实表;而多事务事实表包含多个 务过程,用户使用时往往较为困惑。有一定学习成本。
5计算成本等。
当业务过程数据来源于同 个业务系统,具有相同的粒度和维度,且维度较多而事实相对不多时,此时可以考虑使用多事务事实表,不仅其加工计算成本较低,同时在存储上也相对节省。

四、父子事实的处理

下单过程中经常出现父子订单的问题。而在设计表中我们一般选用最细粒度,以增加分析灵活性。
下单和支付都是在父订单粒度上完成的,比如拍下时的订单总额、支付总额、支付邮费,淘宝交易事务事实表在粒度选择上,按照粒度最细原则,确定为子订单,因此需要将下单总额或者支付总额分摊到每个子订单上,当然只有一个子订单时是不需要进行分摊的。

五、事实表的设计准则

1、事实完整性
事实表包含与其描述的过程有关的所有事实,即尽可能多地获取所有的度量。在淘宝交易事务事实表中,比如支付业务过程,在子订单粒度上的支付金额、支付邮费、支付红包、支付积分、支付折扣都有所包,覆盖全面。
2、事实一致性
在确定事务事实表的事实时,明确存储每一个事实以确保度量一致性。以交易事务事实表为例 ,在下单业务过程中,有下单商品数量和商品价格两个事实,但在事实表中计算了 下单金额和下单有效金它们可以通过商品数量乘以商品价格进行计算。
3、事实可加性
比如分摊 比例、润率等,虽然它们也是下游分析的关键点,但往往在事务事实表中 关注更多的是可加性事实,下游用户在聚合统计时更加方便。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值