一、表的种类及其概念:
一般情况下表分为三个类型,分别是实体表、维度表和事务表
1.实体表:
实体表,一般是指一个现实存在的业务对象,比如用户,商品,商家,销售员等等。
2.维度表:
维度表,一般是指对应一些业务状态,代码的解释表。也可以称之为码表。比如地区表,订单类型,支付方式,审批状态,商品分类等等。
维度表可以分为两类:一般维度表和固定维度表
一般维度表的数据是不断增加和变化的
固定维度表的数据是不变的
3.事实表:
事实表分为两类:事务型事实表和周期型事实表
事务型事实表,一般指随着业务发生不断产生的数据。特点是一旦发生不会再变化。 一般比如,交易流水,操作日志,出库入库记录等等。
周期型事实表,一般指随着业务发生不断产生的数据。与事务型不同的是,数据会随着业务周期性的推进而变化。
比如订单,其中订单状态回周期性变化。 再比如,请假、贷款申请,随着批复状态在周期性变化。
二、划分表的同步策略
1 、实体表
可以做每日全量,就是每天存一份完整数据。即每日全量。
如果数据量较大比如百万级以上的可以把历史数据(比如半年以前的)做成拉链表,更久远的冷数据可以直接归档(单独移出,存到其他硬盘上)。
2、 维度表
可能会有变化的数据可以存储每日全量。(比如订单类型,审批状态,商品分类)
3、 事实表
事务型事实表
每日增量: 因为数据不会变化,而且数据量巨大,所以每天只同步新增数据即可。每日分区。
周期型事实表
首先这类表从数据量的角度,存每日全量的话,数据量太大,冗余也太大。
如果用每日增量的话无法反应数据变化。
每日新增及变化量可以用,包括了当日的新增和修改。一般来说这个表,足够计算大部分当日数据的。
但是这种依然无法解决能够得到某一个历史时间点(时间切片)的切片数据。
所以要用利用每日新增和变化表,制作一张拉链表,以方便的取到某个时间切片的快照数据。
所以我们需要得到每日新增及变化量。
表类型 | 增长变化方式 | 数据量 | 同步策略(固定,每日增量、每日全量、每日新增变化、拉链表) |
---|---|---|---|
实体表 | 增加、变化 | 中等 | 近期每日全量,远期拉链表,更远期存磁盘 |
周期型事实表 | 增加、变化 | 大 | 增加及变化量 拉链表 |
事务型事实表 | 增加 | 大 | 每日增量 |
一般维度表 | 增加、变化 | 小 | 每日全量 |
固定维度表 | 不变 | 小 | 固定存一份 |