累积快照事实表的制作方式

累积快照事实表

首先我们要考虑,为什么要做累积快照的事实表,事实表就不做解释了,要理解为什么要做累积快照。
累计快照事实表用于跟踪业务事实的变化。例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单的完结。中间整条的链路是什么样子的呢?
case :
订单的创建时间、订单修改时间、订单关闭时间(用户取消或者超时)、实际下单时间、支付完成时间、预期发货时间、确认收货时间。这是一张订单表中,该有的时间。根据时间节点,来跟踪订单生命周期的进展情况。当这个业务过程进行的时候,事实表的记录也要不断的更新。但是由于数据体量非常大,所以我们需要对脚本进行优化,防止破基线,这个时候,我们需要做的工作,不仅仅限于简简单单的写出SQL,将功能实现,这么简单。首先我们会先将功能实现。采用动态回刷分区的方式,将累积快照完全落地。


制作CASE (伪代码):

set hive.exec.dynamic.patition.mode = nonstrict;

-- 更新未完成分区
insert overwrite table dwd_order_di partition(dt)
select
	  nvl(new_tab.id,old_tab.id)
	,'9999-99-99' as dt
from (
	  select
         *
	  from dwd_order_di
	  where dt = '9999-99-99'
) old_tab
full join(
	-- 做一个月的快照
	select
	   *
    from dwd_order_detail_di
    where dt between date_sub(
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值