00:00
呃,好了,各位同学,那接下来呢,我们再往下进行啊,我再开一个头,呃,然后咱现在已经结束一个域了啊,交易完成了对不对?那我们接下来要要要做的数据是哪个域呢?是工具域,大家还记不记得这个工具域指的是什么?这个工具是什么工具来着,是我们这个电商平台当中一些用来做促销的一些小工具,对吧?啊,这个包括什么呢?啊,包括比如说我那个虚拟货币对不对,那包括这个优惠券,这是不是都是一些促销的小工具啊,对吧?那与这些工具相关的业务过程,我们就都放在了这个数据域下边了,对不对,当然我们这儿呢,并没有那个虚拟货币啊,咱只有个优惠券,所以这里边儿我们的诶,呃,一个过程其实都是与优惠券相关的,那一共有哪几个呢?咱们简单的来看一看。有哪几个呀?有三个分别是,诶优惠券领取就是领券,这算是一个业务过程对不对?OK,那还有什么呢?还有使用优惠券去下单对不对,就是我用券了然后下单,这是一个业务过程,对吧?那完了之后呢,还有一个是什么?是用券点支付对不对,这是不是也是一个业务过程啊,对吧?在这儿呢,我们一共有这样的三个与优惠券相关的业务过程啊,OK啊,那将来呢,我们是不是就得建三张事物时量啊,对不对?OK,那现在我们先大致的分析分析啊,就是咱这三张表的这个呃,力度应该是什么样的,咱们先大致的了解一下他们的力度应该是什么样的,想一想,你说这张表里存放的应该是什么呀?是不是应该是一个一个的领券记录,那你说我们应该记录什么信息,是应该记录是谁,在什么时候,对不对,领了什么券。
01:34
没问题吧,是不是应该是这样的一些操作呀,对不对,OK,那接着往下走,你说下单这个咱们存的应该是啥呀。是不是应该是谁,对不对,在什么时候用哪个券去下单了,是不是应该是这样的一个操作呀,对吧,好,那接着往下走看这个。这个应该是什么呢?对应的是不是应该是谁在什么时候用哪个券去支付了呀,对吧?哎,它里边存储的是不是应该是这样的一些操作记录啊,对吧?OK,那也就是截止到现在这三张表所对应的这个力度,咱基本上就能够搞清楚了,里边存什么数据,咱们基本上有了一个初步的认识了啊,是这样的啊好,那现在呢,我们先不去逐个的看每张表的这个最终的建表语句啊,因为咱们这个力度咱基本上明确了,那建表语句长什么样,咱基本上也应该差不多能够想到啊,所以现在表结构我们暂时先不去看了,我现在分析分析什么呢?分析分析咱们将来去做数据装载的时候,我们应该从哪张表里取份,咱们先来整体的把这个分析分析啊,是这样的啊,分析分析,你说你从哪去找这个领券记录,从哪去找,这个使用他下单的记录从哪去找,使用他支付的记录,这个从哪去找。
02:43
从哪去找来,那是不是就得看一下这三个业务过程会对哪张表产生影响啊,对吧?OK,那他会对谁产生影响。这么多表会对谁产生影响呢?哎,在这儿呢,我就不卖关子了,我直接告诉大家就行了啊,它实际上呢,是会对Co旁柚子这张表产生影响的啊,我这儿为什么得要先整体的去分析一下,就是这三个业务过程的一个就是装载的逻辑呢,是因为这三张表的数据都是来自于这一张表了啊OK,那所以咱现在呢,先把这一张表给它熟悉了,然后呢,一会儿我们再统一的去把这三张表给过一下就行了啊好,那现在先熟悉一下这张表啊,这张表呢,叫做空房柚子对吧?我们直译过来呢,叫做优惠券使用表对不对?那这张表里到底存储了什么样的信息呢?来进来看一看,呃,这张表就给大家摆在这儿了,然后呢,咱们一起来熟悉熟悉,就是这上面的这个表结构,呃,字段呢,就这么多,就这么多,来我们一起来看一看,看能不能看明白啊,行列都是啥,咱们自己尝试着看一看啊,得会看才行,这些字段没有什么太难的啊,相对都比较简单。
03:51
呃,这里边有一个所谓的库旁是一个状态对吧?这个状态是什么?先给大家看一眼这个幺四开头的对吧?找一下幺四开头的未使用,使用中已使用对不对?OK啊好,那什么叫未使用,给大家说一下啊,领了没用,这叫未使用对吧?那什么叫使用中呢?
04:09
领了下单了,但是没支付叫使用中,对不对,那玩意什么叫已使用呢?领了然后使用它支付了就叫已使用对吧?诶,这是三个状态啊,咱们给他搞清楚好,那再回到刚才那张表,大家继续熟悉这边的表结构啊,看看能不能能不能这个搞明白啊。呃,差不多应该能搞清楚吧,对吧?首先先明确一下,就是他们每行在这指来的是什么?应该就是一个用户对一个优惠券的一个领用记录吧,对,我为什说是领用,领用包含两个意思,一个是领,一个是用,对不对?因里边既可能会有领取的信息,是不是也有使用的信息啊,对吧?一行数据代表的是一个人对一个券的一个领用记录,好行,咱们先,呃看到这个程度,那接下来大致熟悉它里边的字段啊,那字段都有啥呢?哎,首先就是优惠券ID,那用户ID对吧?这是谁领的什么券,谁用的什么券,是不是表现的很清楚,对吧?好,继续往下走,这儿有一个什么。
05:04
Older ID订单ID,但是你会发现订单ID下边是不是好多都是空啊,对吧?OK,那这是为什么呢?什么时候会是空的,有没有不为空的呢?也有不为空的对吧?哎,什么时候会有空啊,就是你刚领来没用是不是就是空的吧?对吧?你用它下单了是不是就不是空的对吧?这个应该能搞清楚,接下来往下走,这呢,有一个所谓的房随那的,这个是不是就刚才咱们看的那个未使用,使用中和已使用的三个状态对吧?这个不多说,然后往后走create time,这个不多说,然后往后看看get,这个关键get指的就是什么时间。领取时间对不对,那后边这个using time呢,对应的应该就是那个所谓的下单时间吧。使是这个道理吧,使用中嘛,使用中是不是对应的是下单那个状态啊,对吧?哎,这期说白就是下单时间,好接着往下走,这个use的type是什么呢?就是使用结束那个,也就是说白了就什么时间呢?支付时间应该是支付时间啊,是这样的啊OK,那后边还有一个字叫什么呢?叫做exp time,这个是啥意思?
06:00
过期时间,因为咱们要是领了一个券,你要老不用它最终是不会过期啊,对吧,过期了之后这儿会有一个过期时间啊,这个理解一下啊,好多同学那截止到现在呢,这这张表,那它的表结构咱们就熟悉了,熟悉了之后呢,那接下来我们需要明确一下啊,就是我们刚刚所讲的那三个业务过程,分别是领券,用券,下单,用券支付,对吧,他们仨是如何对这张表产生影响的,因为咱们刚才说过了,就是这三张表的数据是不是都来自于他呀,对不对,所以咱们现在搞清楚他们仨是如何影响这张表的来吧。搞一下吧。呃,当然在这儿还是以一个就是呃,真正的一个领券用券的一个这个流程去呃作为案例,对吧,咱来分析分析他们是如何对这张表产生影响的,好,那假定现在啊,有一个人对不对,领了一个券对吧,刚领了之后,你说咱们这张表会发生什么样的变化?因三的一条数据吧,对不对,应该会因的一条数据,那数据刚IN3进来,应该是什么样的状态呢?应该就是这样的一个状态,对什么状态,你看啊,里边呢,会有券的ID,有用户的ID对不对,会有一个状态是1401未使用的状态,对吧?然后里边呢,会有一个领取时间,你像这个什么订单的ID使用的时间,这是不是都是空对不对,这就是数据刚insert进来的一个状态啊,这是insert啊这是这是这是领券啊好,那领完之后,那我可能会怎么样呢?我是不是可能会用券啊对吧?用券分两步,一个是下单,一个支付,对不对,那咱们先说下单,用券下单你说会对这张表产生什么影响,琢么琢么是。
07:30
Insert呀,还是修改呀,应该是修改吧,对不对,他是不是会找到之前自己领券那个那个那个那个那个记录对不对,那找到之后怎么办呢?首先order ID是不是会被修改,会由now变为你下单的ID吧,对不对?然后往下走,状态是不是会变,会由1401变成1402对吧?好,那继续往下走,那后边这个时间要不要变。Using time应该会变,它应该会变成你刚刚那个下单的时间吧,对不对,OK,好,那其他的还变吗?其他就不变了,诶这是咱们,诶使用下单这个过程对这张表的影响,它总体上来说呢,是一个update操作对吧?好,那接着往下走,最后一个就是支付对不对,那用券支付会对这张表产生什么影响?
08:14
琢磨琢磨是不是也是update呀,对吧,也是修改一条数据啊,它也是会找到之前你领券,哎,那那条记录对吧,找到之后呢,这回怎么改,首先状态是不是会变成1403的一个状态,对不对,那还有谁会变呢?Use子的time是不是会变啊对吧?它会变成你刚刚的那个支付时间,那其实就这么个变化逻辑吧,对不对?那其实我们只要把刚才的这三个业务过程对这张表的影响逻辑搞清楚了,那一会儿咱们这三张表的数据装载是不是就都会写了呀,对不对,相对是比较简单的啊好了同学,那截止到现在我们就已经把这个事儿说清楚了,完之后我视频我停一。嗯嗯,好,各位同学,那现在呢,我们就呃统一的把咱们这个工益域的工具域的三张表一块给它过一下就行了,因为刚才呢,呃,我们已经大致的分析了一下,就是我们这三张表对吧?他们呃这个表的力度啊,诶,以及那我们从那个呃业务系统,业务系统当中表里边的取数的一个逻辑啊等等,咱们大致都分析完了,那现在呢,我们就整体的看一下这三张表的具体内容就行了,呃,我们先看第一张表啊,第一张表我们称之为工具域,然后呢是优惠券领取事故时表,对吧?它所对应的业务过程呢,是又是那个领券,说白了是对吧?OK,那这张表将来里面存的应该是什么呀?应该就是一个一个的领券记录吧,对吧?啊OK,好,那现在呢,我们把接边语句拿出来,咱们一起过一下就行了啊,我就不再带着大家呢去走那个设计的流程了,不再去选择业务过程,确定维度,嗯,什么什么力度的,不再走这个过程了,咱们直接看一下结果就行啊,可能拿过来,咱现在呢看一下就是这张表最终的一个鉴表数据,来咱先看它的表。
09:49
哎,注意观察一个小细节啊,就这个地方数据域是不是变了呀,对吧,不再是出交易了,变成了to工具域啊,然后往后走。这是库房get,是不是就是领券啊对吧?这是它的业务过程,后边呢是INC,它仍然是一个事物实时表,事物实时表它的分区规划是不是都是增量分区啊对吧?这个就不多说了啊行,那现在我们来明确一下这张表最终的表结构,这个表看起来是不是很简单呀对吧?行列分区我们一起看一下,首先先看行这张表一行代表的是一个什么来着,是一次领券操作吧,对不对?那具具体呢,我们需要精确到什么程度啊,精确到是谁,在什么时候,对不对,领了哪个券,是不是应该就是这样的一行啊对吧?好,行明确了,最后我们来看一看它的列啊列呢,其实同学应该能够发现这个列非常少,对吧?我们正常看列是不是得分维度加度量啊对吧?但是你看的过程当中,你会发现啊,这个是一个什么维度,这个是一个什么维度,那这个呢,它也是维度,那当然最后还有一个具体的get time,这个get time跟这个日期ID其实应该是类似的,对吧,日期ID只有年月日,Get time是有十分秒的,对吧?OK,好,那你会发现我们把维度找完之后,这个。
10:59
的字段就没了,全是维度,没度量对不对,这个是怎么一回事呢?其实之前给大家说过这个情况对吧,就是有些业务过程呢,它没有一个就是呃,特别明显的这种度量值对不对,它没有一个什么间数啊,或者是次数啊,或者是金额啊等等,没有这样一个明显的度量值,那我们这儿呢,相当于只能有一个什么呢?就是隐含的度量值,也就是次数一对不对,我这里边一行数据是能代表这个人是不是领的这个券一次的呀,对吧,那将来呢,我们可以统计,比如说这个券它的被领取的总次数对不对,或者说一个人他领券的总次数等等等等,也是这样的啊,所以这一点咱们要搞清楚,他没有明显的度量值,行了,那现在行和力咱就都清楚了,最后明确一下它的这个分区规划啊,来分析分析它的分区规划应该什么样的INC嘛,增量分区吧,一天一个,然后每天的分区里放的就是啥,是不是就是当天的领券的这个结果呀,呃,领券的这个记录啊,对吧,这一点搞清楚就行了,好了,表结构完事了,最后呢,我们来分析分析它的数据状。
11:59
还怎么做?呃,数据装载呢,这个数据的流向咱基本上已经明确了啊,都是来自于哪张表呢?是不是都是来自于我们刚刚所提到的那个coon柚子那张表,对吧?哎,这个咱就不再多说了,好了,那关键是我们从那张表里取出的逻辑应该是什么样的呢?对不对,肯定是来自这张表我们,诶,那跑哪去了?枯旁柚子在这肯定是拉到一张表,对吧?但是我从这边里取出的逻辑,具体逻辑应该是什么?呃,具体逻辑咱是不是得分情况啊,对吧,咱这是不是得分一个首日和每日对不对?他也要做首日的初始化啊,OK,那现在我们先看首日,也就是说我们首日的时候我们应该想办法去拿到,是不是历史上的所有的领券记录啊,没问题吧?好,那怎么找,熟拾的时候,我们拿到的数据跟这儿是不是就是一样的,对不对,好,那怎么找。
12:46
这一行能不能代表一个历史上的领券操作记录。那么。能等一行数据能不能代表一个历史上的一次领券记录,应该是能的吧,对不对,我们刚才分析过啊,说领券的时候这张表是不是会插入一条数据,而且只有领券的时候,是不是这张表里才会插入一条数据啊,对不对?所以说只要这里边有一条数据,那就肯定能代表之前有一个什么,有一个领券操作没问题吧,所以一行数据就代表一次领券的操作,OK,那领取的时间这有没有呢?有啊,这是不是有一个get times大家对吧?那所以实际上呢,我们从诶这张表里去获取这个首日的历史的这个,呃,就是领券记录的时候相对比较简单,是不是直接从这张表里拿这样的一行一行的数据就完事了呀,对吧,相对比较简单,好,这是首日,那每日应该怎么做,注意每日我们拿到的就跟这儿的数据就不一样了,我们拿到是一个一个的,是不是那个什么操作记录啊,对吧,有in色的,有update,那我们要哪种类型的。
13:47
银色的类型吧,对吧?这个不用多说吧,OK,好,首日每日的逻辑基本上就确定下来了,好,那接下来了,我们看一下最终的数据装载语句,我们找一下啊,这个其实非常简单,一共也没几行,对吧?CTRLC拿过来正CTRLV好了,那现在呢,我们把这个呃标题都给它注一下啊,这个注掉,那这个呢,咱也给它,诶这个注掉好了,那现在呢,我们看一下这个首日和每日的数据状态语句,咱先看首日啊啊OK,首先首日直接来了一个select的对吧?然后呢,From是不是就是ods层的Co房柚子IC那张表啊,拿它十四二的分区,注意它有其他的过滤操作吗?没有任何的过滤对不对?那刚才我们说了这张表里是不是一行,它就是一个领券的操作呀,对吧?所有的我都要拿,OK好拿到之后接下来你看他怎么做的啊,是不是直接就从里边去获取我们所需的每个字段了呀,对吧,而且从这张表里是不是能够拿到咱这张事实表所需的所有字段,对吧,那我们还用去照其他表就不用,所以这个三料看起来比较简单啊,好,那看一看它是怎么拿到什么ID啊I。
14:48
ID这个不用多说,都拿到了,那玩意关键是啥?就是我们这个data ID从哪来,显然应该从get time来对吧?好,那完之后呢,呃,我们这个因为是首日嘛,首日你会拿到所有的历史上的领券记录,我们需要做一个动态分区,对吧?这儿写BT,然后这儿呢,多选一个字段是不是就行了,对吧?这就是首日,那每日怎么做呢?每日直接看一下就行了,非常简单,首先select from这张表是不是15号的分区,大家要注意,15号的分区里边存放的就是inser的update操作,我们在那刚才分析过了,我们应该要in s类型的,对不对,直接拿到,拿到之后呢,诶,把这个字段稍微的处理一下,结果放到12分区,诶,搞定了,诶这个表相对是比较简单的啊好了,那领券这个表咱就搞定了,紧接着我们来看一下下边一个,下边一个应该是什么的来着,是用券的对吧?当然指的是用券下单的这个业务过程啊好,那现在咱们把这张表的见面语句直接拿出来,咱们看一下就行了,显然这张表当中存放的应该是什么,是一个一个的用券下单的操作记录,对吧。
15:48
好,那这个我们就不再去分析它的这个设计过程了,我们直接看最终的设计结果,来看一下它的建造语句,表名看一眼表明呢,叫做工具域,是不是用券下单呀,对吧?啊这样的一张试试表,好,接下来往下走,看一看这张表的具体的行列分区行呢?大家说这张表一行代表的应该是一个什么?
16:08
是一个人对一个优惠券的一次使用记录吧,对吧,当这个使用的特值下单那个操作对不对,是这样的啊好了,那接下来呢,我们看一下它里边具体的一个字段,字段你会发现其实也全是维度对不对,你看啊,首先一个是库房ID。第二一个呢,是UID对不对?那再往下呢,是date ID,当然还有一个与之对应的是不是下单时间呀,对吧?OK,好,那这就是所有的字段全是维度,当然中间呢,还有一个OID,这个OID呢,在那其实就是咱们给它放在这儿啊,就是呃,为了避免以后我们可能需要用它去跟什么订单表进行关联呀等等等等,诶这样的一个逻辑,咱给它放在这了,当然这个你不放在其实也没事好了,那为什么我这儿会放一个order ID,而我上边这张表没放呢?呃,因为上边这张表咱们领券之后是还没有关联上订单啊,对吧,所以说你放也没有意义啊,这边因为你下单了他就有欧ID的,所以在这儿我给他放了一个啊,行了,那这其实就咱这张表资的,它仍然是只有什么,只有维度,没有明显的度量啊,OK,你要是说要是说非得有一个度量的话呢,那仍然是那个隐含的次数一对不对,OK,那这个行列就完事了,最后看分区,分区仍然是增长分居吧,OK,好,那现在表结构咱就说完了,说完之后我们一起来分析分析这张表的数据装载怎么做,呃,数装载来自于。
17:25
哪张表我刚才已经明确了,还是来自于枯旁柚子这张表对吧?好,那现在我们只需要明确取数的逻辑就行了啊,当然你需要区分一个首日和每日对吧?首日我们怎样从这张表里拿到那个历史上的对吧?那这个用券下单的操作记录怎样能找到?嗯,怎样能找到历史上的用券下单记录,就是咱们得知道谁在历史上的什么时候对吧,用什么券他去下单了对不对,咱们得找到这样的机会能不能找着。呃,首先这张表刚才咱们说了,其实一里边一行我代表的是一个什么,是不是能够代表一次领取记录啊,对吧,没问题吧,OK,好,那能不能说,诶我这张表里每行数据代表一个用券下单的操作吗?能能能说明这个能能这么说吗?你这么说不行,就对你比如以他为例,这个他下单了吗?
18:18
他没下单,他要下单的话,这是不是会有一个OID啊对吧?那当然了,下单的话,我后边u time也会有值对不对?那所以说我这张表里不是所有的记录都能代表一个用券下单的操作记录,他只能说是代表一个什么呢?就是一个领券记录对不对?那所以说我是不是得过滤一下来讲,我得找到那些就是用券下单的记录才行,那过滤你怎么过滤?对不对,怎么过滤呢?你观察观察,我们找一个他这个下过单的,这个你看这有一个OID,而且它后边这是不是有一个U静态嘛,对吧,这个是不是代表这个人应该是用这个券他下过单对不对,没问题吧,OK,那你看这样的记录跟其他的记录有啥区别,区别就是首先他是有。
19:03
Order ID的没问题吧,OK,那其次呢,它的状态,它跟这他其他的是不是也是不一样的,对不对,那包括我后边的这个u time这个时间跟其他的是不是也是不一样的呀,对吧?好,那我们是不是就可以从这几个字段下手去进行相应的过滤啊,对吧?好,那关键咱们到底用谁过滤。我能不能说直接来一个O的ID不为空,O的ID不为空,那能不能代表他是一个用券下单的操作记录,能不能能代表,能不能代表其实能代表啊有朋友说了啊,我这个OID不为空,那我也是一个,我是不是还可能是一个支付的呀,对吧?OK,你要知道啊,你是支付的前提是什么,你得下过单呀,对不对,那所以说那这样的记录你拿到之后,它肯定是能代表一个什么呢?是能代表一个下单的,但是反过来你说OID不为空,它能一定代表一个支付的操作吗?这个是不能代表的,对不对,因为我有可能我下了单,但是我最终我没支付对不对啊,是这样的,这个大家要理解一下,所以说你现在要想找下单操作,你只要保证OID不为空就行,诶这个其实可以行得通吗?好,那假如我用状态去过滤,我能不能过滤出来呢?也能过滤对吧,我这个状态是1403或者是1402,是不是都能代表我这条记录之前有过一个下单操作呀,没问题吧,这个也是可以的,当然这个过滤你得是就得写什么,就是O这个库房S等于1402,或者是140碳,那是这样的啊,这个也行,那我用这个字段去判断行不行,只要U静态不为空,是不是就一定能代表这个之前有过一个下单操作,那这个是不是也行啊,对吧,但这里边大家觉得哪个更加直接的用,谁更直接一点啊,我个人感觉是用这个u time可能更直接一点,没问题吧,OK,当然你用这个过滤行,用它过滤行,用它过滤也行,那这几个你都能拿到咱们想要的下单操作,OK,那文档当中呢,实际上是用这个using time去过滤的,OK。
20:56
那当然这个仅仅是什么,是首日对不对,也是首日的时候呢,我们只需要找到那些什么呀,Using time不为空的这种领用记录就能代表是一个,诶历史上的一个下单操作啊,是这样的啊好,这是首日,那每日咱怎么找。
21:11
每日怎么着,每日咱们拿到的就不再是这样的数据了,而是in的阿操作对吧?好,那用券下单对不对?那它对应的应该是什么类型的操作,是insert还是update update吧对不对?OK,那update具体的修改逻辑是什么样的呢?啊对,这其实修改逻辑也是可以有很多种情况的,对吧?我这个是不是可能会改没问题吧,由原来的闹变成不为闹了,那这是不是就是一个下载?没,没错吧,OK,那同理,那这个呢,由原来的1401变成了1402,这是不是也是一个下单压对吧?OK,那继续往下走,那这个呢,由原来的now变成了一个具体的时间,这是不也能证明它是一个下单操作对不对?所以说这三字段你用谁也都行啊,一样的道理,好,那当然文档当中呢,还是用这个using time去做的判断好了,那首日和每日的逻辑咱基本上就搞清楚了,搞清楚之后我们直接看最终的状载语句,就不再手写了啊,来找到它的首日跟每日,来CTRLC我拿过来放在这个位置来吧,咱们简单的过一下就行了啊,先看它的首日装载,首日装载呢,它直接是来了一个select,然后呢,这张表对吧?然后呢,是不是找到了它十四二的分区,对不对,然后注意这回它是有过滤条件的吧,它过滤的什么样的,是妖精太木不为空的对不对,那这样找到的是不是就是咱们历史上的下单操作对不对,那使用下单操作啊,使用下单操作好,那找到之后呢,那从里边呢,选择我们想要的每个字段对不对,当然这个注意观察这个日期ID这次来自于谁。
22:39
是不得来自于using time啊,就是因为我们这个业务过程是使用下单的一个过程,所以说这个时间是不是得来自于下单时间,对不对?找using time啊好了,完之后呢,我们动态分区也得用u time去做,最终把数据呢,写到我们这张表的多个分区,那就完事了,对不对,这是咱们的首日状态,那每日状态怎么做的呢?我们也一次的给它一次性的看一下就完事了啊来看一下这个最终的诶状态语句,首先这来了一个select的之后呢,是from哪张表,应该是ods层的库房UC,这个没啥问题啊,然后往下走,这回拿的是15号的分区,对不对?然然后我要的什么类型呢?是update类型,刚才已经分析过了,然后你update的逻辑应该是什么呢?
23:18
诶是这样的啊,它的update逻辑是只要保证本次修改的字段有using time就行了,对不对,他也没有明确说我改完之后的值应该是多少,这个其实不用明确吧,只要我本次我修改了这个utime,那是不是一定代代表它是由原来的空变成一个具体的时间了呀,对吧,它不可能有别的变化逻辑,所以说只要保证本次修改的字段有它就行了,OK,这个相相对来说也是比较简单的啊好了,那截止到现在呢,我们这个每日的这个过滤条件也就完事了,最终取到我们所需的每个字段数据写到十五二分区,那就完事了,诶这是咱们第二张表叫做诶优惠券使用下单的一个实时表,行了,完成之后我们紧接着看一下第三张表,第三张表呢,我们称之为优惠券使用支付事务实时表对吧,那这张表里存放的显然就应该是什么呀,就是我们每个人对不对用哎每个券去支付的这样的一个操作了,对吧?OK,这个应该是诶能够搞清楚的好,那接下来呢,我们把这个键盘语句拿出来,咱们一起过一下,哎,肯。
24:19
C啊来好,那现在我们先去熟悉一下这张表的这个表结构啊,先看表名吧,呃,表名呢,跟之前的区别是不是就体现在这儿,Co旁配对吧,上面是库旁盖旁order,这个是库旁配啊行,接下来往下走,呃,明确一下这张表的具体表结构,行列分区,千个行,一行代表的应该是一个什么,是一个人对不对?使用一个优惠券的一个支付记录对不对?OK,这个搞清楚好,那就来继续往下走,呃,那下边呢,我们要看的应该是什么呢?呃,就应当是,呃,就是咱们这张表的这个这个字段了,对吧,字段呢,你会发现其实它也都是什么呢,也都是维度还是没度量对吧?诶这个其实也没什么特殊的,诶因为它确实没有明显的度量值,那这个呢,我们就不再一个个看了,其实这个跟哪个特别像啊,跟刚才那个使用下单的是不是特别像,唯一的区别就是哪儿呢。
25:12
就是这个日期,这个时间现在指的是什么时间,是那个支付的时间了,刚才那个是下单的时间,对吧?别的其实都一样啊,好了,行和列咱就完事了,分区呢,仍然是增量分区,这个咱就不多说了,好了,那现在我们继续往下走,下边咱要做的就是它的数据装载,数据装载呢,咱是不是还是得先去分析分析,就是我们这个取数的逻辑是什么呀?对吧?那它的数据肯定也是来自于coupon u这两表的,对不对?那我怎样从这张表里找到使用支付的记录呢?还是分两种情况,首日和每日,先看首日,首日怎么找,首日拿到的数据跟这儿是一样的,对吧?哎,OK,好,那现在我们怎么去找,怎么去找那个支付这样的一个记录。首先根据order ID去判断行不行。这回就不行了吧,熟的时候你OID不为空,你不一定代表OK,那我这个东西它之前是支付过的,因为我只要下单,这是不是就会出现OID啊对不对,所以说你这回用我的ID判断就不行了,不好使了,那接着往下走,我们看这个东西能不能用它判断。
26:13
这个行吧,只要我的这个库房C等于1403对不对,那就说明它曾经是一个支付成功的记录,这个没问题啊,这个可以,好,那接着往下走,那同理,Use子time是不该也是可以的,只要它不为空就行,对不对?那当然我们文档当中的是用这个字段去判断的啊,这是首日,那每日的判断逻辑应该是什么样的?呃,也其实是一样的啊,也是两种,对吧,你要不就根据这个判断对吧?你这个只要保证本次修改的字段是它,然后改完之后呢,是1403是不是就OK,这是一种,那当然了,还有谁用这个去判断也行,对吧?啊,只要保证本次修改的字段是它,诶,对不对,那是不是也能证明这是一个用券支付的操作呀,对吧?OK,那这个其实也是OK的,好了,两种条件都行,我们文档当中呢,取的都是这个柚子的time啊好了,那接下来呢,我们看一下最终的结果,那实际上呢,我们在看到最终结果之前,大家可以琢磨琢磨,如果我们这儿呢,就是都用柚的time去判断啊,你琢磨琢磨,那它跟刚才那个下单的唯一的区别其实就是。
27:09
就是那个字段嘛,嗯,其实你把下单的这这两个状态,也就是首日和每日里边的using time都改成谁就行了,Use time是不是就完事了,对吧,其实是一致的啊,那现在呢,我们拿出来简单的看一下,来把首日跟每日都拿出来,CTRLC我们放在这个位置,好,那现在先看首日,呃,你看是不是这么做的啊,首先我们select from这张表对不对?拿的14号分区全部数据,然后呢,过滤一下,哎,刚才是using time不位空,这次是use time不位空对不对?然后呢,我们来一个动态分区,根据use的time去做分区啊,然后呢,写到这张表多个分区,哎,搞定,这是首日,那每日呢,诶每日其实也比较简单来看一下,呃,是不是?首先select from这张表,然后呢,找到十五二问句,然后类型我们应该要修改类型对吧,IC的类型,那之后呢,我得保证本次修改的字段得有这个字段才行,对不对,是不是也是基于刚才那个把using time改成use time上对吧?最终把数据呢写到12分区,诶那就搞定了,哎,这是咱们这张表啊先完成之后我是不是。
28:10
给他听。
我来说两句