00:00
好,那接下来呢,我们看第七个需求,刚才呢,是让大家给了一点时间,大家应该做完了,这个时间相对来说比较久了,因为这个。直播软件出了问题啊,所以说呢,整个的就停了一会儿啊呃,应该都搞完了吧,啊,那我就不关心了,反正明天是周日嘛啊,就算你没做完也没关系,明天可以花时间去写一写,接下来我们看下一个需求是什么呢?取消订单事务事实表。取消订单。对吧,那就是说我下订单之后呢,正常的给他取消掉了,那这个其实比较简单啊,那我们就直接读取。还是一样的订单预处理表。之后呢,筛选取消订单的明细数据,诶跟我们刚才这个下单其实一样的,那下单呢要的是银色的数据,而取消订单呢,要的是update的数据,且。是。更新了all the states。
01:02
且更新之后为1003。啊,更新之后得是1003这个数据,最后呢,把它写到这个取消订单的主题里边就好了,对吧,所以这个呢,我们也不用打开看了,其实它跟刚才我们下订单是一样的,所以呢,我们也直接来自于这个。预处理表就好了,对吧,那它一样,但是呢,稍微要注意一下,因为预处理表呢,我们写的跟文档当中呢有所不同,所以呢,注意这个字段就好了,其他的没有什么问题,同OK吧,好,那我把这个解掉,这是我们的一个需求分析,很简单的这个需求啊,所以呢,我们花一点时间把这个给讲完,接下来呢,我们来扣你啊,叫con。对吧。呃,打开咱们的DWD啊,然后呢,这边拿出来,你看这不卡这多舒服呀,对吧啊。PSO,好,那么接下来呢,我就直接去啊,先把这个流程写一下啊,不要着急去直接粘代码了,对吧,第一个获取执行环境。
02:11
第二个。读取叫卡夫卡。订单预处理表,然后过滤出我们想要的取消订单数据,对吧,过滤出取消订单数据。可以吧,啊呃,那有的同学在想,那你之前呢,在预处理表的时候,我们。读的。我们,我们。那个状态呢,保存的五秒对吧,那假如说你取消订单,可能是三分钟以后,或者五分钟以后我才去取消订单,那你的那个。订单的明细,还有那个最关键的啊,在于,假如说你这个订单是关联了,有活动或者说有这个购物券的,那是不是就关联不上了。
03:06
对吧,那这也没关系,因为你都取消订单了,你还关心用券吗?大家想,那那我们现在要算的是取消订单的业务,我还关心用券嘛,你这个券肯定也没用啊,对吧,活动肯定也没参加上嘛,对不对,所以这个数据呢,就不需要了,并不像下单,诶那我们当时还保留着这个什么。下单数据这边我们最终查询的时候保留着,你看这几个。对吧。关于他参加活动的。省的钱对吧,参加这个有领券之后下订单。省了多少钱,那在我们退单取消订单里边,不用管那个事儿。不用关心这个事儿,因为我都取消订单了,那这个东西呢,也没有生效,也不会生效,对吧?啊所以呢,你就不用管,那我五秒没关系,你没关联上呗,对吧,你没关联上没关系啊,这个要注意一下,好,那么接下来呢,我们的第四步,那过滤出来以后,那就创建。
04:06
卡夫卡叫取消订单表,对吧,把这个创建好,创建好以后呢,我们就可以将数据写出。将数据写出。啊。卡不卡?还是很简单的吧,对吧,啊第一步获取执行环境,那直接呢从这拿。拿过来对吧,第二个获取这个预处理表。哎,把它拿过来。呃,拿完了之后呢,注意一下,这边要改一个对吧,你消费者组肯定要改,你要不改这两个流未来同时运行的时候,两个人一人消费一点,那就有问题了。对吧。
05:00
哎,那我们还是这样吧。我们还是用这个名字啊。嗯,就叫concert detail,没有那个凹的对吧,就少了那个凹的。还是这样吧,我们就统一的方式吧,省得后面又出现什么奇奇怪的问题,对吧,我们要统一都用这个。类名来作为我们的一个主题啊呃,作为我们消费者主,当然其实我们在消费这个数据的时候,有些东西你不要,你可以在这儿你就。不写出来其实也可以,你知道吧,就是你有的东西,你知道这个东西明确你不要对吧,你直接不写这个也可以啊,就是你字段可以少,之前我们是不是在。读那个。My circle里边被DC这张表做过这个事儿了,对吧?诶我少写两个字段,它照样也可以,因为它是根据这个字段名就获取的,那我不要这个字段,对吧,我就不读出来,你比如说这个地方我不要。那就可以对吧,当然咱们这个需求是要的啊,咱们这个需求要的,因为我们要老的数据里边更改了allstate,且更改后为。
06:08
1003啊,1003呢,代表取消订单。啊,1003号这个。代表的取消订单OK吧,好,那这个呢,咱们就。搞定,接下来呢,我们要取消订单啊,这个呢我们就拿一下,当然呢,有的字段要改啊。过滤出我们的取消订单明细数据,把这个拿过来。拿过来呢,有些字段我们稍微要处理一下,还是跟之前一样,对吧,好,这个table导一下这个依赖,然后看着R把这个杠N呢,还是一样的,我们处理成一个。空格啊呃,然后我们看啊。这里边儿的一个。数据啊,ID all ID use ids idsq name province ID ID没有问题,他们ID都没有问题,对吧,然后这个叫operator data ID data ID还记得吧,这个东西是不要的,它是年月日对吧,不需要啊,呃,Oper time,诶,取别名叫concert time,没有问题。
07:14
对吧,这个操作的时间,因为我们要的更新的数据嘛,对吧,是它啊,然后呢,Source ID没有问题,这个要改对吧,这个大家还记得啊,然后呢,我们先把它。复制一份。拿过来啊。然后呢,把后面的注掉就行了,对吧,这个地方呢,我们就直接叫什么叫ste ID对吧,直接叫这个名字啊。好,然后呢,STEM name没有问题,SQ number,呃,Original data啊,就是这个不需要啊,那number有了,那我们加一个price,万一后面要呢,对吧?好,那咱们把这个price加这吧。我们就把这个放一起啊,对吧,就代表着它俩一乘,可以得到原始的数据叫凹的。
08:01
Price对吧,我们加了这个啊,这个我们注意一下注释。这是加的啊嗯,Li这个没有问题,然后TS不需要。这个。暂时先不用对吧,那不用的话,这个先干掉吧,对吧,这个干掉好,那这个表呢,嗯,我看一下啊,咱们从这拿过来了,表明得换对吧。表明在这儿啊,注意啊,我这个地方。加了删了啊,对,我里面写个注释啊。删除。逗号对吧,我们做了一个删除的一个逗号的一个操作啊好,那这张表类型呢,是update的,没有问题,必须更新数据对吧,且更新什么东西呢?更新了all the states才可以。啊,必须得更新out space,那也就是说你为什么非要加这个判断,那我直接用这个行不行。就Allin等于1003可不可以?
09:02
我直接写all the states等于1003可不可以啊?我不要这个。我直接写这个,就是这个条件我不要。大家告诉我能不能行?云总说不行,原因呢?啊,大家的。更新的不一定是all the states对吧,嗯。其实。如果说放到咱们当前的这个需求上面啊。这个还真可以注释掉。能明白吗?能明白吗?对吧,我们当前这个取消订单的需求啊,还真可以不要这个东西。我不知道大家能不能体会到这里边儿的业务关系,这个就涉及到业务了,你懂吧,当然我们加上这个东西是最保险的。
10:00
其实如果说我们做的是取消订单的一个需求,这玩意儿呢,真的可以不要,这个判断其实可以不要。但是加上肯定不会有问题,对吧?能明白吗?自己仔细想一想啊,我提示了跟业务有关系。因为你注意啊,咱当前是不是一个取消订单的操作啊。是一个取消订单的操作啊,那你告诉我。我订单已经被取消了,这条订单数据是不是已经到头了,它它里面数据还会再变吗?能明白我所说的意思吗?就是当outs改成1003以后,这个订单数据大家想它还会不会再变了。能体会到这种业务在里边吗?对吧,当然一般来说呢,我都会把这个加上啊,因为这样更为保险一点。
11:00
能明白吗?能听懂吗?听懂扣一。就是说。一个订单数据而言,对吧,他呢,改成了1003以后,这条数据就根本不会再改了,对吧,刚才云总说的也没有问题,更新的不一定是out space,假如说你直接这样判断,那有没有可能我已经是1003,我改了一个其他的字段呢?你是不是会被过滤出来对吧,但是如果真有这种操作,这个数据是不需要的,我要的是什么?我要的是从1001哎下订单到1003这个过程吧,就是你当前是1003没有问题,且你得改了这个数据才可以,但是由于我们的业务呢,是取消订单,那实际上呢,这个也可以不要。对吧,因为当我们数据变成一个取消订单以后,这条数据就不会在。变了。就不会再变了。OK吧,啊,这里面隐含的这样的一个条件,当然呢,我们一般都会把这个加上这样的不会出错。
12:04
对吧,就不会出错,好,那这个过滤搞定,搞定好之后呢,取消订单表,诶那我们也拿一下啊,当然这里面字段也要有所调整,对吧,也要有所调整,来往这一放。呃,这个地方叫MY。看往右啊。CTRL加R把这个。替换掉啊替换掉OK吧,好,那首先呢,它。注释掉。它注释量啊,那现在呢,这个东西我们注释掉,那未来呢,到时候我还会加回来啊,但现在呢,大家可能体会不到这个有什么用,对吧,但这个没关系,到后面呢,我们再去聊啊,包括前面的数据也一样,我们可能还要把这个字段给它加回来啊,这个我们再聊啊,这个呢,呃,我们删除了逗号。删除一个逗号啊,现在呢,咱们没有这个字段啊,从前面就没有,那未来呢,我们统一的去加啊,我到时候跟大家说为什么啊,好这个呢,注射量没有了,对吧,这边我是不是有一个价格呀,大家还记得啊,我这个放在一起的。
13:13
价格好,那这个呢,并不叫source code对吧,我们叫。这个是修改操作,修改操作呢,咱们就这样写啊。我把修改前的放在注释的位置,OK吧,啊,这个呢放在这儿啊嗯。对,Ad不需要。IDID。没有问题。其实这个东西没有用啊。你懂吧,这个东西没有用,你其实都可以不写数据,因为他都是他都会呢,他都会呢,没有没有这个数据啊,那既然前面保留的,那都保留着呗,这个倒无所谓哈,因为阿的数据呢,一般读不到,咱们这里边可能会读得到,因为我们造数据新增。表里面的字段。
14:01
咋个确定的,什么意思就需要哪些字段是吗?我这个不止说过一次了吧?来,有没有同学告诉班长?关于这些表里面的字段,我应该怎么确定?就是你问这张表最终需要保留哪些字段是吗?班长是这意思吗?你是这意思,扣个一好吧。我应该不止说过一次了吧,有没有同学来给班长说一下?就是关于最终这个表里边儿需要哪些字段,我应该怎么处理。有没有听见的告诉我?我一直在强调这个事儿。我从写弗林格格的第一个需求就就开始说这个事了。
15:00
对吧,这都已经第几个需求了。啊,其他同学也都不知道吗?来个人跟我说一下。好这块呢,咱们就搞定了啊。最后我把这个来写一下。对呀,就是如果你看云总说的对吧,啊,尽量都保留看后续使用,如果你对于业务操作非常熟悉,你知道你非常清楚的知道这个字段,未来要还是不要对吧,那你可以做取舍,如果说你拿捏不准,我说了在你新手期的时候,为什么我当时写需求的时候,比如说这个啊。这张表我当时怎么做的,我全都是保留的,还记得吗?我全都保留下来,这里面的字段我都保留下来,我一直不都在说这个事儿吗。班长。
16:01
你这个有点失望啊,说实话。对吧,我从第一张表。就是这样说的对吧,不确定的就都留着,除非那些什么图片URL地址啊,一定用不到,对,就是你自己能觉得这个东西啊,未来一定用不到,那你可以干掉,你对于业务非常熟悉,你有这个能力的时候。对吧,啊,要不然呢,可能是你公司的领导或者说你的项目经理给你定的这个对吧,当你自己要去定这个事儿,而你不太确定的时候,那你就都留着。你就都留着对吧,我不是一直在说这个事儿吗?就告诉你公司当中应该怎么做对吧,所以我呢,之前写这个内容的时候。对吧,我这边是有取舍的,因为我的需求在这已经定了,我知道哪些字段要,哪些字段不要,对吧,我需求在这摆着呢。我要做的需求DWS,就这些东西,我知道哪些字段肯定不要,所以呢,我敢在这边做取舍,但是我在讲课的时候,为了强调这个事儿,我这个预处理的表包括这个什么。
17:06
架构表我怎么做的?我把所有的字段都保留着。对吧,啊,除了当然我有一个字段,我是带着他干掉的,是不是图片image大家还记得吗。对吧,那个我明确的,我确实就干掉了。对吧,我就告诉你诶像这种的明确用不到的,你就可以干掉,诶那其他的我不确定,那未来到底能不能用到呢,我不确定,那就都保留。对吧,那就都保留啊,那当然这个需求你按照我们来就行了,就是这个地方按照我们来就行了。对吧,啊,你就不用说自己去呃想一想啊,那你要想的话,你就简单一点,你就都保留对吧,因为你刚参加工作,如果需要你去定这个东西,那你一定是都保留,一定都保留,不要不要随便的去删字段。对吧。好,那音色的音谱咱们呢,往这张。
18:00
表里面写数据啊,Select。亲,From。嗯,咱们的表呢,叫table对吧。加这个啊。好,那咱们代码呢,就搞定了啊,代码就搞定了啊。呃,那代码测试呢,我们还是一样的,先写一个这个。数据流和我们要启动的这个程序,那其实跟我们下订单的这个需求是一样的,对吧?啊,整个的逻辑是一样的啊。把这个。拿过来对吧,往那一放。对吧,往那一放,嗯,那接下来呢,稍微要改一下,就这个地方改一下,咱们是council。Detail对吧,Detail这个程序啊好,那我们呢,现在是ma ZK卡夫卡都是开的,那我们要启动一个消费者对吧,去消费这个取消订单的。
19:04
数据。然后呢,我去。拿一下之前我们所写的这个写粘粘贴过来就行了,对吧。拿过来。别这。好,那这边呢,我们等着造数据,但现在呢不着急,对吧,我们先把这边要开起来啊,最重要就是他他呢我们还没有测过啊,可能又有字段的问题,对吧,因为处理我们能看到的问题呢,应该都处理掉了,应该都处理掉了啊,所以呢,我们把这个。处理的表启动。接下来就是取消订单的明细。有了刚才下单的一个经验应该就还好了,因为它处理的字段都差不多嘛,对吧。好,那这边呢,就。
20:00
没有问题了对吧,哎,它启动了这么一会儿,说明语法上至少都过了对吧,接下来我们就看有没有数据的啊,来造数据啊,Java杠下j Mo DB运行。好,那这边测完了,诶这边呢,数据就过来了,对吧?啊数据过来了,当然这里面有的东西是没有的,这个东西没那也很正常,当然最后有的你其实看到它有可能不等于当对吧。嗯,但实际上在生产环件当中,真正测试的时候,他应该都是那因为你在下订单到取消订单,一般不会是五秒就完成的。对吧,很少有这种数据啊,对吧,所以呢,你要超过了五秒。那就他就关联不上这个订单明细活动跟订单明细勾芡了,咱们这个数据呢,是因为都是统一造的,对吧,你看这边参加了活动减了500块。
21:04
看到没对吧,减了500块啊,就类似于这样子的,咱们这个是能看得到的,所以我们就都保留着对吧,能看得到就保留着,但实际上生产环境当中呢,应该是看不到的。对吧,应该是看不到的,都应该都是那啊那主要原因是在于这啊在哪呢?在预处理的这块啊,预处理这块呢,咱们设置的是五秒,那如果说我们下订单到取消订单,我用了一分钟。我一分钟以后才去取消订单。对吧,那你想想看,他就关联不上我们的订单明细活动与订单明细购物券了。对吧,啊,但是我们这个能关联上,那我们就保留着吧,因为我们是同时生成的啊,最后呢,统一写入的就是整个下订单,取消订单,完成订单,整个的都是在一块全部造好,统一写出去,所以你呢,你都能看得到OK吧,这样的一种现象啊,行,那这个就搞定了啊。
我来说两句