00:00
呃,好了,各位同学,那咱接下来要做的工作呢,就是第三张事务时表,它也是交易日里边了啊,那他的这个表名叫什么呢?叫做取消订单事物事时表,OK,那它对应的业务过程那就是取消订单了啊,是这样的啊好,那接下来呢,我们来看一下,就是这张表我们要设计的话,应该怎么去做,其实还得是那四个步骤对吧,咱们还是打开业务总监矩阵,对对照着去看一下,首先第一点。选择一个过程,那就是取消订单对吧?已经选好了,OK,那接下来继续往下走,下边儿我们要做的一个工作是什么呢?就是声明它的力度,那大家想一想,你说取消这订单这张表里对吧?我将来每行代表的应该是什么呢?应该是一次取消操作对吧?这个很很好理解对不对,但是咱们得精确到是什么程度呢?精确到什么程度呢?你得精确到是谁,也就是哪个用户,对吧?在什么时候对吧?那取消了哪个商品,你是不是也得精确到这个商品的程度才行,没问题吧?OK,好,这是大家需要去注意的,OK,那这就是我们这张表的力度啊,好,力度完成之后,我们往后倒,下边我们要做的一个工作是什么呢?啊,就是生灵它的维度对不对?OK,那现在我们来看一看与之相关的维度都有谁,其实你会发现啊,就是取消订单的这个业务过程的维度和上边下单的这个业务过程的维度是不是基本上是一致的呀,对吧?为什么是这样的呢?其实在这儿呢,我给大家简单的解释一下啊。
01:27
实际上一会儿咱们去做这张表的时候,你就会发现这张表的结构跟上边这张表的结构是非常非常的像的,但是它俩里边存的数据是不一样的,为什么?你想啊,下单的这个业务过程,这这这个表里存的是什么?是所有的下单明细,相当于是大家想是不是这个道理,是所有的下单明细位于下单这个表当中,OK,那取消订单这个实时表里存放的实际上相当于是什么呢?它其实存的也是下单明细,但是它不是所有的下单明细,它存的是什么样的下单明细,是那些取消的订单所对应的订单明细,其实说白了,他俩的关系是不是应该是这样的一个逻辑啊,对,也就是里边放的都是订单明细,既然都是订单明细,那它俩表结构是不是应该是很像的呀,对吧?啊是这样的啊,那所以你会往后看,你会发现那它的这个相应的这个诶走走走这个维度呢,其实基本上也都是一致的,也都是一致,但是可能不同的维度有不同的含义,比如说时间,咱以时间为准啊OK,那在下单这。
02:27
表当中,那咱这个时间指的是什么时间,是你下单的时间吧,没错,OK,那在取消订单这个表当中呢,你下单指的是什么?是取消的时间对不对?诶可能就是有不同的含义啊,但是表结构基本上一致的,这个大家理解一下啊,好了,接下来我们继续往后看啊,第三步确认维度就相当于完成了,最后一步就是确认事实了,就会发现其实确认事实你会发现这个事实跟下单的事实是不是也是基本一致的呀,对吧?我OK,当时这写的可能有点小问题啊呃,在这个业务过程当中,咱这个事实呢,其实就不应该叫做下单件数,下单金额了啊,这应该叫什么呢?叫做取也不叫退单,取消跟退单是两码事儿啊,这个不是一回事儿,下边咱们有这个退单的一个过程,它对它跟取消对它不是一回事儿,取消就是你没支付之前,你你不买它,这叫取消对吧?那退单叫什么呢?你付钱了之后你再不要了,这叫退单对不对,它是有区别的啊,这个理解一下啊,那现在我们继续往后看,呃,也是在这儿呢,我们应该叫做取消的件数,取消的这个原始金额等等等,应该叫这个对吧?但其实说白了,字段指的是不是都是同一个字段呀,对吧,都是明细里边的那个字段啊,这个理解一下好了,各位同学,那截止到现在这张表的这个设计过程咱就走完了,走完之后那现在。
03:36
我们一起来看一下它最终的建表语句啊,来找到这张表的建表语句,往下走,CTRLC拿过来,来了之后呢,我们放在这个位置啊。好了,各位同学,那现在我们把这张表的这个表结构看一下,首先先看表名,呃,第一个呢,就是它的这个,呃,第一部分呢,就是它的层名叫做DWD,然后下一个就是数据,这个不多说,然后后边呢,是console detail,对吧,是不是就是取消的明细啊,后边INC是不是还是增量分区对吧?好,那现在我们看它的具体的这个表结构,行列分区,先看行,呃,刚才其实说过了,一行在这张表里指代的是什么,是一次取消的操作,当然了需要精确到是谁在什么时候取消了哪个商品,是不是得精确到明细的这个力度啊,对吧?诶要搞清楚好了,那这个完成之后,我们看它的列啊,列还是分两部分去看维度加度量,维度呢,我就不再一个一个点了,你往这儿走,直接到这儿,这全是啥,全是维度,跟刚才那个下单的是不是基本上是一致的,这个我就不再多说了啊好,继续往下走,看它的度量,那度量呢,是不是就是这五个呀,对吧?诶当然在这儿呢,指的就是取消的件数,取消的金额啊,这个不多说,然后继续往往往中间看,中间呢,这是不是多了一个时间叫做console time对吧,取消。
04:45
订单的时间,这个也比较简单,不再多说,然后下边这个source仍然是什么,仍然是那些这个来源,对吧?但这个来源呢,在这儿也是啥呢?是不是也是做了一个维度退换呀,对吧?这个就不再多说了,好了,行列咱就完事了,最后明确一下分区,分区看到AC大家应该就已经知道了它的什么呀,就是增量分区吧,对吧?这个咱们就不再解释了啊好了,各位同学,那这张表的表结构咱就算是完成了,之后呢,我们来分析分析这张表的数据装载怎么做啊。
05:12
呃,好了,各位同学,那咱们接下来呢,继续往下走,呃,下边呢,就是这张表的数据状载来,我们把数据装载给它写上啊,还是老规矩,咱再来一起分析分析啊,就是这张表数据上来怎么做啊,怎么做,还是得分析它的数据流向,数据从哪来的,最终要到哪去,对吧,来吧,分析吧,数据从哪来。大家说从哪来啊,还是老规矩,就是数据从哪来,是不是还是取决于就是咱们这张表,这这这张表所对应的那个业务过程,也就是取消订单的业务过程,对吧?会影响到哪张表对吧?那取消订单会影响谁呀?会影响谁呀?啊来,我们还是打开之前的那个与下单相关的,或者叫与订单相关的这个,呃,这个表啊,咱们打开,打开之后咱们一起来分析分析啊。好,这是与下单相关的一堆表,对吧?那取消订单我们这些表会怎么编来着?我其实之前也给大家说过一说过一次啊,怎么编来着,谁会变呀?其实只有older in for这张表当中的那个older status字段是不会发生变化,对吧?其余的这些表它会发生变化吗?它其实不会变的,我们说过了,它是只会in s,不会,是不是update呀,对吧?啊,是这样的,OK,啥意思呢?也就是说你你假如举个例子啊,假如有个订单取消了,那与这个订单相关联的明细是不是也相当就是取消的一个状态了,对吧?所以他并不会说把这个明细也去改一下,他只改订单理论上就足够了,诶,是这样的啊,好,那现在问题来了,我们要干啥?
06:40
我们是不是得找到取消订单的明细操作才行?没问题吧,我们这儿这个最终的这个取消订单的实时表达的力度是什么?是明细力度,没没问题,没问题吧,同学们,但是呢,取消订单只会对这张表产生影响,那我怎样能找到取消的那个明细呢?对不对,怎么去找呢?
07:03
你取消订单,只有它会发生变化,没问题吧,也就是我们只能找到什么?理论上我们只能找到取消的order info,对,但是我们最终想要的是什么?是取消的欧体贴吧,相当于是,对不对?好,那怎么去找呢?分析分析各东西怎么整怎么整,其实很简单呀,是不是就是根据ID去关联一下就行了,对吧?你先去从这张表里找到取消到order info对不对?有order是不是就有order ID对吧?有order ID,那这张表有没有order ID也有啊对吧?那他俩一关联我们不就能进而得到消的明细操作了,对不对?应该是这样的一个逻辑啊,那所以这里边咱们大体的一个状态逻辑就应该是这样去做,先去找到订单表当中的取消的订单,再用它去跟明细表进行关联,我们再拿到什么呢?就是取消的明细,那就完事了,诶这个其实比较简单对吧?好了,同学,那截止到现在大体的思路应该就OK了啊,那OK之后呢,我们继续往下走啊,那将来呢,我们在做这张表的时候,咱们具体的流向是什么样的呢?我们其实也得分一个什么呀,首日和每日对不?因为你在做首日的时候呢,那这张表当中是不是也会有一些取消的这个明细啊呃,取消的订历史上的啊,历史上的这个取消的操作呀,对吧,所以说我们也有一些历史数。
08:19
据需要处理,诶,所以说首日咱们需要拿到全部的历史数据之后呢,进行一个动态分区,写到多个分区,就这是第一天,那到了第二天呢,是不是仍然是只拿当天的取消操作对不对,那之后呢,放到当天的分区那就完事了,所以说也得分一个首日和每日,我们也得写两个三啊好了,那这两个三号到底怎么写呢?诶我们下边再看啊来视频往下停一下。
我来说两句