00:00
好,上午呢,咱们是把这个广播流这边处理完了,对吧,把广播流数据这边呢处理好了啊呃,那接下来呢,按这来说我们要处理主流数据了啊,主流数据呢,我在这样写了步骤,第一获取状态数据,那我们还是一样的要从这个上下文环境当中把这个数据给它获取到啊,那就是ctx点还是一样的获取我们的广播状态,但是注意啊,这是一个read only context,所以说它这边只能读,而上面呢,它是普通的context,它可以去写往里写对吧?好,cx.get broadcat state,然后这里边还是要一个描述器,那我们之前传进来的有科二加V得到一个。广播状态啊,得到了我们的状态,呃,那么接下来我们要获取这个数据啊,那我们就想这个状态呢,它是1TV类型map对吧,那比方说我们要从里面获取数据,我们要去get这个地方呢,要传一个。
01:12
K啊,所以呢,我们应该把K拼接给他啊,拼接给他注意一下啊,在这个数据当中,我们的数据我得拿一下啊,这个value。这个Y6呢,长这个样子对吧,那我们想呃,对于主流数据,我们这个Y6。是不是跟广播流数据的value是一模一样的?对不对。这个有没有问题?这个数据格式是不是也是这个样子。来,要快速的清醒过来啊,快速的清醒过来。
02:00
对吧,也是这个样子,所以呢,我们要去拼接一个K。啊,拼接一个K,那么我们拿什么去拼接啊。注意是不是应该是这边有一个表明,然后这边类型吧,是不是拿它俩拼接啊好,那注意一下啊,在这边我们要找一下我们表明,我记得应该写的是table name吧啊所以呢,我们来一下啊,把这个jason.pass object,然后呢,把这个value先转成我们的,哎,这啊这这已经是介绍我们上午已经转过了啊。呃,那就Y6点。Get啊,然后呢,我们叫table name,注意一下啊,注意一下,那我这个地方写的table name,有的同学不一定啊,因为有的同学他自己自定义的这个东西,他是自己写的嘛,他可能跟我不一样啊,如果你要不一样的话,你看哪呢,看这。
03:01
OK吧,这要注意一下啊,一定要跟这个位置保持一致,因为我们自己封装的。啊,我们自己封装的对吧,所以这个地方呢,我是叫table name,但是你不一定啊,你要注意一下,好,那接下来我们将分割符,分割符注意啊,分割符也要注意了,那看啊。这边我们是不是把数据写到状态里边,分割符用的是中杠,那下面是不是读状态数据啊。是不是读状态数据,那我们是不是一样的也要用中杠啊,对吧,这种东西不要错了啊,我再次强调一下,我不规定大家都用中杠,你用下划线或者说空格什么东西都可以,但是你这块用的是什么,那到这块来取数据就要给我用什么。没问题吧,这个一定要注意一下啊好,那接下来呢是value.get string,这个里面呢放time。
04:02
啊,放ta OK,那这个ta还是一样的,也来自于哪呢?来自于这在我们的customer。第1CIVILIZATION这个类里边啊,Ta叫他。对吧,叫这个TABLE1定要注意了,一定要保持一致加位,这样的话我们就得到了一个key,然后接下来拿这个key往这一放,哎,就取到了我们的数据,叫table process,因为我们往里边写的就是一个key加一个table process,对吧?好好,那我问一下大家,这个东西有没有可能为空。他有没有可能存不存在为none的情况?有没有可能闻到?
05:01
啊,只有孙总说有可能,其他同学呢,是怎么认为的,或者说认为有可能的,能描述一下在什么样情况下他就为闹了。对吧,他什么情况就变为闹了呢。新建了一张表,Table还没有加进来。Have,在my circle里没有相应的table。在买个里没有相应的table。还有孙总说的。Have啊,那个改一下是吧,上面敲的不是table是tap啊,都有道理啊,这两个同学说的都有道理啊,存在于这种情况啊呃,那比方说假如说啊,我们买S里边,这边是不是有46张表。
06:17
对吧,大家注意一下有46张表,那我业务做统计的时候,我40张表一定都需要吗。我这里边表一定都需要吗?你比方说这个。贝,这张表。对吧,这是一个码表,我做业务的时候,这张表是不是不需要呀。对吧,也就是说很有可能什么情况呢?这张表在我的table当中压根就不存在。对吧,不存在,但是这张表有没有可能发生了。加了一条数据,或者减了一条数据,类似于这种情况呀,对吧,啊,它有可能对吧,有可能,但是一般这种表也不会动,也不会动,但我初始化的时候,我这张表不要,我初始化的时候我也不把它导进来。
07:09
对吧,我也不导这个数据,所以呢,这里边儿,诶在table process这里边不存在base d这张表,但是这张表在初始化的时候,这些数据能不能读进来。是不是也能读进来呀,对吧,也能读进来好那。你看你拿这个去找的时候,它不就为囊了吗?啊,所以要注意一下,它是可能为囊的,好,那既然正常的可能为囊,也就是说这个为囊啊,你不能抛异常出去,因为你直接拿着它调用它为囊控制针了,就报错了,如果说它为囊,你觉得正常情况来说它不存在,它一旦为囊就应该抛异常出去,那你可以不用管,但是呢,其实这个东西在正常情况来说可以为纳,就跟我们之前说的脏数据一样,在正常情况下来说,它是可能出现脏数据的。那不能因为它出现脏绿,导致我程序挂掉了,对吧,所以这个时候呢,我们要做一个助理,我们判断if这个table process,它不等于呢,我们才需要做这个事情,如果等于闹了呢。
08:16
啊,如果等于那呢,我们打印一句话对吧,不要注意不要抛异常打印一句话说。这个K该。组合。K组合K长什么样子呢?拼接一个K对吧?不存在,就是你指定的这个组合K不存在,或者说刚才我们举的例子是这一张表,对吧,压根就不存在,没有这个表明,那另外还有一种可能性,我们有的表呢,有新增数据,有变化数据,可能我这个业务线只要新增,那我在table process这张表里边只有A表insert,没有A表update,但是当A表update的这个数据相当于我们正常的给它丢掉,那它走的就是这条线。
09:06
啊,打印一句话对吧,当然我们可以用日志的方式去打印啊,用日志的方式去打印对吧?好,那接下来呢,过滤数据,过滤字段。最后呢,我们要做这个分流,要做分流,呃,那过滤的话,我们肯定要对谁过滤啊,对阿尔法的数据做过滤吧。对它做过滤,所以呢,我们先取出来这个数据啊,Value 6.getjsonobject,然后呢是after。这是我们数据本身的data,我们对它要做过滤,对吧,那我们就非。Fill the column。啊,过滤字段好,那首先第一个贝塔要传进去,那大家想我们要过滤的话,还要传什么东西进来。
10:07
我们还要传什么东西进来?字段。定义的表图带没有问题,是不是think columns,对了啊,在table process当中,我们get叫columns啊,主要的就是这两个吧,对吧,主要就是他们两个,好,那接下来呢,我们去把这个方法写一下,好,我们要回车创建我们的这个方法。啊,对,它要做一个过滤的。对吧,对大家做过滤了,好,那这边呢,我们分别把这两个写一下data什么格式啊,这个杰森对吧?哎,这个啊,比方说我们就拿被trademark这张表来说ID对吧,它呢是一个11好啊,然后呢,正常的数据里边有一个TM_name。
11:10
好,假如说是爱的硅谷对吧,好,然后还有一个logo。Logo URL对吧,然后冒号这边呢,随便搞一个值,而那个s column它长什么样子,哎,可能我只要ID和。TM。我只要这个。对吧,我只要它好,呃,那也就是说未来我们返回值应该是什么样子。就是我们整个数据,哎,不是返回值啊,就是这个是过的,我们不需要返回值啊,直接在里边过滤就行了,那最终我们希望它变成什么样子。是不是经过这个处理之后,我们希望这个姿态我就不要了。
12:04
对吧,这个字段呢,就没用了啊,因为我们既然写了think columns写了这两个字段,那么在MY,在我们的那个菲利X里边,那也就是说只有这两个字段吧,那你数据当中第三个字段就多余的,你最后往里写会出问题,所以呢,我们要求只留下这两个字段。啊,这两字段,那这个也比较好处理吧,怎么做啊,就是说我们要对这个数据是不是做遍利便利每一个可以拿出来对吧,ID TM name logo URL,然后呢,把这个变成数组或者变成集合,对吧,把它看一下。在不在里边有没有包含?对不对,思路是不是这样子的,就是说对当前这个数据做便利,然后呢,把它这是字符传啊,当然我们等会会把它变成一个集合,拿这个集合判断当前这个ID。
13:01
这个TM name以及logo URL,每次编历的时候在不在,如果在正常保留,如果不在,把这个字段给他干什么,删掉。对不对。能不能跟上?这块没问题吧,啊,那其实就做这个事情比较简单啊,就思路上比较简单,那下来我们操作一下,首先呢,对它做一个切分,它还是按逗号切分的,对吧,点split按照逗号切分。保存退出这个呢,是。Fail对不对,但是呢,它是数组,呃,我们想一下数组它有这个什么content方法吗?没有,你看直接飘红,那我们想把这个数组变成集合,那怎么来,有同学知道吗?
14:01
我现在想把当前这个数组转成集合。哎,对了啊,看还有很多同学知道的a race。加个优秀的对吧,点as least,把这个fails呢放进去。对吧,卡V,那我们就得到了一个columns。啊,得到了一个。集合。对吧,啊,得到了一个集合啊,这种方式呢,可以得到集合。那接下来我们就要对它做便利了。对吧,对它做遍利便利之后呢,就判断这个K存不存在这个里边呗,对吧,好,那就是呃,那JA森object它这个便利方式啊,其实你把它当做这个map就好了啊,当做map就好了,那这里边呢,照样有这个key set,看见没有这个values对吧?呃,那当然还有这个什么呢,ENT set ENT set。
15:10
对吧,也可以把这个安set变成一个迭代器啊,那迭代器可以做一个便利,对吧?啊是这样子的,好,那while这个迭代器点has next,我们就可以把这个叠加器点next取出来,得到了一个安。啊,得到一个next entry对吧,好,那接下来呢,我们就columns。点content包含什么呢?Next里边的T,好,呃,那这是包含。那这是包含,那我们要做什么?不包含的时候是不是处理掉if,哎,把这个拿进来,这边呢,我们取反对吧,啊不包含也就是说不存在,那我们怎么做呢?我们就要把它处理掉,It read.remove。把当前这个数据给它删掉。
16:02
啊就好了,对吧,啊,就是注意啊,这个取反,当它不存在的时候,我们需要把这个数据这一行数据呢去掉,对吧,当然这边有一个简写啊,一个简写这样啊,我先把它考成C。拿到这来,然后呢,我把它遮掉,我把它遮掉啊,这个是原本的这个好看一点啊呃,然后下来简写的。啊,当然这俩一样的啊,它里面呢,有一个那表式的写法啊,所以我为什么大家也应该能明白,我为什么把这个要保留了,对吧,如果你直接看这个,有时候呢,就是看也能看得懂,Remove if嘛,做一个判断对吧,什么if呢,Next。K,不包含对吧,但是你要自己写比较麻烦,所以呢,我把这个还给大家保留着啊,大家看这个的时候呢,对着这个去看,能够舒服一点对吧?啊能够舒服一点,这个就。大道至简对吧,有一种盖的感觉了啊。
17:03
好,这是过滤字段啊,这是过滤字段。好,那这个就搞定对吧。
我来说两句