00:00
好,那接下来呢,我们要把这个数据这个配置信息流对吧,处理成。广播流。啊,处理成一个广播流,好,那我们来看一下这块呢,就调用这个,呃,My so source点点。Broadcast对吧?嗯,有两个。啊,那上面一个呢,返回值是什么叫broadcast stream,下面呢,只是一个普通的data stream啊这个呢,只是一个广播,就是说它单个流往下有广播对吧,而这个呢,它得到是一个广播流,这个不一样,我们要用的就是上面要传参数,你看这里边它有一个参数对吧?这儿它没有参数啊,没有参数好,那我们看一下它里面要什么参数啊,它里边要一个map statescript。对吧,好要一个map状态描述器啊,那咱们呢,就又一个map state啊,你要一个东西我们就给他好写到这块完了。
01:01
这个地方呢,它要求你是一个map结构,对吧,他要求你给个什么。KV的类型。那我们这个地方,你想未来我要把这个数据啊。写到状态里边对吧,那大家告诉我这个KV。我写什么呢?啊,就先不用想用什么类型啊,先想我们的KV分别代表什么数据,我们以谁为K。对吧。其实这个应该比较简单。我们不用想类型,对吧?我们先想内容是什么,我们要把什么东西放在K的位置,把什么内容放在value的位置,对吧?想这个问题就行了。那我们这是一个map,你写我们的配置信息,负责往这个map里边写。
02:00
而主流负责从这个map状态里边读。对吧,好,那么这个K呢,肯定有一个特点,就是要求我主流跟配置信息里边。公共的字段,两个人都得有。对吧,那这样的话你写进去我才能拿得到第二个点,你得有唯一性。你得是唯一的。对吧,因为你要不唯一,我用的是map结构,哎,你要不唯一,那不互相覆盖吗。对吧,好,结合这两个条件,你告诉我用哪一个字段。或者说哪几个字段作为我们的K?就这里边我们用某一个字段或者某几个字段作为我们的K啊。好,方总说了,表明为K。
03:03
其他同学呢?同意吗?这个应该比较简单吧,因为你要求有这个条件,那只有source table1个人满足,对吧,只有这个source table满足,其他的都不行,呃,第1SOURCE table的两个流里面都有。第二唯一第二唯一对吧,所以那既然我们要SOC那类型呢,Three对吧,好。类型呢,肯定是,那Y6呢,Y6放什么。这个没有我们放什么。K,其实只有这个table满足对吧,那这个value我们放什么?Y6放什么?就是在状态里边。我们要把什么东西传进去啊,放到状态里边。
04:04
这个很难吗?可以对应的配置表里边儿的信息啊,其实简单点说,是不是就这一行数据啊。就整个的一行数据吧。是不是?没毛病吧,整个的这一行数据啊,好,那简单一点呢,我们就节省对象写进去,好那为了因为后续呢,我们要对这个要加工对吧,呃,在。配置信息里边还要去建表,在主流里边还要读这个字段做过滤,对吧,做一堆事情,所以呢,我就不用杰森对象了啊,用一个扎vain可以了,用个扎好,那这个时候呢,我们创建一个实体类叫table process。往那一放table对吧,好把它拿过来。
05:03
就是我们这五个字段OK了,那我们搞一个招聘未来方便使用啊,当然你这你不写招聘,我就写一个string对吧,或者我写一个杰森object,其实都可以。啊,你想把它封装成什么类型吧,因为我要把它封装成一个招聘未来是不是好用一点啊,大家想对吧,我取字呢,更方便一点啊,那这边呢,就是table process这个类型对吧?好,那名字map。呃,K的类型,VALUE6的类型,那K的类型呢,是three点对吧,然后呢,VALUE6的类型table process点,就这样我们得到了一个map。Map状态描述器对吧,然后呢,把这个放进来看,那我们就得到了一个broad cast stream,得到一个广播流对吧,咱们就得到一个广播流,这个比较简单啊,就是我为你想一想,诶,咱们的这个KV分别放什么东西?
06:05
啊,那它对应的类型就出来了啊好,那就来连接主流与广播流,咱们的主流叫什么?注意叫这个啊,叫felt杰森OBJDS。点连接connect,然后呢,我们连接广播流啊CR,那我们就得到了一个连接流。得到一个连接流对吧?好,接下来处理连接流,我们把这个先写上啊,那它其实只有这个process一个API可用,其他的没了,对吧?这个是获取执行环境,获取第一个流的输入,第一个第二个流的输入,对吧?这个是获取第一个流的类型,第二个流的类型,那这个没什么意义,对吧?其实只能调用什么呢。Process只能调用process好来看啊,呃,这里面呢有两个,一个是k broadcast process function。啊,那这个是key。啊,你要对两个流金K处理才可以对吧?呃,这个呢,直接是波CA波方,很明显我们要用它,因为我前面根本就没有做K,那我肯定用不了这个key对吧?所以用这个broadcast process function,那我们尝试在这有一个叫broadcast process function啊输入数据第一个看啊,这边有三个类型对吧?呃,前面两个呢,人家都给你写好了啊,前面两个什么呢?叫1112,输出是out。
07:26
对吧,那我们想,那大家告诉我这个地方我该写什么。我应该写什么类型?我该写什么类型?就是这个处理完以后。他的输出就只是剩下了我们的需要的数据吧,对吧,不需要的都干掉了,那这个地方我们应该。
08:07
类型是什么呢?大家告诉我。嗯。嗯,杰森格式。啊,方总说杰森object了,对吧。啊,班长说输出是table process。啊好,有分歧了对吧,其他同学呢,大家都想一想对吧,应该是什么。方总说是Jason object啊,班长说table process。嗯,其他同学呢,你。觉得。应该是什么类型?
09:01
哎,陈总说了,杰森。嗯。民众说,杰森啊,那杰森。更多一些。对吧,那我们想,那你输出的是主流数据还是。就是有两个答案,一个杰森,一个table process啊,那分歧在哪呢?我们当前这个输出啊,你觉得是主流输出了还是把。配置流数据输出啊。
10:17
对大家没问题,肯定是主流吧,因为我们主流相当于有46张表,然后呢,配置信息里边写了十条数据,那未来我们经过。这个方法处理之后应该只剩下。这十张表的数据对吧,把其他36张表数据给它过滤掉了啊,所以主流数据那家主流数据那我们肯定就J3。Object的吧。班长能理解吗?啊,因为你说的是table process,注意这一步我们并不是输出这个配置信息了啊,而输出的主流,因为已经是连接流处理的吧。对吧,哎,它里面有两个方法,这是我们之前说的对吧,呃,一个叫process element。
11:04
一个叫process broadcast element啊,那我以前是不是说的叫。Process element1跟二啊,那就是说你瞎说对吧,一二呢,没有对吧,那是因为当时我说的是什么,是两个流进行连接,你比如说啊,我把这两个流给你连接看啊,呃,主流杰森。点的连接谁呢?连接我们的MY你看。看啊,这个地方是不是叫process element1 process element2对吧,我当时说的是连接啊连接,所以它叫一跟二两个方法啊,并不是说错了,现在呢,我们是改成了广播流,所以呢,它这个叫process element,这个叫process broadcast element,那很明显这个是。处理广处理我们的广播流数据对吧,配置流啊,这个呢是主流啊,这个是主流,而且呢,我们正常来说应该先处理它吧,啊所以呢,我们可以把它挪上去啊,挪上去好,那这里边儿呢,又要我们能感知到的,是不是又要见表。
12:16
对吧,要见表,嗯,又要过滤字段,然后呢,还要写状态,还要读状态,对吧,事情还蛮多的,所以呢,这个东西我就不写在这了,我给它干什么呢?我给它写到function这来啊,在这来一个什么呢?来一个叫table process。方式啊,我们另外创建一个这个内容对吧?好它呢,继承我们刚才所看的这个东西,就是我们写好的对吧,因为这里边儿将要写很多的个代码啊,所以呢,咱们把它写出去啊,啊那把这个拿过来对吧。
13:00
好,里边呢。实现方法还是一样的,我把这个呢挪上来,因为我们先写处理。广播流嘛,然后再写处理。主流。对吧,啊,两个东西啊,所以呢,我们咱们这样写啊,然后呢,这边我们就不这样写了,我们就直接点process,你有一个叫什么叫table process方式,对吧?诶这样就简单了啊,就简单了,我们先把这个方法固定了,但是里边内容呢,我们再来分析,我们应该怎么去写啊,其实这一步呢,还挺复杂的啊,所以我专门把这个函数呢拎出去了啊,因为它里边要写的东西还比较多啊,这个时候就考验大家一个Java功底了。
我来说两句