Hive中各种表的理解(流水/全量/快照/拉链)

流水表:

    就是每天增量的数据直接累加,用于凭证表等,每条记录 ID 都是唯一

全量表:

    每天都是全量抽取的数据

快照:

       1、根据业务修改时间 upd_ts 字段,抽取 T-1 天更新 / 新增的数据

       2、T-2 天的全量数据,关联 T-1 的数据,剔除历史数据中包含 T-1 天更新的数据

                     on a.card_no(T-2) = b.card_no (T-1)

                    where b.card_no is null 筛选关联不上 T-1 的部分数据

       3、union all 在一起,形成最新的快照分区

拉链表 (全量表):

    1、抽数同快照表

    2、当天新增或者更新的数据,start_dt = 'nowdays-1',end_dt='9999-12-31'

    3、将前一天的拉链表 a left join 增量数据 b , 用 Case when 判断 b.id is not null 且 a.end_dt='9999-12-31' 就是更新的部分数据 则update end_dt ='nowdays-1'  else a.end_dt 

    4、将两部分数据 union all 一起,覆盖前一天的拉链表 

总结:之前项目中用到的拉链表较少,因为大表但是变化字段和比例较少的情况比较少,所以一般都是用的快照表,存储资源比较充足。若大数据量,但是变化的字段和数据比例较少的时候,就要考虑使用拉链表

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值