00:00
好,那接下来呢,我们看一下这个退款成功的一个需求啊,那么这两个呢,肯定是关联的,上面退单呢,就是相当于申请退款,这个是退款成功了。啊,是这个意思对吧,那退款成功呢?呃,咱们所做的事情其实跟上面。差不多。啊,那第一个。退款表当中呢,获取这个退款成功数据。啊,获取退款成功数据退款表当中对吧?呃,退款表当中在这啊看这个地方。嗯,这是凹啊,这是退单对吧,然后还有一个退款表,退款表我看一下啊。嗯。这对吧,退款表当中啊,获取这个退款成功啊,那就是。状态。对吧,啊退换成功啊好,那在这当中这样获取,然后呢,四点表退换啊,因为你这个状态还是这个数字嘛,对吧,什么07010702这种不知道是什么东西啊,所以呢得这样啊,第二个从订单表当中提取这个退款人工啊,刚才我们说了订单表呢,1005是什么。
01:15
刚才我们是申请推款嘛,那1006呢,是退款成功啊,等会儿我们来看到啊。1006为退款成功,所以我们说了1005那个东西呢,上一个需求对吧,这个需求我们在这过滤的时候,你不能把这个删掉。因为1005呢,它可能还有后续。他没有后续就无所谓,你这个要与不要都可以对吧,但如果说他还有后续,那就不能要。啊,那就不能要。对吧,好好,这是。第二个第三个从退单表当中提取这个退款成功的明细数据,对吧?嗯,因为退单的刚才我们看到它是一个。刚才我看下退单表当中。
02:02
这张表。这两秒。对吧,呃,它正常的insert是添加,就是我申请退款,最终呢,肯定还有。退款成功了啊,那这个数据呢,也会做一个更改啊,那我们把这个数据呢放在一起。啊,这三个是属于就是当我们操作了,如果说一旦退款成功了,他有这三张表都会跟着发生改变,那我们就把这三张表字段呢,把它关联到一起。是这个意思,当然你未来的工作的时候,他有可能会出现这样一种现象。什么现象呢?当你把这个all in for里边,对吧,它的一个退款成功跟这个。退款表退款成功一关联,你发现诶,那把这里的字段都已经包含了。啊,把这个里边的字段都已经包含了,那这张表呢,其实你也可以标。
03:02
啊,假如说这里边还有一些特殊字段对吧,那你要拿过来啊,因为这三条数据呢,是同时他们三个是同时生成的。对吧,一旦退款成功了,诶这边呢。退款啊,奥0FOUR退款成功对吧,应该是1006,这个这个订单就被退款成功了,1006对吧,它会从1005变成1006,然后呢,这边。会多一条数据。啊,会多一条数据,那么这儿呢,会改成退款成功,对,因为刚开始呢,这里面新增的时候是申请退款啊,最后呢,改成这个退款成功,所以他们这三张表呢,同时生成的,当然如果这张表里边有一些字段。都被他俩包含了对吧,比如说这边ID这个是自增主件嘛,没什么好说的,对吧,然后U的ID all的IDSQID。对吧,退款的类型啊,申请退款的类型到底是什么,然后退款的这个商品退几个对吧,总金额理由是什么?假如说在这张表里边都已经包含了。
04:06
那你也可以不要这张。不要这个了。不要这张表啊,当然肯定没有啊,没有全部都包含对吧?啊,所以呢,要把这三张表关联到一起啊,这就还属于我们的业务。还是属于我们的业务对吧,好,那这个呢,整体上来说就是还是一样的消费数据,过滤出我们要的这三张表的数据。接下来作为关联对吧,好,关键问题呢,在于这儿。退单表呢,由0701会变更成0705啊,所以我们要退款成功状态呢,要这个数据首先操作类型为update,第二个当前的状态为0705,呃,修改字段包含这个退款的状态,对吧?但这个也可以不要因为到0705退款成功了,这个数据就不会再改了。你都已经退款成功了,这个数据不会再改了,对吧,那这个字段呢,其实可有可无的对吧?好,一般来说我们都把这个加着对吧,我们都写了哈,我们都写了对吧?好,那第二个订单表刚才说了就是1006。
05:05
对吧,啊1006啊,当然这里边也这个点,那你加这个字段它没有问题,到1006呢,它其实就结束了。到1006就结束,它不会再变了啊,它有几个结尾对吧,比如说我1001是下单状态好,那我可以呢,以1003它的一个取消订单结束对吧?呃,然后呢,走1002好,然后呢1004对吧?啊这个是支付,支付中已支付成功对吧?支付成功好,接下来呢,我1005这是申请退款,接下来1006退款成功,诶这也是一条线。这个订单走这条线也是结尾,他不是说非得一条线结尾,你看走到这个1003是结束,走到这个106也是结束,既然你是结束,那第三个字段其实就可以不要对吧?啊,那一般来说呢,我们还是保留在这儿,在文档当中呢,我们都写了,因为你加了这个东西不会报错。
06:03
对吧,嗯,这个这关于这个字段一个问题啊,就这个判断条件的一个问题,我们已经不是第一次说了,对吧,我遇到一次就说一次,到现在为止大家应该能明白是什么意思了。对吧,就是我们所说的什么时候要这个,什么时候不要这个。对吧,啊,这个你要清楚一下啊。好。如果它呢是最后一个字段就改成1005之后就不变了。可以不要。如果还会再变。那就得要。对吧,他就得要是这个意思啊,好,这是呃,我们第二个订单表啊,那筛选退款成功的数据啊,0705啊,改成这个0705就退款成功了啊,那关联四张表,那四张表呢,还有一个字典表嘛,对吧,我们有三张表加一个字典表,所以呢是四张表做一个关联啊这个图呢,稍微复杂一点,就是说把这四张表里的条件。
07:01
给他写出来了。啊,给他写出来而已。OK吧啊,咱们看到这样的一个现象啊,之后呢,我们就直接把这个代码拿过来运行就好了啊,接下来就coding啊,Coding呢还是一样的,我们拿过来带大家去看一下,因为我们已经把思路都整理好了,对吧?啊,所以呢,直接拿过来看一下啊。当然这个拿回来之后呢,有几个地方稍微的需要。调整一下。啊,因为我这次写的叫麦卡YouTube对吧,之前写的是卡夫卡啊。没有这个工具包。这个。这个是my circle。嗯。没有了吧,好,没有了之后呢,把这个杆呢,替换成一个。空格啊,这样就会好看一点啊,就会好看一点,对吧,好。呃,那么接下来呢,我们看一下这个数据啊,首先把它呢就掉。
08:06
把它入掉对吧,然后呢,这个我还是改成一,因为咱们只有我这边只有一个一个分区啊。我主题呢都是这这套集群里边主题我都是让它自动创建的,但是呢四我都是测过的啊,所以在多个边路下是没有问题的啊,而且呢,那三条数据同时产生的,所以呢还是给五秒就够了啊,然后状态呢,这块我们就不用管,接下来呢还是消费topic DB啊这里边呢是这个字段,由于跟我们写的不一样,所以我就不改了啊,就直接拿过来,但是这边我们再改一下啊小A211126对吧,把这个呢。叫退款啊呃,接下来呢,读取这个退款表,从topic DB当中。退款,然后呢,我们的状态是这个。0702啊,0702,嗯,这个猪是我先给你打开吧,先给你打开啊。
09:02
0702之前我们说的对吧?啊,他0701呢是正常的一个退款,0702呢是退款成功啊,是退款成功啊啊,那这个呢叫退款表啊,然后接下来从订单表当中,1006嘛,这个我们已经说过了,对吧,它的状态1006啊,然后他修改了这个数据,从1005~1006的,所以呢,这个状态不等于钠啊啊那么第三个。就是。0705。0705这个值。啊,第三个对吧,咱们的这个。这八秒。啊,退单表,退单表里边儿找这个0705的啊,那咱们呢,把这个也是先。打开啊,也是先打开。啊,也给他先打开我们看一下这个,找到这个退款成功的啊,但实际上呢,由于刚才我们所说的这个数据的问题啊,你看一下这个里边。他。
10:01
嗯,其实没有那个。这边都没有显示这个退款成功的,对吧,我心想看有没有啊。没有这个退款成功的,没有这个退款成功的,0705。啊,0705啊,就是为什么刚才注射调呢,因为我们造数据的时候,这个这个表呢,它有一点小问题,就是它不会改成这个0705,正常的呢,这个东西要改成0705。对吧,表示他退单整个的就全部都成功了啊,但是没有改啊,正常来说我们造数据在生产环境当中就是0705啊,未来我们新的也是0705,我们要根据新的来的,对吧?啊,所以呢,这个地方大家就懂了,为什么我给它注入掉了。啊,因为如果你拿这个去测的话,没有这个数据,你懂吧?啊,他没有这个数据,所以呢,我认为只要他。申请退款了,最终呢,都会退款成功可以吧,啊就没有退款失败,没有退款,因为后续没有这个字段嘛,没有0705,没有0704,没有退款失败,没有退款成功,没有这两个字段,所以呢,嗯,那就注是亮直接只要你申请退款了,我就认为你退款成功了。
11:09
啊,就这样去表示一下,要不然你就没有数据。啊,你后续写这个join对吧,你没有数据你就没有结果啊,所以呢,我们就这样写一下啊,好这个就搞定,最后呢,我们就正常的去关联啊,正常的关联我们的一个表就好了。对吧,完理表之后呢,把它写出去啊,我们要个字段就只能写出去,对吧,关于这个注释调,我们给大家解释了一下啊。对吧,因为你看这张表哈,这张表这个当然是我们造数据的一个失误啊,造数据那个脚本的失误,所以我们刚才说了,未来呢,我们整个的脚本要换啊,而且呢,统一了就是那个造数据,造数据的那个价包呢,未来得换。啊,就是里边有的数据呢,当时没有考虑的那么全,所以导致有的数据呢,没有出来这个。结果啊,没有出来这个结果啊,所以呢,在我们做测试的时候,为了能看到结果,我们不得不这个对这个代码做一些调整。
12:04
能懂吧,啊,如果你不把这个注释掉,你没有0705,你这个就是空的。你就没有数据,那你就关联,永远都关联不上。对吧啊,你永远都关联不上啊,当然你除非说那既然没有的话,我写一个left join可以啊,当然行,对吧,你关联不上left join,但是呢,你level上这张表,那跟这几个字段相关的都是呢。都是空的,对,永远都空的,那没有意义啊,那你还不如不要这张表了,对吧?啊是这个意思能明白吗,大家。能听明白我到底在讲什么东西吗?就是关于这块给他注释掉的一个问题。能明白吗?OK吧,啊,就是其实我们的噪声的脚本呢,还有一点点缺陷不是那么。
13:00
完善啊,不是那么完善对吧,啊。其实。包括这个东西,0702这个东西啊。没有数据全都到,对没有数据全都到,因为我们用的照,包括这个0702这个东西对吧?嗯,这张表吧,0702,你看这里边都是0701,看见没。从上往下都是0701,都没有这个零七。零二对吧,都没有0702啊,所以为了看到有有结果呢,我们认为他只要退款就退款成功了,因为你退款了两个两个方向嘛,一个退款成功,一个退款失败,我就都默认他为退款成功好吧,所以呢,关于这个我也给他干什么注释掉哈。到这块。把这个写下来。对吧,只要你申请退款了,我都默认你呢,退款成功没有失败的啊,人家都退款了,你最终肯定要给人家成功了,对吧?啊,你不成功不行啊,因为我们造数据有个问题,你看这张表呢,我们要的是0702,他是退款成功,因为0701呢申请退款嘛,对吧,0702退款成功啊,跟刚才我们这个地方一样的。
14:11
你刚开始呢,创建这个数据是申请退款。接下来呢,这边改成0705呢,它是退款成功了啊,他退款成功了是这个意思。对吧,但是呢,这个数据我们没有造啊,包括这边呢,也没有去做这个业务逻辑的造数据的处理,所以呢,会导致如果你直接真的按照我们原有的需求这样去写。你就看不到结果,你就看不到结果是这个意思对吧,所以当时我让他预习的时候,就跟大家说了,这个需求呢,会麻烦一点啊,会麻烦一点,如果你自己写的话,会困难很大啊,因为你有时候第一你对业务不熟悉,第二。你就算对业务熟悉,你可能这里边儿你又找不到这个码表,对吧,那到码表当中找不到数据。啊,就找不到数据对吧,他可能有这几个问题啊,所以这个呢,我们确实要。
15:05
聊一下这个事情啊,他他这个需求目前来说我们是放在这儿,但是未来呢,我们把这个数据。生成数据的价包给改了,这个需求没有问题了,但现在来看,你这样运行它是有问题的,对吧,你要自己写,你根本写不出来,因为没有码表,码表里边没有对应的数据,对吧,你要自己写就会比较麻烦啊,你就写不出来,因为你找不到,你也不知道070几。是退款成功。能懂这意思吧,啊这样的一个情况啊,这个呢确实是我们的一个思路,但是呢,那个价包改了,价包改了,但是没有没有启用新的,因为我们要保证跟大家每个班所学的这个离线数仓是一致的。对吧,我们所采用的价包跟米线收仓呢,是完全一致的,我们要保证这个事儿,所以呢,你就没有上最新的这个价包,其实最新的价包已经有了,已经有了啊。
16:01
呃,代码呢,我们已经拿过来了,对吧?啊,然后该注释掉的也已经注释掉了,接下来呢,我们就做一个测试,测试之前呢,还是一样的啊,我们来写一个这个内容啊,包括这个地方应该还有。嗯,没有问题了,对吧,好。啊,就怕有东西没改掉啊,应该没有问题了,接下来还是写这个。数据流跟我们的程序啊,那他那数据都是从topic DB里面拿的,所以呢,我们就直接。把它拿过来改吧,改吧就行了,改一个地方就够了,对吧?啊,这几个需求都差不多啊,然后呢,把它把这个换掉。就搞定了对吧,然后呢,我们做一个测试哈,啊,把这个主题拿过来起一个这个消费者啊。把这个主题呢换掉。往那一放回车。接下来。运行。平均之后呢,我们就造数据就好了,对吧。好,这边运行没有问题啊,接下来呢,我们去造这个数据走你。
17:15
呃,那这边呢,就有数据了,如果你不把那些东西注释掉,你这样看不到结果啊,你这样没有数据对吧,所以我们来注掉了,我们就默认相当于搞什么事呢,就是你只要申请退款,那我就认为你退款成功OK吧,就里边有一个这样的一个默认的。点在里边,其他的到。没有什么了,OK吧,就是这个点,所以呢,有两块过滤给它注释掉了啊,给它注释掉了,其他的呢就正常啊好,那这个需求呢,就搞定了啊。
我来说两句