00:01
嗯。咱们接下来呢,要把数据写到这个卡夫卡里边,对吧?呃,但是呢,我们注意到一个点就在于这个卡卡数据啊。他现在呢,是一个撤回流。对吧,测回流啊,未来呢,可能有这个数据。需要被这个撤回单,因为left join嘛,对吧,假如说中间卡了一下,关联的慢了一点。啊,那就出现要撤回的数据了,对吧,因为现在呢,我们数据同时造,几乎是同时来,对吧,而且我们数据量比较小,它不会出现刚才我们看到那种撤回的现象,对吧?但是如果说你虚拟机稍微卡一点或者什么样子,它都有可能会出现这个撤回的数据,OK吧,好,那么。我们来看啊,这边呢,要撤回,那我们说了。之前我们那个的不行了。之前我们那个连接器不行了,所以呢,我们得改对吧,我们用这个阿卡法定开。
01:01
好,我们来看一下阿的卡法怎么写,我们先写一个简单的例子来看啊。那么这边呢,其实也比较简单,你比如说啊,这个就是一个阿的卡卡。对吧,它的克莱克的连接器叫阿卡卡,要有一个主见,一定要有主见啊,这个东西标黑的,看见没,因为他是要什么。撤回。那我凭什么撤回,我给你主见。我得指定一个,这两个相同了,我才是撤回对吧,就是这个意思啊,就是你要指定一个主键。那要指定一个主见,那对于我们来说,我们的主见肯定是。Detail ID吧,对吧,是这个明细ID,然后就简单了,呃,类型对吧,主题服务地址K的类型,Value类型,那我们KV加一块是杰森。对吧。那其实呢?也并不难。也并不难,我这样告诉你对吧,好,那我们来写一下这个东西啊,当然这个玩意儿呢。
02:01
因为未来我们可能还会有这种大的一个过程,所以呢,这个东西还是同理,咱们呢,写成一个工具方法。没毛病吧,就跟他一样,咱们是不是写了一个这个的一个工具方法呀,应该写了两个了,一个S的,一个think的,当然我们说这两个可以复用对吧,那所以呢,咱们也有一个他的啊,也得有一个他的什么工具方法啊,那咱们来写啊,所以在我们代码的第一步,当时我说了,在最后我们来聊这个事儿,对吧,好把它拿过来。在我们的卡夫卡U这啊。再来一个。嗯,把它放在一块吧,对吧,这是get think的一个D点,诶这个也是属于think,但是呢,它是upset think对吧,这边呢,我们改一个名字啊叫。卡夫卡,好,那这里面呢,主题你得传进来。因为主题你的每一次可能都不一样,对吧,然后呢,KV杰森。啊,KV呢,咱们都写这个杰森啊,那这个就好了,对吧,接下来呢,咱们先不拿这个啊,先不直接拿这个,拿什么呢?先得做一个简单测试啊,因为有一个点需要跟大家说明,因为我们这个造的数据,大家发现到它并没有这个什么。
03:14
撤回的数据,那不行,我必须得有撤回的数据,因为一旦发生了这种撤回的现象啊,它是不一样的,你懂吧,啊,我们来看它怎么不一样呢?呃,咱们这边有没有啊,有吧啊,比如说这个四个太就他呗。对吧,我们就拿它来做测试啊呃,这个东西呢,我就。不去执行了。啊,我就不去执行了,对吧,这样我们就得到了一个query,我在这个基础上做一个修改哈。把这个复制一下。
04:02
叫UPS。卡不卡?Test。呃,我想一下咱们这样吧,嗯,省得大家呢,到时候。不好找啊,不好找,这个呢,我就不改了啊,咱们这样我CTRLC我复制一份好吧,复制一份啊。0707,我就叫阿色的卡不卡。我就叫这个名字好吧,啊大家呢,到时候好找一点啊,那这里边呢,这些乱七八糟的东西不要了啊。就两个流,直接做一个。测试啊,那这个呢,我们再干掉。家位得到一个table啊,这个呢,我们就注册一下啊,Table d.create然后呢们得到一个还有result table啊。
05:04
这个呢,我们也取个名字叫吧。好,这边呢,我们。围绕方面好,那接下来呢,我们去建表对吧,创建。咖色的。卡不卡表啊,那咱们在这边table in点。XQ的circle还是这样啊,这个东西肯定是一样的,对吧,那在这写create。Table。嗯,咱们叫什么叫这个ABS。啊,叫这个名字吧,括号,那这里边呢,放一个。啊,这有两个ID,我们得取别名了,如果不取别名,这个名字没法创建啊,那咱们取什么呢?咱们取T1下划线ID,这个呢叫T2_ID可以吧。因为你两个都叫ID啊,你往表写你这个字段你没法给了。
06:02
能明白吧,对吧,所以呢,我们取个别名,两个不一样啊t three。逗号,然后呢,Q2ID,哎,这个是VC对吧,VC啊把它写上。VC逗号,然后T2下划线。ID啊,然后逗号name吧,Name啊,这个是独立的,这个无所谓啊,嗯,Create table,然后呢,就是拼接我们的那个语句了啊,拼接麦卡,麦卡不卡啊。点诶阿色的卡夫卡给一个主题,假如说呢,我们就用test这个主题可以吧,用test主题啊,那这样的话呢,咱们就把这个接表语句就搞定了,你看啊,我把这个围的好看一点啊,1234啊。1234。这样起码能介面语句看着能舒服一点,对吧,咱们这样的话就得到了一个up的test这张那张表,然后主题呢,用的是test啊加V得到一个。
07:10
好,那还是一样的。嗯,哎,这个其实就可以不要了,对吧,我们这是XQ的搜也可以不要了,那接下来呢,将数据写入。啊,将数据写入卡夫卡啊,那这个呢怎么写。Table。因为点叫。XQ的circle,注意这个就不能用query对吧,In third in into啊,咱们呢,往这张表里面去写吧。然后呢,谁。新from咱们的表呢,叫resultive,哎,从这张表里边去读对吧?好,那我们就这样写一下就够了啊,当然,呃,当然如果你不加打印,他又会报一个警告,对吧,说你呢,没有最终的一个操作,但是这个数据呢,其实能够写出去啊,能够写出去那么给家看一下啊好,那这边呢,我们还是一样的,这边呢来一个NC-LK8888啊回车,然后再来一个。
08:20
NC-LK9999。OK吧,好,那咱们呢。这两个啊就有了啊,我们先准备着啊,那这边还是那个什么idv CTS对吧,这边是ID namets。没毛病啊,那咱们之前就写过了啊,这边要注意一下啊呃。对吧,IDCS啊第二个。ID name ts啊大家防止大家忘了,我带着大家呢,再回顾一下啊好,那运行,哎,运营之前呢,我们就起一个消费者啊。得去消费这个数据啊,看这个数据什么样子,对吧。
09:04
C PT Mo看不看,然后呢,把这个主题往那一放,对吧,接下来。拿一下啊。回正。啊,当然如果你没有探主题也没关系,对吧,他无非就是有一个警告啊。运行。啊,那么看一下这个撤回数据啊。诶,这个地方有问题是吧?嗯。第一行逗号附近有问题,我看一下啊。是这里边儿有问题吧,这个应该不会有问题对吧,这个咱们都是测过的,我直接拿过来的,那就这里边create。啊。就光。光顾着这个。
10:00
第一个string其他的都不给了,对吧,其他建表类型都没给啊,啊,那肯定不行对吧,好当是人家说这玩意不是double嘛,但是没关系,Double建表的时候我用视频来存也无所谓啊,对吧,你double的数据。我们肯定要用CD来存,肯定没问题啊,诶我看一下。阿色的卡夫卡啊,对对对对,傻了。来来来来来来,刚才还说强调的事情啊,来看啊,这个地方正好还还挺好的,就告诉大家这个是必须的,他说AB的卡夫卡tables require,对吧。需要一个什么?To DeFine,定义一个主键吧。对吧,必须要定义一个主键,这个呢,刚才给大家强调了对吧?啊,然后强调之后呢,忘了把这个拿过来啊,我们改一改。嗯,我在这儿加一个逗号。对吧,在这个地方我们加一个这个逗号,然后呢。回头往那一放。那比如说主键呢,我用谁呀,我用这个TID可以吧,我们指定一个主键给他一个TID。
11:06
OK吧,好用TD呢,作为主键。啊,用它作为主线啊,行,那运心啊。还有问题。嗯,哦,还真不让我们写那个类型。他他这个类型还是这个类型错了对吧。还是得练习,错了算了,干脆这样吧,搞这么麻烦干嘛呢?我不要你的东西吗?对吧,给我报错啊,就是因为咱们VC是double啊,咱们写命它还不行对吧?啊,那其他两个字段呢,都是S密吧。ID没问题啊命对吧,然后这个是ID加name命没问题吧,好那哎还不行对吧,你调皮你调皮不要你了对吧?好。好。
12:00
让调皮是吧。就直接抛弃对吧,直接抛弃啊,调皮的不宁袜子不要啊好,那这个就搞定了,没有问题了,对吧?呃,那将来呢,我们去造数据啊来。啊,这边就没有用了,其实这边也没有打印对吧,没有用了啊,我们直接看这等会儿呢,看这边数据啊先呢,在左边来一条数据。对吧,啊,左边来一条数据1001。好。啊,中间随便给了23.5对吧,随便给跟这个没关系,12对吧,先回车好,那有数据了对吧,没有问题啊右边文档对吧,我得赶紧啊。101。张三。12诶,又来一条数据,注意看啊。注意看本应该是撤回的数据,或者这样我再给大家演示一下啊,来,我先把数据准备好,我搞一个1002。
13:06
2305。八对吧,数据准备好,这样就不注意。慌张对吧,李四,然后呢,把。那注意看啊,这边现在呢没有数据,我先输左边回车,它呢有一条。对吧,好,那说右边它里面说应该撤回第一条,再写一个关联上的第二条出去,对吧?好,你看撤回的这条它写的是什么。是个nu值对吧,你看刚才呢,这个东西是不是nu,现在呢。1002跟李四。就关联上了,但是中间正常的,如果我们在ideal里面打印,这个是不是应该是一个杠D的数据啊。对吧,是一个撤回的数据,但是在卡法里边,它的一个撤回呢,那一条他不写,他就写个那。他写个呢,所以大家还记得在我们写第一个卡夫卡消费者的时候,我特意写了一个自定义的反序列化器,然后呢,把这种浪值给它干掉了,大家还有印象吗?
14:13
有没啊,对吧,啊,当时大家可能在想,诶,为什么卡夫卡里边还有那的数据呢,你要知道这个地方确实有可能会呢。啊,他确实有可能为呢。对吧,啊。终于把之前我们那个坑给他。填上了。对吧,啊,那大家可能想不通,为什么我考法当中会来一个闹呢?我当时就说了,那未来有可能会有那值啊,对吧,我只能这样去解释啊,但是呢,在这个时候咱们是不是把坑填上了。因为咱们的level draw用阿的卡夫卡往卡布卡去写的时候呢,它确实有可能。出现这个当值。对吧,你DWS去消费DWD数据做处理,那你是不是要考虑这个not值的问题。
15:03
没毛病吧,还是这个意思好,这是我们的一个内容,那这个搞定之后,我们就可以写代码了呀,对吧。呃,把这个截掉。啊,刚才呢,我们已经测了这个阿的卡夫卡怎么用了,对吧,那接下来呢,我们就可以写我们这个需求了,啊写它对吧,那这边呢,我们创建一张表,那就table,因为点。XQ的。对吧,最后呢,这边还是一样的啊好,那咱们怎么来呢。这。啊。简表语句来。Create。Table。对吧,比如说咱们创建一个表叫DWD。Free,我随便取一个名字吧,好。
16:03
接下来写我们的字段啊,后面的位位呢,我们已经写好了这个。工具类的方法了,就不用管了,对吧,那关键在于这个里面自带,那很简单,我就把这个拿过来,当是这里面有的东西我们要处理一下,对吧,有的东西呢,直接拿过来不行哈。啊,你看比如说这边这个姿态就不行了。对吧,这里面有几个字段是不行的啊,最后两个字段我先不拿吧,因为最后两个字段肯定也不行,对吧?啊,嗯,他还有这个。单引号。啊,就是反斜杠对吧,好,那这边呢,Control shift。C先把这个数据呢。拿过来啊,先不要着急,等会他改啊,嗯,再下来呢,把这两个字段拿过来。Tab。Type对吧?呃,然后呢,这个old,诶把这个字段呢,给它搂过来啊先不管先呢,直接拿过来。啊,接下来呢,把有的字段给它处理了啊,比如说这里边呢,这两个字段就不行,对吧?Source type跟这个t name这两个字段不行啊,因为我们改名字了,改名字的都要改啊source ID。
17:10
往这放对吧,还有一个type name啊,这个我们可以手动写一下,那它还有两个东西,这两个ID咱们是不是也改名字了,对吧,两个ID啊,一个呢,叫all detail activity ID啊叫他。把这个替换掉。还有一个呢,叫all the detail ID对吧,把这个替换掉。其他的应该没有了吧。其他的应该没有了。对吧,应该没有了,好,那么接下来呢,咱们。把这个自带都添加上它的类型。看二加设的还好,我们中间没有修改任何类型对吧,那我们都用思令就好了啊,你这样就统一了啊好,那我们呢,嗯,到这吧。
18:11
单引号对吧,我们把这个反引号加一下,然后呢都用three。啊,我们前说了这个地方呢,大小写无所谓啊,加一个逗号对吧?好,当然了,这个要改一下啊。不要这个逗号没了这个呢,多了一个啊呃,那应该就。没有问题了吧,应该没有问题了。这里面字段都用string啊,这个不行,这个不是string,这个类型string它不能用string啊,突然想起来了,这个类型old是什么?还有个杰森啊,咱们还得用MY。对啊,这种小细节对吧,Old它可不是spring type可以in色的啊,不对,可以对吧,但是这个呢,你得用map,它是一个接格式啊。
19:01
好,那这个应该没有问题的啊,再有问题我们调嘛,因为这个字段说实话有点多,你要一个一个那样慢慢对,还不如说让他报错呢,对吧,好往那一放。往上一放之后呢,再拼接叫MY卡YouTube.get阿卡主题主题那我去拿一下。主题我就不自己切不不自己敲了啊,直接从这拿。逐渐对,逐渐。把这个主题拿过来,然后呢,还有一个主见,对吧。把这个放这儿啊。这加一个逗号啊,那这里也有逗号了,对吧,这里有逗号了啊啊,因为主键的放最后嘛,好主键呢,我也就不写了吧,主键就用这个ID啊,就是我们的all detail ID可以吧,就是它啊。我就直接把这个拿过来了哈。往这一放对吧,这个ID呢,就是最早我们这个地方的ID,就是我们的detail ID作为主键对吧,好看R把这个杠N呢替换成一个。
20:04
空格啊提换成空格,那这边呢,就。搞定了。对吧,搞定了我们的建表语句写完了啊呃,接下来呢,咱们将数据写出。Table也没点XQ的circle叫音色的这张表。From。C那个的啊,不是C那个的。心from咱们的表叫什么?那个查询的表叫吧。加without啊,当然你可以不用加这个。Friend不用加,刚才我们做测试的时候,其实就没有加对吧?呃,好,那这个呢就搞定了啊,接下来呢,我们来运行测试啊,呃,这个呢,我去消费它啊,来CTRLCCCTRLC干掉啊完之后呢,把这个主题换一下。
21:00
换一下。诶,他没有这个,没有这个没关系啊好这个呢就不要了。这个就不要了,对吧。等着在这边造数据啊,来运行。又有又有问题啊,完了毁了。呃,应该是字段类型的问题。我看到这一堆药,他告诉你这个东西。跟这个东西。不太一样。对吧。呃。那这个东西我看啊,这个字段的个数应该是对的,OLDOLD。Query,这是查询的,他说什么?Different number of columns。咱们的这个东西不匹配,个数不匹配,我是少粘个东西吗。那不应该啊,那你看这个长度跟这个长度完全一样啊。
22:02
那这个还真不好查了,对吧,他说我们两张表的这个什么字段的个数。不同。来看一下是哪块啊。呃,这一行对,这一行有问题,你看啊,倒数第三行你看啊,倒数第三行来这个倒数第三行到这了。看见没?对吧。来,注意看啊。这个。然后还有一个倒数第三行是他对吧。嗯。果然差距很大诶。Create time0。有问题,有问题。创建时间我们是应该有字段重复了,有字段重复了,因为这个地方出现了create time0有两个创建时间,所以导致这个问题对吧?好,那发现问题了,这边可他零对吧?好,那应该是前面这个地方啊。
23:15
查询的时候应该还有字段没去重掉啊,我把它缩小一点,呃,检查q time到这啊啊,你看这。对吧,这个是订单的创建时间,这是订单明细创建时间,那这两个是不是要一个就够了。对吧,他要一个就够了啊,果然是这个啊,因为我刚才看到谁呢,看到create time0了,说明什么问题,他给我们自己加了0123,因为你有多个相同的。字段他才会这样处理啊好,那也就是说查询语句里边这个创建时间我们就不要了,对吧,然后同样的建表语句里边第二个创建时间我也不要了,这个创建时间不要了,因为有一个创建时间就够了,对吧,就跟我们之前对于订单明细活动跟订单明细购物券把它干掉一样的,当然你光在这儿干没用,对吧,不要在草稿纸上写,然后呢,再。
24:09
试卷上不写啊啊,那我们找到OI表的创建时间这一行呢,干掉。对吧,然后同理在建表语句里边,咱们把这个创建时间给它干掉。啊。好,再来运行一下啊,因为字段多,字段多就容易出现这样的问题,就有可能会漏了一个啊,那我们再看一下。嗯。好,现在呢,他报的是这个警告对吧,他说没有这个操作定义在我们整个数据流的。拓扑结构当中,那无所谓,我说了他这个东西呢无所谓,但你如果说不想报这个错,你就加一个print对吧,上午我们是加了print来解决这个问题了,好,那差最后一步了啊,这边消费者已经打开了,接下来。
25:00
知道吧。高价。君莫走。把这个数据呢,运行起来,看我们能不能获取到这个数据,对吧。啊,等这边做完。好,那这呢就没有用了,因为我们在这并没有打印,对吧,并没有打印啊好,那我们直接看这个位置,哎,这有数据了。对吧,那咱们这个数据流呢,整个的就。通了对吧?啊,咱们数据流整个的就通了,没有问题吧,啊,那这个数据比较多哈,比较多啊好,那到这个为止呢,就结束了,而且呢,我们看一下这个关联维表有没有关联上啊,这是一条数据。找bug找的杠杠的,那你要有这个能力啊,对吧,那个type name对吧,叫用户查询有了吧,对吧。啊,主要看这个啊,其他的这个类型是update的O的有数据对吧,然后你看这个活动这个参加这个没有参加对吧,有的这个比较少啊,那就没办法,确实肯定比较少啊。
26:06
好,干掉。啊,这次呢,又是1000多条看啊。1484条对吧,啊,又1000多条差不多吧,对吧,每次造1000多条啊把它停掉。
我来说两句