00:00
那安装完成了,那下面呢,我们来啊,稍微给大家普及一下啊,项目当中这个组件,那组件呢,它包括S和think。那这里面首先source之前咱们在学习过程当中用过ex e source,还有spring d s。对吧?啊,这两个我们都处理过的,那这一个e ec它的特点呢,是执行一个命令是吧?啊它要上,呃,它它要放F执行一个文件啊,监控这个文件里面的数据,那它有一个弱点就是一旦这个普不运行,或者这个S命令出错的时候,数据就有可能。丢失啊,这是它的一个生命的弱点,那这个电S它属于用来监控荧目录对吧。但是目录里面的文件,它能不能实现这个叫断点续传呢?什么叫断点续传,比如说他读一个文件,呃,监控类目后里面一个文件,比如说里面有一个文件a.DD。
01:07
这个文件大小呢,是零到100兆。他读到50兆的时候。突然间网挂掉了。那我接下来要重启对吧,那重启之后我从哪开始读。他可能是不是又从零开始了啊,又继续读了,那是不是就有一部分重复数据啊,那这个是我不能接受的。啊,不能接受,那怎么办呢?我们希望呢,是从50兆之后,比如说五十五十一兆开始往后读。那再怎么实现呢?那现在比如说呢,你没看到这个上面这个太阳电压哨子。我让你去实现。刚才我要的功能,我要的功能是它上一次读到哪了这个文件。那我下一次就要求从哪块走。
02:01
怎么实现?啊,找一个七星你给我说说。啊,可以这么说,辅助母1.7之前,也就说辅助1.6再往前吧,啊,辅助母1.6几以前它是没有TS,它是不支持断子续传的。每个工程师,大数据开发工程师都需要自己去实现,那怎么实现?什么时间?不太记得了,这个记得没关系,动脑子。来这你给我说说上的数据。对,读数据的时候是不是知道读到哪了,哎,把这个位置如果记录下来之后,下次再重新读的时候,我是不是就可以从这再往继后往后读啊,啊没问题啊,就是这么一个思路,那具体实现的时候,咱们是不是有自定义?Source对吧?哎,自定义source读的时候就把它记录到一个文件里面,是不是类似于卡不卡那个off的编辑量也是存在文件,呃,就这种方式是一样的。
03:10
啊,一模一样的啊好,那这里呢,其实啊,这就是一个面试考点,在f1.6及以前,我们是没有这个叫t d source的,也说不支持段的矩传,那在体验当中怎么实现呢?就是要自定义S,自己去记录这个读的字节长度比它读的文件多长,然后啊,下次再使用的时候,按照上次读取的啊标记点再往后读啊这是这么一个过程啊好,那当然了,目前1.7级以后,现在出了一个叫T电RS。啊,它的特点呢,就是断断齐全,多录啊多录啊。这是它的优势啊,也是你们日后啊当中开无论是开发还是面试都要记住的哈,那这个泰第二少是。
04:01
啊,一一会再看官网吧配的时候再说,那还有一个叫BA size大小的一个设置啊,那这个BA size呢,就是在被置浮动的时候啊,有一个其中有一个参数就是一次啊,这个获取数据的这个批次有多大,默认这个值呢,是100啊,那在真正的企业开发当中呢,一般都会给他调到500~1000,其实呢,是提高他这个消费的这个速度的。下边还有一个China China,咱们学过fair China和China,那fair China什么特点?安全稳定不丢数啊,但是慢啊,OK啊,那慢呢,快啊,但是不安全啊,因为大在数据保存站内存当中断电有可能丢失丢失,OK,那还有一个叫卡夫卡final,能想到它是什么特点吗?South传,这是卡布卡传,然后下一集是卡卡。
05:09
对,那也就说如果这是弗flow姆,这是卡布卡的话啊,你用卡布卡传统的前提是下一级必须是卡普卡啊,那这块它就能省掉一个think啊,那省掉这么一长段的一个think,那它的效率必然就高啊,点就高啊,这也是其他中啊优化的一个点哈,化点好不好心等。呃,打把山啊好,那分析完这些之后啊,那下面我们再来说一下今天我们这个具体的配置。好,那看一下啊,我们左侧这一块,我们是要从通过去读的文件,这个文件放在了love斯app.love这个文件里面。
06:02
那最终要把这个文件分别放到卡夫卡的不同的topic里面去,怎么实现?怎么去设计?来,赵琦,你给我说说怎么设计。就是分成两个材料,然后对的。啊,分成两个title对应不同的topic格,那这边SS圆是。一个是这样吗?所以是不嗯没问题啊,来看一下,也就说既然你的这个初稿这块是两个目的地,那你中间这块至少就是两个三等啊,两个三等啊。然后那SS的话是不是就是就这一个SS源呢?啊,那我就读一个,那只不过这个选SS源的时候,我们要选择太阳DR,它的特点是断点续传啊,还有可以监控多公路,OK。
07:03
啊,这样去组合,那这样组合还不行,你想一想,我这是一个文件。我怎么就能让他到不同的这个topic里面去,你根据什么去判断,让他进那个,让他进这个。是一样的,这两个是一样的,对判断这两个人是不一样的是吧,不一样的放到不同的这个topic里去,那就需要用到一个拦截器啊,最典型的就是那个类型区分的拦截器,在这里面我们判断这个过来这条数据里面,比如说是否包含start。如果包含star,我就给它放到这里面,其他的不包含的直接打到事件里面去,数据分开了啊,拦截器,那前面怎么还有一个叫ETL的拦截器呢?ET干嘛呢?数据清洗啊,数据清洗啊,这里面呢,我们是用了ETL啊,但是呢,清洗的不重啊,只是简单的清洗,为什么不在这里面做特别复杂的清洗?
08:07
效率是不是效率很低啊啊,因为它是一个实时的流啊,啊,你在这里面耽误太长的时间,绝对会影响你下一级的这个运算速度啊,所以说在这里面只是判断一下数据的完整性啊,比如说那种接身数据一半的,它只有一半。那这种数据到了下一级基本上意义也不太大啊,我们就可以把它干掉啊,那到了最终下一级之后,我们可以怎么清洗呢,把这个阶层呢,完全的去解析出来,一个一个字段去解析。去判断啊,比如说判断这个钱,你订单里面这个金额是否有值,我判断这个ID是否为空,这是比较重的一个信息了啊,啊那我们前面呢,只是从宏观上去判断它是否完整。啊OK,当然如果说这块你不做这1CL也是没有问题的,有一些公司他就不做,因为他追求的就是效率,速度啊,速。
09:10
都有啊OK,那这是这块。分析这个卡的配置啊。
我来说两句