文章目录
- 一.表的种类及其概念
- 1.实体表
- 2.维度表
- 3.事实表
- 二.数据同步策略
- 1.全量同步策略
- 2.增量同步策略
- 3.新增及变化策略
- 4.特殊策略
一.表的种类及其概念
1.实体表
一般是指一个现实中存在的业务对象,实体表它放的数据一定是一条条客观存在的事物数据,比如用户,商家,商品等(某东上的某某人参丸就是一个实体)3。
2.维度表
一般是指业务中的一些状态,代码的解释表(也称为码表)。维度表可以看成是用户用来分析一个事实的窗口,它里面的数据应该是对事实的各个方面描述。
维度表还可以分为一般维度表和固定维度表。
- 一般维度表:数据是可以增加以及变化的。比如:商品分类,时间等
- 固定维度表:数据是固定不变的。比如:性别,订单状态等。
3.事实表
事实表其实质就是通过各种维度和一些指标值得组合来确定一个事实的,比如通过时间维度,地域组织维度,指标值可以去确定在某时某地的一些指标值怎么样的事实。事实表的每一条数据都是几条维度表的数据和指标值交汇而得到的。
事实表还可以分为周期型事实表、事务型事实表和累计快照事实表。
- 事务型事实表
事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。由于事实表具有稀疏性质 ,因此只有当天数据才会进入 当天的事实表中,相当于每个分区里面都是每天的数据,不包含之前的数据1。比如:交易流水、操作日志、出入库记录等。
事实表一般围绕着度量来建立,当度量产生的时候,事实记录就生成了。度量可以是销售数量、交易流水值、月末节余等数值。如果同时生成多个度量值的话,我们可以在一个事实表中建立多个事实。当我们的事实表中的事实比较多时,有可能多个事实不同时发生,如果同时生成的几率很小,我们称之为稀疏事实表(Sparse Facts)2。 - 周期型快照事实表
周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,时间间隔如每天、每月、每年等等。比如订单表,其中有一个字段,订单状态,这个会周期性变化。 再比如,请假、贷款申请,随着批复状态在周期性变化;销售日快照表、库存日快照表等。
周期快照表没有粒度的概念,取而代之的是周期+状态度量的组合,如历史至今的订单总数,其中历史至今是 一个周期,订单总数是度量。
- 累计型快照事实表
周期快照事实表记录的确定的周期的数据,而累积快照事实表记录的不确定的周期的数据。累积快照事实表代表的是完全覆盖一个事务或产品的生命周期的时间跨度,它通常具有多个日期字段,用来记录整个生命周期中的关键时间点。例如订单累计快照事实表会有付款日期,发货日期,收货日期等时间点。再比如用户的修改记录信息。
**累计快照事实表用于跟踪业务事实的变化。**例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。当这个业务过程进行时,事实表的记录也要不断更新。
事务型事实 | 周期快照事实 | 累积快照事实 | |
时间/时期 | 离散事务时间点 | 规律性时间间隔 | 时间跨度较短的多个时点 |
粒度 | 每行代表一个交易事件 | 每行代表一个时间周期的一个实体 | 每行代表一个实体的生命周期 |
事实表加载 | 新增 | 新增 | 新增和修改 |
事实表更新 | 不更新 | 不更新 | 新事件产生时更新 |
时间维度 | 业务日期 | 时期末 | 多个业务过程的完成日期 |
事实 | 事务事实 | 累积事实 | 业务过程事实 |
二.数据同步策略
1.全量同步策略
每日全量,每天存储一份完整数据,作为一个分区。适用于表数据不大,且每天既有新数据插入,也会有旧数据修改的场景。
例如:编码字典表,品牌表,商品分类表,优惠表,活动表,商品表,加购表,SPU表等。
2.增量同步策略
每天存储一份增量数据,作为一个分区。适用于表数据量大,且每天只有新数据插入的场景。例如:退单表,订单状态表,支付流水表,订单详情表,商品评论表等。
3.新增及变化策略
每日新增及变化,就是存储创建时间和操作时间都是今天的数据。适用场景为表的数据量大,既会有新增,又会有变化。例如用户表、订单表、优惠券领用表等。
4.特殊策略
- 客观世界维度
没变化的客观世界的维度(比如性别,地区,民族,政治成分,鞋子尺码)可以只存一份固定值。 - 日期维度
日期维度可以一次性导入一年或若干年的数据。 - 地区维度
省份表、地区表。