数据同步策略的类型包括:全量表、增量表、新增及变化表
- 全量表:存储完整的数据;数据量不大的表(有变化)
- 增量表:存储新增加的数据;数据没有修改,但是会追加的情况
- 新增及变化表:存储新增加的数据和变化的数据;数据量比较大,修改与增加
- 特殊表:只需要存储一次
1、全量同步策略
每日全量,导入完整数据到hive的分区表,就是每天存储一份完整数据,作为一个分区
适用于表数据量不大,且每天既会有新数据插入,也会有旧数据的修改的场景
例如:编码字典表、品牌表、商品三级分类、商品二级分类、商品一级分类、优惠规则表、活动表、活动参与商品表、加购表、商品收藏表、优惠券表、SKU商品表、SPU商品表
2、增量同步策略
每日增量,就是每天存储一份增量数据,作为一个分区
适用于表数据量大,且每天只会有新数据插入的场景
例如:退单表、订单状态表、支付流水表、订单详情表、活动与订单关联表、商品评论表
3、新增及变化策略
每日新增及变化,就是存储创建时间和操作时间都是今天的数据
适用于表数据量大,既会有新增,又会有变化
例如:用户表(更适合用于拉链表来实现)、订单表、优惠券领用表
重点关注:这个表里面的时间字段,如果说没有时间,考虑全量或者是特殊策略;如果说有时间,create_time(这个数据的记录时间);如果只有这个时间,是一个增量;如果出了这个时间,还有其他时间,action_time/update_time…(修改时间),可以采用新增与变化的策略
4、特殊策略
某些特殊的维度表,可不必遵循上述同步策略
- 客观世界维度
没变化的客观世界的维度(比如性别、地区、民族、政治成分、鞋子尺码)可以只存一份固定值 - 日期维度
日期维度可以一次性导入一年或若干年的数据 - 地区维度
省份表、地区表
离线数仓的数据大部分采用T+1,0点之后(15-30分钟)才开始同步数据,定时调度任务,使用一些工具(crontab、azkaban)