00:00
啊,那这个里面呢,有一个table process这张表,当然了要加上我们的库名对吧?啊,直接说了点啊,加上库名啊,只有这个定下来之后,我们这里边才好写,才能够去做分析,我们应该写什么东西,对吧?呃,那好,那我们思考一下,大家觉得啊,大家报这张表里边应该有哪些字段。啊,就关于这张表的字段的问题,大家想一下啊。我们应该有哪些字段?啊,你想一想。大家可以把自己认为的字段敲在这个公屏上面。啊,然后呢,我把这个写下来。就是我们这个配置信息表应该有哪些字段来完成我们当前的这个分流的功能。
01:01
表明策略。表明好,第一个表明一定要有对吧?啊那so。这是第一个。呃,还有呢。从哪来的表操作类型,OK,有提到了操作类型type吧,Op type对吧,好,他呢要一下啊,因为这个点大家能不能明白为什么我们要table。我们为什么要type?能不能明白一个一个的来讨论啊,表明肯定要有,因为我要根据表明来分流啊,对吧,到底输出到哪,肯定要表明要有的,呃,太为什么要有。
02:01
对了,我们之前就提到了,新增和变化的数据,我们可能要放在不同的位置,对吧,所以呢,Typeb就是用来区分新增和变化的数据,对吧?啊好,那接下来,呃,有同学说了,表明操作输出到的主题,也就是说。太对不对。输出类型,那这个呢,到底你要输出还是卡夫卡。对吧,啊卡不卡,嗯,有同学说了topic明表明啊,那我知道了,这个地方呢,应该是一个think table。对吧,所谓的think table呢,指的是如果你这个地方,比方说我举个例子,这边我们写的是贝。好。被帽太呢,是银色的。银色的好,Think table呢,比方说是这个table,那这个是什么东西,Think table那就是DM。
03:11
这个被mark对吧,应该是他啊,那如果说我们是一个事实表呢,All in呢。On in for呢,对吧,这个我就不写了,叉叉啊,这个就短一点啊,In for数据银色的。好,那这个呢,是卡夫卡。对吧,写到这个卡普卡里边好,那它呢应该是DWD。小X,是不是这样对吧,所以这个think table呢,它指的是如果你是at的话,那么就是维度表的Phoenix的表明对吧,那如果说我们这个地方是卡夫卡。如果是卡不卡,那么这个地方呢,就是主题对吧,这个是注意啊Phoenix表明表明,那我们用一个字段来搞定是不是就可以了,这个呢是主题名,这个有问题吗?到目前为止这四个字段有没有问题?
04:12
到目前为止,这四个字段有没有问题啊?没有问题吧,我们很显然能想象到这些事情嘛,对吧?啊,但这是基本的,你要写配置文件,因为我们接下来要做的事情就是根据配置信息要将主流当中的每一张表要发送到不同的地方,至于你是维度表还是主题,对吧,是不是根据这个来的啊,同时type呢,因为我说过,对于。有的表,我们可能这个新增和变化的数据发到不同的地方,对吧,所以呢,我们也要加一个type,也要加一个type,而且大家注意这个表如果说要设置主键的话,应该按谁来作为主键。
05:00
如果说我们要做主键,那大家想一下,我们要按谁做主键。池总说。表明。啊,王总也说表明,向总说这个表明加操作类型。那到底是表明还是表明加操作类型呢?Table。Single table作为主线。表明输出类型。表明加输出类型加这个,有的人说表明加他。有的人说,单独的表明。那首先你要想一个问题啊,就是说这个东西未来是不是要给这个主流数据去获取啊。
06:05
主流数据是不是得根据这个去查呀,那我为什么要主要问大家这个主键是谁呢?因为你看啊,这个地方是一个map c的吧,所谓的主键未来是不是就作为T的,而value呢,是不是整行数据啊。这一块能理解吗?我们要把这个map c啊,它的key呢,呃,跟表当中的主键要一致,Value对吧,Value。是不是就是一行数据啊。这个没问题吧,因为我们要写到状态里边,更重要的给主流去查呀。给主流去查吧,主流能根据这个K能找到我唯一的一条数据,对不对,所以我们要求这边呢,要主建好,那在想我们应该拿谁作为主见。
07:00
孙总说s table加ta加c table。那我问你。我刚才说的不白说了吗?我说主流要根据这个主见,也就是说这个K去获取一行数据,那你告诉我主流当中有s table吗?主流当中有没有think table,那我们作为主键的字段,也就是说这个这个地方作为key的,我们要不要所有的字段都应该在主流当中得有啊,我们才能根据这个key获取吧,那你要加一个think table,我主流当中没有,那我主流怎么能拿到这个数据呢?对吧。啊,那有很多同学说的是根据表明表明,光有表明不行啊,我说过这个地方很有可能还有这个数据吧。
08:00
我们说过了,在这个里边一张表,可能新增及变化的数据,我们分两个不同的主题来放,那根据表明,作为主见的同学,是不是这种方式就不行了?对吧,是不是就不行了呀。没问题吧,所以组件应该是谁呀。表明加。操作类型吧。对吧,这两个加起来作为一个联合组件有没有问题。一步一步的啊,跟上思路。OK吗?关于这块的东西。没得问题对吧,好。
09:00
那这个呢,其实就能够帮助我们去做分流了,但是我还要在里边加几个字段。啊,加几个字段,加什么字段呢?比方说你看啊,哎呃,对于卡夫卡呢,还好这个主题,反正你给了名字,它反正会怎么样自动创建。它会自动创建。对吧,它会自动创建这样啊,大家以后没有问题的都扣个一好吧,一表示了解啊,因为有的同学一,有的同学二,那我也搞清楚了以后没有问题都是一就没有问题理解了,对吧啊等等的这些情况全部用一啊,全部用一表示有异常的,有不理解的,或者什么东西都用二好吧,统一一下啊,统一下,因为有的同学一表示确定,二表示没有对吧,一是二否嘛,有的同学是这样理解的,对吧,我们统一的都是一一表示了解了没问题对吧?就这些东西是OK的一个状态,一表示OK的一个状态,对吧?二或者其他的啊,都表示不OK啊,或者有疑问啊,或者什么情况都可以啊行,那接下来呢看啊,我们继续聊这个事情,什么事呢?
10:14
这个地方。我们有这个主题,那如果说往卡不卡去写没有问题。对吧,没有问题,因为卡不卡这个主题呢,会自动创建,那就是说自动创建的一个分区,一个副本,这个可以改,在我们的搜点当中可以改。啊,可以去做这个修改对吧,你改一下它默认的分区数跟副本数就不一样了啊,可以做一个修改对吧?好,那接下来的事情呢,但是。菲尼克斯的表它能够自动创建吗?大家想一下,我往菲尼克斯去写数据,这个表它能自动创建吗?
11:01
单能不能?对,他是不能的,对吧,呃呃,不能八啊,自信一点,自信一点,把那个八去了对吧,钟总啊,把那个八去了是不是啊,就是不能,那这个我插入一张数据,你就给我接个表,那还行对吧?所以菲尼克斯的表呢,一定要先去创建,那就跟刚才我们所说的这个。什么事呢,就是跟我们所说的那个叫。用。周期性读取的方式一样了,你得确定在数据来之前,你要把表建好,对吧,要不然不有问题了吗?数据来了,表还没建好,你数据插入不就失败了吗?任务就挂掉对不对?好所以呢,既然这种情况,我们就干一个什么事呢?我们在任务里边自己添加一个代码,让你增加一个H表的时候呢,我们让它自动创建这张表。
12:06
啊,我们让它自动创建表,哎,不要我们手动去建表了,因为手动建表啊不好。对吧,啊,有可能你见的晚了,导致这个数据怎么样啊。没进来啊,没进来是小事,你任务会挂掉,因为你表不存在,我往里写的时候,它会抛异常的挂掉呀,对吧,除非你把这个异常抓了走了,那这个数据就丢了对吧,所以很简单,我们就让它自动建表,那为了自动建表,我要加几个字段,第一个。一个卡。也就是说,我们的表的字段你得告诉我。对吧,啊,就是说要有哪个字段对吧,建表语句好,那接下来还有一个逐键PK。PK啊,就主键是谁,因为在菲利见表的时候一定要有主键的。对吧,因为非那个词它是存储到h base里边的。
13:04
好,自带一个rie,注意rookie并不是我们指定的,不是我们添加的,对吧,它自己就带一个,所有的表都应该有这个。Rookie,所以在菲尼克斯当中所有的表达都应该有那个主见啊,好,那接下来还有一个extend。那这个是干什么用的呢?比方说我们在建买S表的时候,大家往往看到在后面create。Table对吧,括号。括号,然后呢,正常的你分号就结束了,但实际上有时候我们是不是这还得写一些东西。对吧,指定编码集,指定字符集,然后指定我们的引擎。对吧,所以在菲尼克斯里面建表的时候一样,我们也可以通过扩展字段来指定要不要做分区表,要要做预分区,对吧?能理解吗?关于这三个字段O不OK。
14:07
能不能行这三个字段。它的作用。啊,我相信大家是没有问题的,对吧,这块比较简单,但是呢,你自己想可能比较难想啊,因为所以我没有去追着去问了,我只是问了,但是这几个字段是不是我们如果要做这个事情一定能想到的呀,对吧,你多花一点时间一定能想明白,你要完成这个业务一定是需要这几个字段的。毋庸置疑对吧,那另外这三个字段呢,是为了见表,当然这三个字段其实可以不要,那你就自己去见表嘛,对吧,手动建表这种方式是可以的,对吧,但是我们希望它可以自动见表啊,可以自动见表对吧,在这里边自动见表那。我们以后只需要维护这个配置表就够了,其他东西我们就不用操心了。
15:01
所有的事情都不用操心了,对吧,我们要做的是这样的一个事情,好,这就是我们所说的一个兼表啊,那这个表呢,当然也不需要大家去做这个事了。啊,动态分流对吧,动态分流的,为了写这个内容,所以我们先要导入这个依赖,我们看一下啊,第一个long book啊long bookook,第二个。Connect的GDPC,因为最终呢,我们要跟这个Phoenix打交道,对吧,通过GDPC的方式啊,所以呢,我们再把这个三个依赖先导进来。到这个地方我就往后添加啊,我就继续往后追加,在这个地方对吧。好,这是第一个依赖啊,也没什么好说的,这三个依赖呢,也比较熟啊,接下来我们去创建这个库啊,我们就注意啊,这个里边还是一样的,我统一命名叫2021,但是呢,实际上我们这个名字呢,得改一下对吧?啊,那在这边我们再来建一个库。
16:00
新建数据库啊,然后呢,这个库呢,我们取个名字叫G。杠210325杠。也就相当于是我们大数据的数据库对吧?好,那接下来呢,我们用UTF杠八,接下来是generic,好,那这个库就搞定了,接下来我们的建表啊,见表。电表呢,在这块刚才我们分析了这个字段,我们看一下啊,首先第一个source table来源表。对吧,就是说这个是主表表明。主表的表,主流的表明对吧,就是那46张表的表明,好op type,操作类型音色的update delete啊,但是delete的数据其实没有对,因为我们过滤掉了对吧,好think table到底是输出到还是卡卡好think table。Think table,对吧?输出的表或者是主题,那如果是的话就是表,如果是卡夫卡的话就是主题,对吧?接下来还有think columns。
17:06
输出字段啊,也就给我们建表去用的啊,建表用的当然它有两个作用啊,它有两个作用,一个是建表的时候,我们要根据这个字段来见表,第二个他还要把主流的数据做一个过滤啊,他还要需要对这个主流数据做过滤,那为什么呢?你比方说啊,我给他举个例子。贝,Trademark,好,我think column里边,我在菲尼克斯接表的时候,我准备只接这两个字段。我准备只见这两个字段对吧,好,但是主流数据读过来的是不是有这三个字段。那我最终往菲那斯写的时候是不是有问题了,字段是不是多一个,因为往里写的时候肯定要用到这个circle语句问号问号问号填充符吧,对吧,四个当中两个问号以填充编利字段编立出来三个。是不是就有问题了?
18:00
对吧,所以在这个内容呢,我们要有两个作用,第一它是见表,第二根据这个字段,我们还要对主流数据做一个过滤,那你见表见的是两个字段,那我过滤出来,最后我主流数据也保留两个字段。能听懂吗?能不能听懂?这个应该没问题吧,对吧,所以要保证一样啊,所以呢,它对于主流数据呢,还要做一个过滤,好那接下来think PK主件对吧,这个我们也说了,扩展字段extend扩展字段对吧?好之后呢,主键注意看啊,主件我们用的是什么,Source table加oper。啊,加上operator type加上op ta啊最后呢,你看这个就属于扩展字段对吧,那我菲那斯里边也有可能有这些扩展字段呀,对吧?所以呢,最后加了一个见表的扩展啊,建表语句的扩展啊,那这个字段呢,我们是一点一点分析的,我并没有说直接把这个表搂过来。
19:13
再一个一个解释,而是带着大家自己去思考,如果说你在工程当中设计这种内容,你应该从哪些方面,对吧,他所必要的字段有哪些东西啊,带着大家思考的行,那这张表呢,我就把这个建立一下啊,这个时候我就不用敲这个建表语句了,对吧,直接把它拿过来。然后呢,运行。好,这边呢,我们去这个库当中去看一下啊,刷新好我们的表呢,就有了叫table process。对吧,我们的表呢,就搞定了啊就搞定了。好,这是我们的简表语句,好,那接下来呢,为了后续,你想想看啊,我们这个是。配置流读过来形成广播流,这个数据呢,最终要给主流用,那为了主流好用,我是不是对这张表做一个招聘的映射更好一点,大家想。
20:09
对吧,这张表数据读过来之后,我把它映射成为一个Java b。啊,把它映射成为一个招聘对象,那主流拿到招聘之后是不是好做一些,对吧?啊,那所以呢,我把这个也一并做了啊一并做了,那就是说这个招聘呢,我们叫table process。啊,做了一个招并,因为这样的话就好处理一点啊,在这个并包下,终于并包下迎来了他自己第一个类的啊,那后面呢会很多啊,我们可能有几十个装币,那我把这个呢拿一下。呃,那一一对应的啊,但是这里面呢,我们加了think table啊,这个做判断用做判断用,那主要的字段就这个这么七个字段对吧?好这个就搞定,嗯,那接下来呢,我们继续啊,继续把一个事体完成,那大家告诉我这个地方PV分别是什么。
21:05
哎。我们把接标语句等等这些东西都搞定了,那这个KV是什么?Three table process。啊,Three process没有问题,好,Table process我知道了,Three里边存的是什么东西,能不能具体说一说?这个4G存的是什么东西?能不能说一说?告诉我这个当中存的东西。对了,主键啊,有同学说了,主件就是我们的联合主件点加操作类型,那这样的话我们主流是不是就可以根据表明加操作类型获取到table process,拿到唯一的一行配置信息啊。
22:14
对吧,那这样的话,后续数据是不是就有的处理了啊,大家没有问题啊,这个地方呢用的是string,然后这个地方呢,用的是table process。啊,叫table没有问题。对吧,好,那接下来这个当中还要其他的参数我们加一下啊,因为刚才我们这块报错嘛,对吧,好,其他参数我们看一下,首先一个名字。啊来看啊,第一个名字,第二个K的类型,Y类型,这个很简单对吧,名字随便取一个啊,那这边呢,叫map state。好的类型string.class value的类型叫table process.class。对吧,好,那这个呢,我可以给他拿到前面来,拿到这来啊,这个呢就可以不要了,后面就不要。
23:01
对吧,那在这种情况来说呢,我们就搞定。啊,我们就搞定了这个东西对吧?啊,那这块呢,是我们整个的一个煎饼,同时把这个,呃,其他刚才有问题的一个点呢,把它处理了一下。
我来说两句