1. 问题
这三事实表的定义很简单, 但是实际有些场景很难区分
2. 定义
- 事物事实表:一个事件一行,这个事件可以是聚合事件
- 周期快照事实表:周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,主要用于分析一些存量型(例如商品库存,账户余额)或者状态型(空气温度,行驶速度)指标。
- 累积快照事实表:累计快照事实表是基于一个业务流程中的多个关键业务过程联合处理而构建的事实表,如交易流程中的下单、支付、发货、确认收货业务
3.场景
订单, 下单后有状态变更的订单。 比如美团上点外卖后的完成状态。
4. 歧义
- 事物特性: 对用户和菜单来说,订单就是事件,点一单,就生成1-n条事物记录,稀疏。
- 周期快照特性:对订单来说,订单就是快照,尤其他有状态,有快照的实际意义。虽然这个状态可能是业务系统冗余造成的。
- 累计快照特性:这个状态是冗余的,是另一个业务过程 收货回写来的。 如果再加上一个完单时间, 就是赤裸裸的累计快照事实表了。
尤其在hive里,如果每天一个全量订单表时,更是难区分。
如果不是每天全量,至少能判定不是周期快照。
只能说从不从的角度(客户和订单), 不同的字段(可变状态),是否全分区,有不同的结论。