00:00
好,那接下来我们看一下退单时表的数据装载啊,那同样还是先看一下它装载时的数据走向。好,大家来看啊,那上边指代的就是ods层与退单业务相关的表啊,那下边呢,是退单实施表,OK啊,那现在假定今天是6月14号,也就是第一天对吧?那我们来看一下啊,咱从ODI层能拿到什么数据?啊,这个其实不用多说,肯定是全量的数据,对吧?因为所有的业务表第一天都是全量啊,那OK,那咱们拿到这个数据之后呢,是不是需要把数据进行相应的处理,处理完之后呢,需要给他写到退单实时表啊,对吧?那关键是写到哪个分区,是不是仍然是写到多个分区啊,对吧?因为下边这张实时表咱的分区规划也是增量分区,每天的分区存储当天新增的哎,退单记录对吧?那所以说我们需要用到动态分区啊,将数据写到多个分区里。OK,这是第一天,那从第二天开始,那我们要做的操作就是啥呀。啊,从ods层获取当天新增的数据,处理完之后呢,放到时表当天的分区里啊,是不是每天都是这样的一个重复的操作了呀,对吧?那这就是退单时表装载时的,诶这个数据走向啊好,那接下来我们就来编写一下它的首日装载和每日装载的circleq语句啊那现在我们先看首日状态啊来,我们打开datara。
01:20
这呢是它的数据装载,那现在呢是首日啊,那首日我们假定今天的日期是不是就得是2020年6月14号啊,对吧?OK,那现在我们看一下这个搜狗应该怎么写啊,首先我们需要先明确咱们应该从哪取数。啊,退单表主要数据来源对吧?那当然分区呢是14号那2020杠零六杠幺四这个没有问题对吧?那现在我们还是先尝试着获取一下咱们所需的所有字段啊来CTRLC,那咱们快速的处理一下,好我已经提前处理好了啊,所以在那直接把它拿过来就可以了啊,然后呢,放到我们的select语句当中啊,CTRLV。
02:04
好,大家注意观察一下啊,那这里边是不是又有一个字段,它爆红了呀,对吧?爆红就说明啊,那这张表当中它没有这个字段,没有这个字段那咱就得从其他的表里边去拿了,对吧?啊,那从哪张表拿呀?是不是也应该是older in for表啊,对吧?大家注意观察一下啊,那这是不是有一个order ID啊,那他能够关联上对应的订单,那订单里边呢,就能够拿到对应的province ID。啊,是这样的啊,OK,那所以说接下来呢,我们还需要再写一个子查询,那就select from older in对吧?啊,OS啊,Order in,那当然这个分区也是2020杠零六杠幺四啊,那这里边呢,我们只需要拿到ID以及对应的诶province ID就可以了啊那上面这个pro ID呢,咱们就不需要了,给它删除就可以了,好,那咱接下来要做的事呢,是不是就把它俩做一个关联就可以了,对吧?那接下来我们给它做一个left draw啊。来看这位。来,我们往前推一下啊。
03:02
那这个起名为RI啊,Refund in啊,那接下来往下走下这个呢,起名为OI啊。往前推一下啊。好,那现在我们就可以让这两个子群进行关联操作了啊,那在这呢,我们使用left,那下边呢,来一个关联条件on on谁RI点应该是older ID对吧。哎,等于oi.id好,他俩就关联上了,那接下来我们就可以从这里边选择咱们所需的所有字段了,Select from,接下来我们拿一下这个所有的字段啊,CTRLC放下来。CTRLV,好,放在那完了之后呢,同样这个ID是有歧义的对吧?那在这呢,我们应该用谁呀?应该用ri.id没错吧?那接下来我们就可以将这个结果insert到我们这个目标表里边了,应该是DWD的,呃,Re order refund的对吧?Order refund的INF for,那注意后边分区,那第一天咱是不是要用动态分区啊对吧?或者在这呢,写一个DT就可以了,那最后在这个位置我们需要是不是再来一个分区字段的值啊,对吧?那当然这边我们还是使用谁还使用诶这个cur time作为分区字的值啊,Cur time当然得格式化一下啊,YYYY,然后杠MM-DDOK,那它的首日装载咱就完成了啊,OK,那紧接着我们来看一下它的每日装载啊,来,往下走。
04:25
每日,那每日呢,我们假定今天的日期就是2020年6月15号了,对吧?OK,那他每日装载的逻辑应该是什么样的呢。啊,其实呃,很简单,就是从哪啊,从ods层获取我们15号新增的退单记录对吧?然后写到DWD层退单时表的15号的分区里数不是就OK了啊其实很简单啊,那同样我们也是可以基于这个首日装载的circle啊进行改造啊来咱们拿下来,那之后首先我们先看这儿啊,这个紫查询咱们需要把日期改成六月15,没错吧,那继续,那下边这儿呢,这儿其实也是15号的分区就可以了啊,它这儿也是能够关联上的啊,没有任何问题,行,那再往上呢,我们就不需要用动态分区了,对吧?所以在这儿呢,第1T我们需要给他一个固定的值,那就是2020杠零六杠幺五,没错吧?那接下来这个位置,咱们需要把呃动态分区的值给它去掉,OK,那这就是退单实时表的每日装载的circle啊,其实比较简单啊。
我来说两句