00:00
再讲一丢丢是吧,周几五点下课之前咱们结束好了,那么接下来再往下的话呢,那么咱们呀,就来看一看对吧,还是关于我们刚才这个套路什么呢?那目前我们现在已经通过Maxwell把咱们数据采集到我这主题里面去了,那咱们是不是得对我的数据做一个分流处理啊,对吧?那么如果分流处理之前呢,咱们得先对比一下,就是我们现在呢,这个maxcel采集的数据和咱们kind啊,它采集的数据呢,那有什么不一样的地方啊,它有什不一样的地方,咱们刚才是不是已经看到我的数据是不是可经可以过来了呀,对吧?那么咱们现在做了个对比啊,做一个对比,那么Maxwell那和我们的can在执行我们insert操作的时候,对吧?那么如果要是can的话,它产生的数据是这样的。对吧,这边呢有个属性叫date date是不数组啊,然后如果有多个insert这个数据的话,那么它呢,是数组里边来封装多个对象啊,然后接下来,那么这里呢,还有什么database对吧,数据库的名称,然后这块呢,还有一个对吧,咱们这个搜q type,这个soq type呢,其实主要是什么呀?就是我当前的数据库的一些类型啊,数据类型是什么对吧?然后这里还有什么type table name对吧?那如果mama如果要是做我们这个新增操作的话,注意看同学们,他呢,假如说啊,你当前的这个做了两个一色的,那么这个时候呢,他拿的数据呢,它并不是说一个数组,它是把它当前这两一的操作给分开了,分成两个监对项,对吧?那么这个呢是一个接对项,然后这块呢,是另外一个阶对项,也就是每一条记录它对应的一个Jason,你觉得这两个东西如果往一块一放的话,那谁更少一点呢?
01:44
K更少一点是吧?来那咱现在呢,来对比一下来CTRLC对吧?因为第一感觉我一看K好像比较少,那咱现在呢,来往这一放对往这一放对吧?这个呢是我们的Kindle,然后接着呢,这个是我的ma,它呢要产生的数据对吧?它呢要产生数据对吧?来那么咱们现在呢,大家注意看啊同学们这kindo大概1234,能不能这样一下对吧。
02:11
再来少小一点对吧?来就这样吧,你应该可以对比出来谁少,别看咱们这里展示的长是不是,但是人家窄啊,对吧,其实我们看这么一对比,好像咱们生成数据的话,我们这个Maxwell呢,对吧,好像还更少一点,对不对,对吧?哎,所以说呢,注意啊,这第一个啊,那咱们现在呢,Maxwell其实呢,比我们这canon呢更加轻量级一点,对吧,那么主要少在哪了呢?说你看这感觉这个东西的说多条记录,然后还比他少,其实呢,就是关于我们一些这个type。对,你看这里是不是有MySQL type呀,你说我先拿的数据之后,你告诉我myq type,基本上这个咱们用的很少,我直接把数据拿过来了,对我从MYSQ拿的数据,我直接该怎么做分析,做分析就行了,对吧,然后呢,你把这个东西给我,其实这个东西呢,对我来说,一般情况下我用的很少,对吧,你给我呢,就是占一个地方。
03:06
对吧,那如果说mace的话,大家咱们现在这里它需要的东西数据库你得告诉我,然后呢,表明你得告诉我当前类型insert吧,而且这个东西是小写,然后时间戳短到这块呢,是我们一些偏移量,这你不用管它,然后还有一个什么date。对吧?哎,我发现这里面虽然说东西少,但其实呢,好像没有太多的废话东西,对吧,是不是一般就是我们需要的东西啊,表啊,类型啊,然后呢,咱们现在呃,做的一些我们的数据啊,要操作一些数据啊,数据这些啊,对吧?诶所以说这块呢,要知道,然后另外一个呢,那如果说要执行update的操作的话,那其实也是一样,如果update,比如说我执行咱们现在对这两个数据进行更新,那么can呢,也是对吧,在这里会有多条我数据放到一个数组里面去,但如果要是ma的话,他把每一张更新的数据也单独拿出来放到一个建子箱中去了,啊也是放一个建子项,那如果delete的话呢,那咱们这canel,对吧,它也是把删除记录放在这里,然后must呢,也是对吧,你影响一条记录,那我就封装一个直验对象对吧,那么接下来咱们做一个总结,第一个啊,第一个,那么我们现在呢,如果要是开的话,对吧,它每一条circle对吧,会产生一个我们的日志就。
04:22
你每次执行一个搜的时候,它呢会产生一个日志,那么如果你当前这些circle呢,那么影响了多行数据的话,那么这个时候对吧?那么它会把这多行数据对吧?封装到一个直的数组里边去啊,放一个件数里面去,这是kle,那Maxwell呢,它是以影响数据的这个行数为单位的,也就是说你每影响一条数据,它呢就会产生一个直接对象对吧?如果影响多条,它就会产生多个直接对象,而不是放到我们这个数组里边来。对吧,然后这里说如果想知道啊,这些日志是通过哪一条circle口产生的,对吧?可以通过什么来进行判断呢?对吧,有一个XID,但这个东西其实我们很少用,同学们对吧?就咱们在这里啊,它其实有个SID,那么这个SID呢,它可以用来干什么呢?你看我当前这个JS里有一个SI,这个JS呢,也有sid,那我可以判断这两个啊,这两个是吧,这个这个这个操作,这两个记录应该是由同一条circle口执行产生的。
05:23
对吧,但是其实这个呢,我们用的并不是特别多啊,然后接下来那么除了我们日志结构之外呢,还有一个数字类型,那么如果说是基本数据类型的话,大家看,假如说啊,在咱们这里边我有个ID,那么ID呢,在我数据库里边,它本身是数字对吧?如果说我是开的话,它采集过来之后,它会自动的把咱们这个基本数据类型转换成我们字符框,但如果是max的话,那么他拿的数据还是什么,还是我们的基本数据类型。对吧,这是第二个,那么第三个对吧,那么咱们现在呢,如果要是开的话,它会带入我的表结构,对,就是把咱们刚才这个东西叫什么circle type,对吧,给我拿过来,给我传过来,对吧?但是我这ma呢没有,所以说从这点来讲,Mawell呢,它更简洁一些,其实我们主要用的是什么呀,其实我们主要用ma,它是不是可以对历史数据来进行处理呀,对吧,就除非你要用开什么时候用呢?对吧,你现在刚准备采集数据,你数据库里什么也没有,那么这个时候你先把can环境给准备好,然后你数据库表一发生变化,咱们的canon呢,就可以帮你把这数据给打到,对吧?那假如说我现在数据库已经这个表有了,数据已经有了,但是呢,我想去记录一下我这个表的性能变化的话,那么这个时候你用kind到就不太合适了,对吧,你用mawell你可以一边记录,然后同时呢,还可以把原文历史数据呢给我同步过来。
06:44
对吧,所以说呢,其实我们这里我们呀,把我们在项目里边呢,我们主要用的是我们的master对吧,Kind呢,也有些公司在用对吧这块的这量的方式啊,其实都不难,对吧,那么接下来那我现在把这个东西理解好之后呢,那我们现在呢,来写我们这个对吧它的分流代码对吧,来在这里其实我可以直接把这个东西拿过来啊,但是呢,这个为了加深大家印象对吧,这个东西呢,我再写一遍对吧,这个再写一遍,然后呢在ods层对吧,那我们现在呢,去创建一个我们这个scale代码对吧,这个呢是通过Maxwell啊吧,这块是通过我们这个Maxwell来干什么呢?去读取我们这个数据,对这里对应一下啊,从那卡卡中的对数据,然后根据表明呢,对吧,来进行什么,来进行一个分流处理,咱们现在这是谁,这个是我们的mawell啊马well处理的,就咱们当前卡卡数据来源于哪呢?来用我们这个。
07:44
最要同步过数据,那么这块呢,这卡是来于哪来源我这canon啊,来源于我们这canon好了,那么如果想做这个事的话,来,那咱们现在呢,来把一些基本的操作呀给做一下,一起来做的同学们来首先呢,主方法这个东西我不能再写了,是吧?首先呢,把该创建的东西给创建出来,然后这块呢,稍微改一下对吧,然后接下来咱们现在把这个主题改一改,你是不是要从我们现在这个主题中去读数据呀,然后这个组呢,咱们把它改一改,这个呢,改成我们这个mustwell啊这个mustwell,然后接下来对吧,改干什么呢?
08:24
首先第一件事干啥?先获取偏移量是吧?首先第一个从我们这个RA中来获取我们这个偏移量是吧?从我们red获取偏量,那应该是我们这个offet啊,Mind YouTube.get outside主题传过去,然后接下来咱们这个ID是去传过去,接了点VR得到的是一个outside map啊outside map,然后接下来咱们是不是得现在做一个判断呀,在这里啊,点V啊得到什么呢?得的是一个off set map是吧?Set map,然后接下来咱们要判断一下啊判断什么呢?判断当前呢,我们这个off set map,它是不是不等于空,那并且呢,咱们这个off set map对吧?它的一个size是不是我们这个大于零吧,对吧,是不是大于零,然后接下来对呢,根据咱们现在的它的一个对吧这个反问情况来决定我要从哪对吧来去读取我的数据对吧?那么怎么读呢?咱们是不是有工具类叫麦卡for卡YouTube点然后呢,Get卡stream,然后如果说要是我们这个有偏移量,拿到偏移量了,咱们应该从指定偏量位置开始去获取数据,对吧?那么把它参数传过去,然后这个呢是我们的off map,这个呢是我们的group ID,然后点我们的VR这个变量,这个呢叫record stream啊record stream,然后接下来,那么咱们现在呢,那如果说要是我们这个。
09:58
啊,这个没有拿到偏量,是不是从最新的位置开始读啊对吧,最新位置开始读,那最位置开始读呢,咱们就把这个偏量呢给干掉啊,把这个呢再给干掉,对吧?然后接下来那么咱们呢,那就得把这个东西提取出来呗,来CTRX啊然后接下来在这里我们呢,去定一个啊或者初始初始化一下啊初始化一下,然后呢,这块我直接拿过来啊直接拿过来,这块呢直接拿过来啊这个拿过来好,那他现在呢,根据我的偏移量啊这个来去我们这个啊读取数据,那接下来咱们是不是应该把当前这个采集周期中,对吧?它读到的这个数据的偏移量给记录一下呀,来获取当前采集周期中啊获取当前采集周期啊中读取的主题对应的我们这个分区及偏移量啊分区以及呢偏移量,那么怎么来获取呢?这个东西应该record stream点是吧。
10:58
Transform一下吧,对吧?点50TRANSFORM对吧?那么transform的目的是什么?是不是拿到咱们的RDB啊,那么拿到D之后,咱们是不是可以把RDD做一个转换对吧?As instead of,把它转换成什么呢?叫has,我们的个opposite set range去调用它里面的一个set这个方法吧,然后接下来得到一个变量对吧,这个呢是o range,它的是一个数组,那么咱们现在呢,最终RDD本身我们不会变化,然后接下来咱们是不是把这个东西提出来,后面会用它呀,所以说呢,在这里我现在把它的给初始化一下,那应该是我们这个every,点我们这个empty,然后呢,把我们现在这个outside的这个range的O对要给拿过来,然后接下来给我们这个数组呢,来做一个赋值对吧,因为你要改变它,所以说呢,这块要改成VR。
11:46
啊,这是第三遍写的代码吗,同学们。是吧,你们下去啊,根据自己的情况,如果说我现在这个代码不需要写了,你们可以复制粘贴对吧,上了班段之会我就复制粘贴的同学们是吧?早晨我看检查的时候效果还不错是不是,但是我刚才上节课在讲的时候,感觉你们又很迷茫,所以说呢,我决定啊,其实今天我正常情况下,这这这个我就不讲了,对,我想把这个再再讲一遍,然后你们明天呢,这块呢,你可以做不完,但是呢,就上一个咱kon它的分流处理的时候,你们必须得做完吧,因为他俩思路不是一样的嘛,对吧,你们别着急赶我的进度,同学们对吧,你们把这个东西弄明白啊,把这弄明弄明白对吧,后面还会有对吧,如果说你现在还长握不了,没关系,对吧,后面还会有几次练习机会,对吧?来啊,那么咱们现在呢,拿到这个东西之后,那是不是咱们开始对吧做处理了呀,别忘了啊,同学们,你们在做的时候,这个东西呢,我不知你们这个课下的时候练习的时候啊,有没有去忘法把它提取出来的,对吧?咱们是不是应该在这把这个生成一个新的转换后的一个stream呀,对吧,那这个呢,比如叫offet。
12:50
啊,然后呢,咱们这个stream,对,然后接下来,那么咱们呢,是不是开始对做一个结构的转化了呀,对吧?来,那在这里我呢,对我们这个读取的数据来进行一个结构它的一个转换,那么这块呢,再捞叨一遍,对吧,我先从卡卡拿的数据,那么它封装的数据是什么?是不是咱们的consumer card呀,对吧,Consumer card,这consumer card里边它本身包含什么,说包含了key,还有咱们的VR,但是我们真正发的消息在哪,是不是在咱V这对吧?所以说呢,那我肯定要把咱们的V给拿到,对吧?这个V本身现在什么类型的呢?是不是应该是个杰森搜串了,那所以说我现在要转换成什么,我是不是要把咱们这个V给它转换成我们这个杰森object,然后呢进行操作,是不是这样更方便一点,对吧,那么如果按照这个来进行转换的话,那么这里我现在呢,那应该是做一个map呗,然后接下来那么你给我传过来的应该是一个record,代表当前啊,你从咱们卡卡里读到一条我们的。
13:50
记住对吧,然后接下来,那么你通过W点一块二呢,对吧?那可以拿到什么呢?是不是可以拿到WN部分啊,那这个其实就是我们发送到我们这块啊,发送到我们这块儿里边的一条消息啊,发到这里的一条消息对吧?这是JA森FTR,然后接下来那么咱们要干什么呢?我是不是要将我们的接字串你干什么转换吧,转换为我们接对象对吧?将我们的J森字符串来转换为我们的J森这一项对吧?那咱们现在这里应该是调用我们这个啊fast Jason啊,它里边的有一个叫pass方法Jason,然后呢,这里点咱们有一个pass object对吧?那么咱们现在把我这个Jason of这个str啊给传过去,它的返回值呢,那应该是一个JA森object啊,它的返回值那应该是一个JA森object对吧,好了,那咱现在把这里拿到,那么拿到之后别忘了你这里是不是做的map映射呀,咱们是的。
14:50
给你返回一个叫object,然后接下来定一个变量来接收你转换后的结果啊。快吗?同学们,其实虽然说快,但是你们这个代码是不是应该是比较容易的呀,对吧?哎,所以说呢,在这里我呢,这个快应该是对比原来快的啊,来在这里是吧,来来到这是吧。
15:12
咱们呢,去重新定一个变量来接受一下,这个呢,叫做Jason啊object stream啊Jason object stream,然后接下来再往下对吧?再往下的话,咱们是不是开始分流了呀,来分流对吧?那么如果分流的话,那结合着咱们刚才的开的分流处理怎么办呢?是不是相当于我这工作提交了呀,那应该是pro RD对吧?然后这个时候呢,拿到的是一个RDD,那么拿到RDD之后,这个RD它本身是不是也是一个数据集啊,这个数据集里边放的是不是一个个接对象啊,那我要对RD数据集边这个数据一个个进行处理怎么办呢?是不是可以这样RDD.for each对吧?For each对吧,你也可以分区为单位进行处理啊,但是其实这个没啥意义。同学们,你想我现在如果for each tradition和我的for each它俩会有什么性能上提升吗?没啥吧,你想一想,假如说我现在这里边一共有这个100条数据,对吧?然后呢,放在了我们四个分区,01234个分区里边,我for each的话,我是不是也得一次一次处理,然后发送100个消息,你for partition,那你是不是也得把这个这个这个一条条处理啊,就算是你以分区为单位进行处理了,你到分区里边,比如说你这里有25条,你是不是得第25条一条这处理,然后你在这里到这里你是不是也得对25条进行处理啊?所以这块呢,其实我们使用这个分区域单位进行处理,没有太大的性的提升,反而会麻烦了。
16:37
对吧,所以说呢,那我在这里我呢直接就我们这个for each啊for each,那么for each的话呢,每次达到的是一个阶层对象,那么咱们对这个阶对象干什么呢?首先第一件事,同学们,咱们把这个阶对象啊给拿到对吧?呃,这个阶对象呢,在这有啊吧,咱们现在这里是不是有在接对象啊来,我现在呢,把它给拿过来,拿过来之后呢,放在这啊,我们去大家给我格式化一下啊,让他给我格式化一下,对吧?那么咱们现在首先是不是要去拿这一个我这个类型啊对吧?所以说呢,首先咱们得先获取到我们的操作类型,第一件事啊,那我现在去获取我们这个操作类型,那么这个操作类型怎么来获取呢?可以通过Jason object.get string,对吧,因为你看咱们现在这个操作类型,它本身是不是其实就是个搜串啊,对吧,把这个type呢拿过来,对吧,把这个type拿。
17:37
过来,然后点V下,这个呢是我们的操作类型,当操类型,那么咱们在生成数据的时候,其实呢,它会把咱们数据先给它delete掉,然后呢再做insert,但是我们其实实际的话,我是不是只要我们这个insert操作是不是就可以了呀?对吧?那么如果只要insert的话,那么这个时候咱们可以做一个判断什么呢?对吧?那在这里如果说啊,咱们这个insert,然后点我们这个ES的谁呢?我们的OK type,那么说明你当年做的是inser操作,对吧?那么这个时候我需要把咱们这个数据呢,来重新的做一个分流,对吧?表示尤其是我现在做首单对吧,那我这块呢,我是把这订单的一个新增操作,我给拿过来放到我的订单的那些主题里面去,对吧?这块后边呢,在做别的业务的时候呢,这块我的判断条件呢,马上会发生变化啊,我都是在完善啊,我都是在完善到咱们现在呢,先加一个。
18:34
啊,先加一个,那么另外一个咱们在我们的can里边这块好像写的不是他吧。是不是大写呀,它有个大小写啊,同学们,你看咱们在我的开头里边,那就是大写,但是咱们现在在这里,人家都要给咱们采集的时候,这东西是不是小写的inser update呀,对吧?那这块呢,你要注意一下对吧?这块你要注意一下,然后另外一个呢,这块你可以提前先处理什么呢?说我现在除了操作类型之外啊,除了操作类型之外,那么这块呢,还有一个东西对吧,叫什么呢?叫我们这个date,这个date不是数组了吧,如果是kle,咱们是不是通过get什么Jason a来获取数组啊,现在他是不是就一条数据啊,所以说呢,咱们现在可以直接这样干什么呢?来获取我们这个操作的数据,对吧?那么这个怎么来获取呢?通过杰森啊,我们这然后点对吧,这个是不是直接获取我们这个Jason对象就可以了,Jason object,然后把它date给拿过来,我们为什么把这个东西提前拿过来的呢?对吧,这个是date Jason objectg,因为啊,我们。
19:40
说这个KO它是不是可以帮咱们初始化数据啊,那么如果这是初始化数据的时候,这个东西有可能啊,它这里边东西是空的,就相当于做标记,初始化开始给你一个输输出,但是里边什么也没有,有可能拿到为空,所以说呢,那我现在呢,把这个东西我暂时也给拿出来,咱们做判断的时候呢,那你该多加几个条件,如果说咱们当前这个day的Jason object,它不等于空啊,如果它不等于空,那么并且呢,咱们这个D的j.R对吧,咱们这里有一个叫empty吧,判断为空的对吧?在咱们这里有一个我们这个三对吧,如果说为为空注意啊,那有的时候同学老同同学可能会想说,老师,你看你判断是否为空的话,你判断这个不行吗?
20:31
对,有,有某些情况你判断这个就足够了,说老师你判断为空的话,你判断一下它是不是空的,这不就行了吗?有某些情况你判断这一个就够了,但其实我们一般呢,在判断的时候是不是严谨一点,对吧?如果说它的一个对象,它的本身是空,没有指向任何我们这个真正的地址的话,这是空情了,那么另外一个我认为如果当前对象不一空,但是里面没有数据,我也觉得它是空的,所以说呢,那你把这个就是判断的稍微完善一点呗,对吧,如果说它不等于空,那么并且咱们当前的这个操作是insert的话,那么这个时候呢,我要把它做一个分流啊,那么如果分流的话,那大家想一想,是不是就把这个数据给拿到,怎么来获取数据呢?来获取咱们这个操作的这个数,数据已经有了,那咱们是不是要发送啊,那么在发送的时候怎么发送,我们好像封装一个工具类吧,叫什么麦卡夫卡think,是不是咱们上节课封装一个工具类,这个工具类干什么呢?是不是专门用来我们这个向卡卡里边来发送数据的呀?
21:31
来stand对吧,那么需要传两个参数,一个是topic主题,那么另外一个咱们是不是当前的date就可以了,对吧,只不过当前date呢,是不是杰森你得把它转换成我们这个对吧,这个走出来对吧?来那你把它转换一下to这个string是吧,完事了行了吗?同学们。来我动写有没有问题,同学们对这样的话就转圈了,同学们对你这样写,你想一想会出现什么情况,对你们就想想这这个是不是挺有意思的事了,对吧?我现在干什么,我现在从卡卡里面取出据对不对,然后接下来刚取出来,然后干什么,又把数据写在咱们卡卡里边了,然后卡卡一看有数据了,过来我是要取数据啊,所以说这个东西咱们这topic是不对的,所以说呢,那咱们现在要干什么,我是不获取咱们表的名字对吧?获取我们这个表名对吧?怎么来获取呢?那可以通过Jason object这个点二我们现在有一个get string对吧,然后这块呢,应该是我们这个表名对吧,这个就是我table把这个表名呢给拿到,然后接下来点VR得到一个table name对吧,得到一个我们这个table name好记下来,那么你要发送的主题,咱们拼接一下来拼接对吧,要发送到的主题对吧,那么这个怎么咱们怎么这个拼接的呢?是不是在这里。
22:52
定一个stand topic对吧,前面咱们是不是加了前缀啊OS呗,对吧,然后下划线把咱们的table name来加过去,然后这块那你应该对吧,把这主题改一改啊,把这主题改一改。
23:07
好了,那这样的话,咱们现在呢,对吧,是不是也可以去对来分流了呀,还没完事了吗?同学们,最后你分完流了,已经把你现在这个数据根据咱们的表名放到不同的topic流去了,然后你要干什么了,是不是咱们得更新我们的偏移量了,对吧?就是你从red读了,但是我对的数据进行处理了,咱们得手动提交偏移量对吧?那么手动提交偏移量呢?那应该在我们这个对吧,RDD这块对吧?那接下来在这里我们呢,去手动提交啊,咱们这个偏一亮对吧?那么有同学啊,他不知道说我这个东西代码该写在什么地方。啊,就这个东西我不知道什么,就是代码该写什么地方大前要手动提交批量,什么时候做,是不是咱们一个采集周期完事之后去做这个事了,对吧?那么什么时候一个采集周期的,咱们现在这个东西,它是不我当前采集周期的一个这个封装的一个算子呀,对吧,那这个算子这个是不是它有执行的一个我们的函数啊,就整体到这啊其实它的一个函数,这个是函数参数,这个是候函数体,那你看一看这个函函数什么时候结束的呗,对吧,你看到这结束,咱们是不是在函数之前结束之前把这个偏移量提交一下呀,对吧,怎么提交呢?那应该是啊,Of that啊这个manner YouTube点我们现在呢,Receive,然后接下来什么然send topic topic哪个是不是就能topic呀,对吧,然后接下来group ID,然后呢,以及我们这个outside range,以及呢,咱们这个ET range对吧,那么这个呢,是我们这个手动提交的便宜量,那到目前为止使用我们这个啊。
24:44
Maxwell来呢,对我数据进行一个采集,然后接下来我们呢,通过SPA推命程序来就做一个分流处理,对吧?那么这个代码呢,写完了,那么整体流程呢,其实就这样,从我这里采集数据,然后采数据到哪到我现在呢这个卡卡中,那么只不过呢,那目前啊,那咱们现在是把所有数据都放在一起了,然后咱们现在写一个程序,从这里把它读到,读完之后呢,那我现在要根据我的表名来发送到不同的主题中去啊,来发送不同主中去,然后接下来咱们俩来做测试啊,接下来做测试,那么如果做测试的话,那首先咱们呢,要想一想我的程序怎么执行,首先呢,你要想执行的话,那应该是这样,同学们在这里是不是得执行我这个模拟生数据的代码呀,模拟生数据代码,他把这个数据发送到哪,说发送到咱们这个下划线M这主题中去啊,所以说呢,那么咱们卡普卡肯定得启动对吧?在这里我们的GPS卡卡启动了,那么卡卡启动之后呢,那这个时候,那么咱们是不是得去采集呀,那谁。
25:44
采集呢,是不是要通过我的马采集啊马那肯定启动的对吧,那么你再去操作的时候,咱们red呢,那肯定启动了,刚才咱们启动过了已经对吧?好,那为了看效果,那么这个时候呢,我来到我们这个CF卡对吧,这里边CTRLC对吧?监控谁呢?呃,这时候别监控咱们杠M了,对吧,我还是去监控对吧,Ods欧对吧,因为咱们这里如果它也实可以实现分流的话,是不是也会把数据给发送到咱们这个主题里面来呀,对吧?然后呢,那我现在来运行我这程序,告同学们啊,这个是吧,S拷贝一个。
26:25
来咱们现在呢,把这个拷贝一下来运行啊。那么第一次呢,他要从我们这个RA里边啊去读,对吧,那么当前的RA里边应该是没有咱们这个分区数据的,对吧,那没有的话,那他应该从最新的开始读呗,对吧,那从最新的开始读,那这个时候咱们是不是读完之后要做一个保存呀,对,要做一个保存,对吧。
27:05
好了,那那现在呢,可以拿到这数据啊的大数据,然后接下来那么咱们现在呢,那要开始去执行我们这个模拟数据的生成,对吧,来在这里看一看对吧,我们现在呢,把这数据生成一下。那么生成完之后呢,大家看这边这个数据是不是过来了,对吧?那么当前这里边数据其实和咱们这kno采购数据应该是一样的,对吧?哎,这个整体结构不一样,但是data呀,那应该是一样的,对吧?那么大家呢,今天啊,我们的任务啊,今天任务呃,熟悉我们这两种采集方式,对吧?一个是Kindle,一个是咱们这个S,其实这个整体配置呢,对,这不难,然后另外一个呢,在去做之前,那么你要明白我们现在需求发生变化了,同学们。对吧,我们需求发生变化了,对吧,我先把这停一下吧。
我来说两句