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