00:00
呃,那么咱们现在呢,要想去完成我们的ADS处理了,那目前咱们已经对吧,完成工作就封装一些工具类出来了是吧?呃,我现在呢,可以这样啊,这个工具类准备工作已经完成了,那接着再往下走干什么呢?大大家看一下在这儿是吧,工具类完事了,然后接下来呢,咱们现在呢,应该把数据写回到我们这卡不卡了啊,就现在这里边是吧,这个表也准备好了,然像工具类呢也准备好了,那这个时候呢,那你可以把这些东西啊给我往我们这个卡卡里边来写了,对吧?就咱们其这个你可以先做啊,你可以先做对吧,就是我现在这里边双流转对吧,这个已经完成了啊,然后呢,我现在呢,可以号的保存这个这一套对吧,我也完成了,对,那现在你其实除了这个之外呢,你还可以干什么,你可以把这流啊再写过去啊吧,再写过去是吧?呃,那么如果要再写过去的话呢,那咱们现在回过头来来看一看是吧,在哪呢?来到。
01:00
我们这个DWS对吧,Order外里边,然后接下来,那么咱们呢,在这里我是已经是往我们这个吧这clean号写了,然后接下来咱们现在在干什么呢?是吧,将我们这个数据写回到我们这卡不卡写回对吧,写回到我这卡普卡,那么这个作为卡卡的什么呢?是不是应该是DWS呀,对吧,咱们这个是我们这个order white啊order white,那么在写的时候呢,那么这里啊,其实有一点需要注意,就是咱们上午踩的坑啊,就本身呢,应该是在咱们这里呢,给大家讲怎么样呢,在上午对由一个咱们这个啊这个这个把这个流啊使用错了啊,咱上午提前出现了,就给大家说一下对吧,那么上午咱们踩到什么坑呢?就这个东西你啊,如果说我要是直接在这里去执行的话,到这儿咱们是不拿不。
02:00
到的短,为什么?因为这个东西它的数据源是谁,数据还是卡不卡短,大家发没发现,我在执行的时候,每次我运行啊,我读取偏量,我只读取几次呀,是不是只读取一次呀,但是保存呢,它会一直在保存,什么意思说我现在整个的程序执行的时候,对吧?那我现在呢,要获取什么对吧?要获取我们现在呢这个便移量对吧?要获取便移量,那么咱们获取几次呢?对吧?当你程序运行的时候,它只会从我们的radi里边去读取一次PA量对吧?然后接下来,那么这里是我一个个的采集周期,一个个采集周期,一个采集周期对吧?那假如说我第一个啊,我的采集器三秒,这是三秒,然后这个呢,也是我三秒,比如说第一个采集器过来的时候,同学们,那大家想一想,它的偏移量我是不是从这里读过来的,是不是从指定位置,然后咱们把这个数据读到这里来呀,对吧?那你说第二个采集周期它还会去到里再读吗?那根据咱们输出,那应该是什么呀?那应该不会了,对吧?那么如果。
03:00
不会的话,他怎么知道我现在对吧?我应该从什么位置开始读,对吧?大家想一想对吧,你现在的程序是没停的呀,那如果没停的话,你想你第一次你假如说你从十个开始读的,然后你真是三秒你读了多少个,对吧?你现在呢,又读了十个出来,那你说还用我再去读一次吗?我完全是不可以在我当前这里边,我本身我把这个偏量给记录下来呀,对吧?所以说呢,这个东西它呢,其实本身会记录我的偏量在哪记录,对吧?如果说我现在从卡卡里读数据的话,那么咱们会把它封装成一个consumerard,在consumerard里边是不是实现了咱们的hasset race这个接口了,它里边不有一个offet方法吗?对吧,可以获取咱们当前读取的便宜量,对吧?那我现在既然每次啊,在在咱们都都都一次对吧,都一次对吧,那如果说我当前在咱这里边什么呢。我呀,这个job提交了,对我这个job提交了,也就是我现在触发什么了呢?触发咱们行动算子了,那么触发行动算子,那么咱们以前说过这个re本身啊,它里面并不放数据对吧?放的是什么,放在里计算逻辑对吧?那么咱计算逻辑那没关系啊,你提交提交呗,我再重新去读一次呗,对吧,但是同学们你看一看,就算是你照本提交了,我这个程序停了吗?我这程序没停啊。
04:23
那我这程序没停的话,那你说它是偏量从哪读,是不是应该从你消费的位置最新的地方开始读啊,那肯定读不到数据啊,这要读到数据,所以说啊,那么在咱们这个,如果说你在SPA这个程序里边,如果说你的数据来源是卡夫卡的话,那么咱们只要是行动算的被触发,那么这个时候咱们应该建议你干什么,做一个catch对吧?就如果说你现在正常情况下,你在这要触发咱们行动算子的话,那么这个时候呢,你应该在这对他做一个catch,这是一个咱们上午上午这个情况,到这在这到这里一个上午的情况,然后接下来我上午这个东西啊,我没写,也就是我没有触发行动算子,如果没有触发行动算子的话,我在这里执行,我在执行的时候,我在执行第二个行动算的时候,我是可以拿到数据啊,因为这是我第一次提交嘛,我的数据可以拿到的,对吧,然后接下来,那么咱们现在呢,拿到数据之后我要干什么呢?那我去调用它里面的right的方法什么点DDBC对吧?然后接下来同学们我要写回,那么怎么写回呢?是不是应该R。
05:23
DD点我们的for对吧,把数据写回吧,那么咱们现在每次拿到的什么,每次拿到的是不是一个是我们的order right啊对外的对象,然后接下来那么咱们现在写回的话,写欢卡卡,写咱们是不是这个工具类啊,叫什么来着,MY卡夫卡think对吧,My think里边有一个方法send把topic对吧给我拿过去,把topic对吧给我拿过来,那么接下来那么咱们现在呢,要往这里边都写回,对这个topic,注意啊,这里也是在指定一下呀,这应该是O对。
06:03
啊,DWS对DWS,然后记下来order we对order we,然后写谁呢?咱们是不是应该把当前我们现在这个order we转换成一个格式字串啊,这个转换的话s.to object啊这不是这个转换了呢点我现在要把它转成一个轴,配了个轴串啊,在这里我们现在要把它转换啊,那么这个东西咱们这里大家想一想,本身我先打的是不是一个Java。对吧,然后现在呢,要把它转换一下,这得怎么转,To什么to,咱们这Jason string是吧,To Jason string,那么如果to词的话,咱们这里是不是也指定一个这个参数啊,对吧,想一想在这里这个你现在对象拿过来了,Order wide,对order white,然后第二个咱们这里用了一个什么able是吧,来sez对吧,它然给传一直过去啊。
07:08
好了,那这块呢,是关于咱们这个写入对吧,但是这么写啊,那可能会有点问题对吧,具体什么问题呢,都感觉啊感觉会有问题,同学们你们觉得这样有问题吗。对吧,运行一下,看一看同学们对吧,正常思路还行吧,就看我现在在这里,你你往那个王可林王可林浩写一份,然后呢,你这个ledd再往哪写一份,是不是再往咱们现在我这个这个卡卡写一份了,对吧,来测试啊同学们来测试对吧,那我现在呢,在这里,我要想去测试的话,那把这些东西该起的都起起来,对吧,把这些东西对吧先关掉,然后呢,Ods层,那么这个咱们要起起来。这个咱们起起来,那么除了我们这个之外呢,那咱们现在DWD层啊,那这个呢,咱们两个起起来。
08:07
这两个呢,咱们把它提起来,然后接下来,那么咱们现在DWS层这个对吧,那么现在呢,要把它提起来啊,要把它提起来。注意啊,同学有些会学问,我说老师在DWS层,这个DWS层和咱们现在卡卡DW,它谁先出现是不是这个,这个是不是咱处理完之后,然后才会把然里卡卡DWS来写呀,对吧,咱们现在叫DWS,但他数据从哪读的,是从咱DWD里读的呀,对吧?这个关系弄明白啊好了,咱现在呢,来把这个东西对吧,来了可以读取咱这个便宜量了,然后干什么呢?来啊,我现在要想看一看,读完之后是否仿咱们现在我这个对吧,这个卡卡写了对吧?那怎么来看呢?那就把这个卡不卡它的一个段,这个消费者都打开一个。
09:03
打一拿这个卡卡消费证来到我们的o BT model卡不卡,然后B这个下边,然后呢,卡普卡consumer,嗯呃,尴尬多对你其实你可以写一个什么样英文,你可以写个脚本,你自己不用这么麻烦了,对不S,然后呢,202单号9092对吧,我就是为了让我自己熟练点,我就怕忘对吧,因为有的时候对吧,有的时候我就不知你们有没有这种感觉啊,这个单词呢,就挂在嘴边上对吧,就是想不起来对吧,比如说刚才那个muable对吧,我就想了半天,然后后来我就复制了一下是吧,那那咱现在呢,在这里对吧,那我们现在呢,来我这个刚刚topic,然后谁呢,DWS是吧,然后接下来order y啊。
10:04
好的,来看一看啊,咱们能不能拿到数据,那现在这个呢,还没有对吧,现在还没有,然后接下来咱们在这里是不是开生成数据了呀,来到我们的o VD model rt,拿到DB,然后进来执行我这个Java杠站到DEMO运行一下啊。啊,那么咱们现在呢,那先看谁呢?看这同学们对吧,在这里看一看这个有没有变化会吧。有变化吗?变了是吧,那变了的话,那咱们现在这个,那再在哪再再去哪看一看呢?咱们现在在哪个地方看一下吧,对吧,呃,我在克隆一个,我在克隆一个session,然后接下来我现在呢,想去执行click house,然后杠client-M,然后接来咱们这个受peoples,然后接下来咱们呢,Select count here对吧,然后呢,这个from t_order we啊。
11:11
023好,那咱现在这五六条,大家想想上午是不是二十二十多条了,对吧,现在又多了一次呗,是不是这个已经执行了,但是呢,你看这里。没有。啊,就咱现卡卡这里没有,为什么。比如说咱现在这这这这东西你看在咱们这对吧,上面就执行了,对上面执行了,但是呢,卡卡没有。对吧,我上面这个东西还注释了吧,同学们这东西完注释掉了对吧,看看你能不能真正理解我刚才这个所讲的,如果卡卡数据源对吧,它有问题的,我说如果行动上的被触发对吧,那么这个时候呢需要做缓存。都要学做划算对吧,然后呢,我上午不这个在在写的时候,第一次我其实写的什么,我写的分叉对吧,但是发分叉呢不太大,不太容易理解对吧,我特意把这个东西呢改了一下对吧,大家想一想,到目前为止,咱们现在程序执行在这儿啊,程序执行这分叉了嘛。
12:11
到目前为止,咱重序直到这之前这分叉了嘛,是还没有啊对吧,然后咱进来,我现在是FOR1RD,其实FOR1RD呢,它目前就严格来讲也被分叉,对吧,它只是一个行动算子,然后接下来在咱们这里边它被出发了,那么这个时候RDD那么能拿到吗?对吧,接下来RDD干什么呢?我问大家,咱们现在在RDD里边这个for each算不算形动算子,然后这个像什么,这这这个right这个东西算不算形动算子,是不是也算呀,那你想想这个就是我所说的free差,同样一个RDD,你现在呢,要做这个,要做这个,这里是不是相当于RD算的提交两次呀,调它提交两次的话,那这次是不是要重新去开始加载数据,那你想一想加载的话从哪加载,说从最新的卡卡加载啊,肯定下载不到嘛,对吧,所以说咱们这里应该怎么办呢?RD对吧,点2CATCH一下就要在它分力分叉之前啊,我现在我是不是对着都是对着RD做操作了,对吧,我现在都是对着RD做操作,对吧?那么如果对对RD做操作,我完全可以把这RD缓存起来,那么你。
13:12
你用的时候这样里去哪取呢?你不要去我们现在对吧,直接从头走了对吧,你就直接从缓存里取就行了,对你就从缓存里取就行了,对吧?啊而且大家注意啊,有的时候你们在用的时候,对如果是单流的话,有一部分有一部分几率对吧,你不加这个东西也可以。对吧,但是呢,我们要养成好的习惯,对吧,就只要是从卡卡拿对吧,那么这个时候呢,对吧,咱们就这个把它给给缓存一下,缓存之后看看行不行,同学们来重启。
14:02
应该把这个关掉,我一开这个网的话,直接就特别慢。好了,那接下来咱们来看,我呢,现在去执行模拟生成数据。那么这数据之后呢,咱们来到这儿是吧,看一看咱们这个数据是不是发生变化啊。这五秒没变。这个变了是吧,然后接下来是吧,那么咱们现在变了之后呢,那来到这里同学们看先看谁呢?先看它刚才56条是吧,来看看星89条,再看它这个数据是不是就过来了呀,对吧?诶好了,那这个呢,是关于啊,我们现在当我们这个啊这个数据,然后呢,写回到我们这个卡夫卡对吧,来我把这个呢停一下。
我来说两句