00:00
好,那接下来呢,我们要使用弗林格CDC读取my circle配置信息表,创建配置流,对吧?那第一步呢,我们正常的导入依赖,然后呢开始写这个代码,但是呢。对于这个我们还真不能这样做。因为啊,我们连表。都还没创建呢,大家想是不是?对吧,我们连那个表压根就没创建,那肯定写不了,那怎么办呢?首先第一步我们得去建表,那见表我们就得想一想。我们字段应该怎么放对吧。这个是flink CDC读取配置信息表,那我们得想一想,这个表里边我们有哪些个字段。对吧,大家觉得需要什么字段来说一说。就是这张配置信息表啊,你要想一想它的功能。
01:03
对吧,然后想一想他应该需要哪些个字段。想一想啊,咱们的配置表。是给主流数据做过滤用的。对吧,那其实最基本的,哎,方总说了对吧,那我们最最基本的。是不是就是这个。表明啊,对吧,啊,那这个没问题吧,对于大家来说肯定第一时间能想到。表明。库表连接地址啊。你在说什么?你看也没好好听课啊。一下没好好听课。怎么的库表?
02:00
连接地址都来了。你要干嘛?啊,杰总,你这边说的是什么?你说的是弗林CDC要传哪些参数什么啊,你知道我问题是什么吗?我说的这个。配置信息表不是说这个代码你要传什么参数,而是一张表里边有哪些个字段。你这听课。不行啊。对吧,杰,总有问题啊,敲打你一下好吧,呃,表明没有问题吧,因为我们总共呢,有这么40多张表,诶,这里边能称为我们的。为表对吧,那你比如说有这个activity in for呀,对吧?呃,这个我们挑大家比较熟悉的CATEGORY123对吧,然后这个province省份trademark品牌啊,当然了,这些东西称为叫为表。
03:07
SKU对吧,他应该把这个表明,就是这个表明肯定要写到我们这个配置表里边,用以过滤对吧,因为我们46张表,但是我们要的这个配置表呢,只有这么十几张。只有十几张。对吧,所以呢,我们肯定要放表明用作过滤啊,那我们想一想还要不要其他的内容呢。我们还要不要其他的内容呢?呃,翔总说列名好,那我们先写上啊,就大家说的呢,我们先写上列名,先写在这儿,那你能不能告诉我,你觉得要放列名?
04:05
什么作用?啊,雷总说感觉不用了,就一个表明就够了。对吧,就一个表明就够了,那小总这边说了要有一个列名,那你告诉我列名干什么用呢。有的人的意见是不需要了,我就一个表明就够了。啊,小总说列明见表用。嗯,好,那我把这个写上来,强总提出了意见,对吧,见表用好,那我们先放这对吧,他觉得见表要用,其他同学呢,怎么说?还有没有?啊,就是你觉得还有没有要用的字段。
05:03
是否是为表好,那这个东西呢,我们也写一下。啊,就是云中所说对吧?哎,他觉得应该再放一个布尔类型的,是否是为表。对吧,啊叫假如说这个字段叫ED。对吧,啊sation啊好,那这个是否是微表。好,那我们放在这儿。啊,那我们考虑一下这个是否是微表云总所说的啊,是否是为表这个东西需不需要呀。云总,或者说你自己再想一想,需不需要有这么一个字段出false。你自己或者想一想其他同学也想一想这个字段是否有必要?
06:07
对,事实表也在blog当中,没问题,那你在想一想吧。就是topic DB里边有46张表。啊,云总呢,我知道你这个字段是什么意思,就是说这个数据。是保留还是删除,我就看这个是true还是false,对吧,是不是这个意思,是的话扣一,如果是处,那我就一,如果是false,那我就是二。对吧,好,那这个功能已经出来了,大家一块儿来想一想,包括云总你自己也想一想,这个东西需不需要。呃,方总说主见,主见是什么意思啊?就你字段你给我来个主见,你你觉得谁要做主键啊,还还是说是什么东西主见就搞一个ID是吗。
07:02
就是冯总你的意思这边搞一个ID是吗?作为主见是是这意思吗,我。我理解的是这样。我不知道你说的是不是这个意思,就是搞前面搞一个12345作为主见。哪哪个列是主键。不是,我我的理解是这样啊,冯总他说的意思呢,可能我要额外再来一个ID,这个列当做主见,是这意思吗?我的理解对还是什么?我,我不知道你突然冒出一个主见是啥意思,因为我们在聊,我我的问题是有哪些列,你突然搞一个主见就就我就有点懵,我只能猜对吧,因为你给了只给了两个字。我就不懂了。然后他又不说话了。还是延迟过高啊,我也不知道啊。其他同学还是想这个问题对吧,啊等等这个方总给我答案好吧,还是想云总提出来这个问题,呃,这个字段,他说作用呢,这个我能体会到,对吧,他说处呢就保留false呢,就不要这个数据过滤嘛,因为本来我们就过滤嘛。
08:12
对吧。那。我们一块儿来想一想,这个字段是否有必要?对吧,煎表用的列明,等会儿呢,我们再讨论好吧。啊,先讨论这个问题,是否是为表这个字段。有没有作用?啊,云总想用它来干嘛,我也推测出来的,然后我问了他,他也说对的,对吧,啊,我跟他说了。
09:01
然后大家觉得呢,这个有没有必要。这个有没有必要?没必要,对了,这个其实没必要啊,为什么,因为因为你想啊,我知道你想要做的事情对吧,是用来过滤,但是它没必要,为什么呢?因为你看啊,你这。有46张表,哎,那你说的像这个事实表什么,呃,All the detail all in for都会传到这个topic DB里边啊,没毛病对吧,你想通过这么一个字段来表示这个表,我到底要还是不要对吧?但是你告诉我咱不有这个吗?咱不是有表明吗?对吧,我的表明写了被trademark。对吧,呃,写了base province。
10:03
那我主流数据来了,我去校验表明我当时说了,如果我来的数据,它的一个表明在。状态里边。啊,在状态里边,那是不是就是表示要表明要需要这个数据啊,要保留啊,如果说在我们的配置信息里边找不到。这张表的任何信息是不是就不需要?那云总。能理解了吗?这个字段。可以不要。对吧,因为只要我表明找到了,我这个数据就保留吧,就是未来我这个配置信息表里边儿,假如说我有十张为表要要用,对吧,那我配置信息表里边儿就有十条数据。对应的十张表的表明对吧,十条数据,哎,那比如说我要abcde。对吧,那我就把abcde写在这儿,那未来呢,我主流去状态里边去拿这个数据,发现AC有,那说明数据我要,哎,我又来了一个什么呢?又来一个FF,发现在状态里边没有,那说明这条数据我不要。
11:15
对吧,我直接通过表明来判断就行了,并不需要额外再搞一个字段,能明白吗?林总,还有其他同学能明白吗?当然,嗯,像班长翔总,还有这个张总,对吧?他们是没有问题的啊,因为他们觉得是不用的。云总,包括其他同学能理解吗?就是当前这个字段可以不要。OK吗?配置表里只会有维表信息,对呀。我们现在就是DM层这个配置信息肯定只给围绕用的呀,对吧。这样就是也就说没问题,他如果配置信息表里边只有。
12:06
啊,我把这粘出来,他说配置信息表里只会有维表信息,没毛病啊,确实只会有维表信息,不会有其他的。配置表读b log,呃,没懂。配置表读blog是什么意思?我们现在要额外搞一张表,表示我们要哪些字段,对吧?还是这意思?哎,风总人呢,说了一句主见,人溜了,我真没懂这个主见是什么意思,好吧。你你要不说话,我把这个删了。我不知道我猜的对不对。我我不懂你,我问大家需要哪些字段。你不说主见,我我只能这样去理解,额外加一个ID作为主键。12345,而风总现在也也不知道去哪了。
13:01
喊了半天都这么久了,你不可能延迟这么高是不是对吧,那我就去掉了。对吧。啊,你想多了是吧,那你早点告诉我呀,我这还等着呢,对吧。啊。我还等着呢。啊,方总又来了一个主见,练什么意思?就是还是讨论,大家觉得啊,来想啊,我们一块儿讨论吧,这个没关系对吧。标明哪个列是主见,那你觉得啊,那反过来我问你,或者大家一起来想一想,在这里边我们应该用什么作为主见呢?我们应该用什么作为主键呢?表明对了呀,对吧,啊,用它作为主键吧,表示唯一性就行了,因为我表这个东西啊。
14:02
在这里边肯定是唯一的吧,你不可能说在一个库里边儿有两个表明完全一样。那不可能。对吧,所以呢,咱们很简单。表明。表明作为主件就够了。对吧,啊。表明作为主见就够了,好,嗯,那还是刚才那个问题,我们想一想,大家其他同学一块来想一想啊。还有没有?字段呢?还有没有字段呢?如果没有了,我们就回过头来讨论这个列名啊。大家觉得不需要了,对吧,我们就来讨论这个。列名啊,我们来讨论这个列名啊,那个之前应该是翔总提出来的,对吧,说建表要用的这个列名。
15:09
啊,看来应该是没有其他的内容了,好,那我们来想一想,如果有其他的,我们再一块来说,OK吧。呃,那也就是说我们目前呢,总结出来就这么两个字段。对吧,这个呢,因为没有必要,我们就不多说了啊,就是表明加这个啊,呃,这个放这吧,放这啊我就不删掉了,因为是大家想的一个内容嘛,然后咱们做了一个解释对吧?呃,这个是必须要的,因为它起到过滤的一个作用。对吧,嗯,那第二个列明。这个小总说见表用,那我们想啊。我们要把这个数据写到。Feeling。那确实在我们数据到菲hoix之前,我们是不是确实先要建表,那我问你,像这种GDVC访问的数据库,如果说。
16:06
表没有,我直接诶往里面写入数据,它是不是会报错呀,大家想。他是不是会报错呀。对不对,他会报这个表不存在吧,啊,他肯定会报错啊,所以呢,确实要在这个要要做建表这件事儿没毛病吧,好,那我们想。呃,那我们新加了一个维表。新增了一个回表,那我们要做什么事呢?假如说我只有它。只有这个没有列名,我不去做什么建表对吧。那么,我能干什么事儿呢?我首先要在这张表里边,比如说我增加了一个AA这张表。那我是不是应该。在配置信息表里边添加一行数据叫A,然后到Phoenix里边干什么事,创建A表。
17:09
有没有毛病,我们是不是应该要做这两件事儿,对吧,然后呢,你生产环境当中来了A表的数据。他能够找到他自己的配置信息,同时他写到Phoenix也有自己的表,这个有没有问题,我们有两步操作,一。二啊,但是这两个操作不分先后,都必须在我数据到来之前,你应该把这个事做完。这个有没有问题?啊,没有问题,扣一。咱是不是应该要做两个操作。一方面要添加配置信息,另外一方面要到Phoenix里边去创建。
18:05
维度表。啊。这张表配置表手动维护吗?新增为表后手动再配置表新增记录肯定是手动维护啊,这张表还能自动吗?对吧。就是你代码已经是自动了,你配置信息你肯定手动添加呀。这还能自动添加吗?那不可能啊,那系统怎么知道你新加的表到底是尾表还是什么表啊?对吧,这肯定是手动啊,你你总得做点事儿吧。对不对啊,你不能想着我们这些代码写完了,你什么都不用管了,那怎么可能呢?你肯定要有人维护啊,对吧,他不可能添加自己添加一张表,假如说你里面来这表,来了一张表,他也不知道你是为表还是实时表,他怎么知道要不要加呢,对吧?所以这个肯定是人为的去添加的啊,人为添加的。
19:00
好,那我们所说的做两件事儿,大家没毛病吧,啊,那既然这样的话。那我们想一想,翔总说的这个有没有道理,他说你把这个列名也写到这个配置信息里边,然后呢在代码里边去建表,那这样有一个好处就在于什么呢?当我们。未来要增加一个为表的时候。对吧,要增加一张尾表的时候,我们只需要。手动添加一个配置信息就够了,第二件事不做了,在代码里边我们去实现这个功能。对吧,啊嗯,表还得见,但是呢。我在代码里面去写这个逻辑。你就不用手动做两件事儿了,是不是我们未来手动做的事情越少越好啊,就是你的干预,对于代码的干预越少越好吧。
20:03
对吧,因为你手动做的事情,如果太多,步骤12345,你漏一步。是不是就容易出问题啊,或者哪一步做错了,是不是都容易出问题啊,所以我们应该手动维护,这个没问题,但是呢,我们代码启动以后,是不是我们能去操作的东西让它越少越好,大家觉得呢?就是我希望把这一两一步两步对吧,把它合并起来,我只维护配置信息表,哎,当他读到配置信息以后,他自己去干什么事儿了。见表。如果有这个功能是不是就好了。对不对。能理解吗?就是说这边列明其实确实也可以,不要我有一个表明,是不是就足以完成我们的功能了。
21:09
对吧,有一个表明就足以完成我们的功能了,那我们再加上这个列名,把建表操作也交给这个代码,那未来我们所需要维护的是不是只有一个配置信息表,其他的我都不再管了。对吧。这样会更好一些,因为你认为的干预的参与的操作越少,他就越不容易出问题,对吧,你要参与的过程太多了。你可能漏步骤,或者说步骤顺序,假如说步骤顺序有要求,哎,步骤顺序错了。或者哪一步做的有问题,都会导致整个程序出问题,对吧,那我们希望诶把建表操作也交给他。那这是最好的。
22:00
对吧。这个还有没有问题啊,目前来说只有三个同学扣一了,对吧。其他同学呢,能理解我说的意思吗?就是这个东西你可以不要,就是说对于这张表而言,其实这一个字段就够了。这一个字段就够了,对吧,就能够完成我们的功能了,但是我希望能够更好的去完成功能,相当于我把列名放进来是一个。优化。能理解吧,啊,是这样的一个意思,好,那既然我们要在里面建表,那光有列名可不够,对吧?所以呢,我们的字段应该是这些,第一个表明叫S。Table。然后。Sing the table。啊,Think table啊,这个什么呢?这个就是我们主表主流里边的表明啊,这个是。
23:04
Penix的表明,因为你要建表啊,你建表光有字段可不够,是不是得有表明啊,因为我们说了把建表操作放在代码里边,你光传字段可不够是吧,那一该刚才想到了,哎,你这边说过了,说什么呢?你这个DM层为表的命名规范是DM下划线加表明,那我有这个字段那不就够了吗?对吧,我拼接一下think table不就有了吗?可以。可以对吧,那那相当于你未来你的DM层只能是这样的命名方式了。就不灵活,那我这个东西我自己传一个字段进来,是不是更灵活一点,大家能懂我的意思吗?就是说呃,我不要这个,假如说我不要think table,对吧?好,这张表呢是A,我自己呢,我拼接一个DM_A。作为我们的Phoenix的表明对吧,那如果说我加了这个字段,我是不是会更灵活一点。
24:06
对吧,我可以取哎AAA。能理解这个意思吧,啊就是呃,这个原表对吧,这think table,这个是Phoenix的表明。啊,菲斯的表明,好,那columns columns列名对吧?好,那除此之外还有。啊,叫SPK。逐渐。因为你要知道,在Phoenix里面建表peni斯是依赖于h base的,而h base斯任何一张表一定有r key。对吧,所以pix这个表呢,它一定有主见,那我们加一个主见啊,因为我们既然要做见表了,你就不能说就给一个列名就完了,你得把东西补全了,对吧?好,还有最后一个字段啊,还是为了建表用的,叫什么呢?S extend。
25:06
扩展字段。啊,扩展字段这个干什么事的呢?比如说my circle的建表语句对吧,我们经常写了a create,比如说啊,Create table a括号对吧,然后ID water。啊255,然后呢,给一个primary key。然后逗号,然后name对吧,然后我。好,呃,我们建表语句可以是这样对吧?呃,大家有没有见过类似于这样子的,后面呢,再。就是指定引擎为N的DB还是?MYI是不是还可以再额外指定一些信息啊?有见过这样的电表吧,对吧,我们常规的可能我们自己写呢,经常写的这种其他的内容呢,都用默认值,但实际上我们能不能修改它的一个。
26:07
表引擎对吧?有in the DB,有my item,或者说改它的一个字符集排序方式。对吧,是不是都可以在后面追加一些内容啊。签表语句可不只是到这儿就结束了啊,也就是说建表语句呢,它可能还会有一些额外的信息,对吧?这是my circle,那对于我们的Phoenix呢,同理。Phoenix咱们也可以加一些。额外的信息,比如说我们创建率分区表。对吧,那h base呢,你默认建表直接建它是一个分区,它只有一个分区。好,那你未来就自动做分区,那我们呢,建表的时候就可以让它有多个分区,对吧,我们要做预分区,那预分区的信息就是写在这个后面,那我们就加一个叫扩展字段。
27:07
啊,加一个扩展姿态能理解吗?这块。对吧,既然我们提到了,希望在这个里边去见表。那么我们就工作就要做全了,你不能只给一个。对吧,啊,那你把见表所有的参数都得给上。啊,都得给上对吧,好,这是我们的内容。好,那我们把每一个作用可以稍微的去写一写。啊,稍微写一写啊好,第一个s table,这个是主流中数据表明对吧,这个呢是Phoenix。中的为表表明,为表表明对吧?这个见表使用的字段里,好,这是一个功能,还有一个功能,我告诉你这个东西我为什么要写功能,因为它还有一个对吧?嗯,我们先把这写完,线表启用的主见。
28:23
啊,建表使用的扩展出单对吧,目前来说我们知道这些,但是我告诉你这个columns还有一个作用,什么作用呢?你比如说啊,我们就拿这个贝trade bug为例。对吧,因为我们知道在我们的表里边呢,有。字段比较多对吧,有的表字段很多,比如说这个三个字段好像也不是很多,对吧?啊但是呢,我们看啊,作为一个尾表。最后一个叫logo URL。Logo ul什么东西呢?它的一个标签的一个地址。
29:04
对吧,标签那个地址,那这个东西呢,对于我们数据分析,大家觉得有没有用。大家觉得它有没有用?这玩意儿有没有用?很明显。他没用吧。对吧,很明显他没用好,那未来既然你没用,我不需要写出去,好那我的字段呢,是不是我写的就是什么,哎,可能我只写两个,一个ID对吧,我只写一个ID,然后加一个TM内部出去。对吧,我logo要我不写出去,那你见表是不是建两个字段的表,但是。你按照这两个字段见表,但是主流数据呢,它是不是会读三个字段的数据啊,那就会有问题了,什么问题啊,你主流里边是三个字段,你的Phoenix表呢,是两个字段,最后往里写,这个能写进去吗?
30:15
你你最后写,So,你肯定是占位符。对吧,占位符给占位符赋值,你这个个数不一样,能写出去吗。是不是写不出去呀,对吧,所以你告诉我这玩意儿还有一个什么作用。这个东西它还有一个什么作用。嗯。除了建表,要用的字段放在这里边,它还有什么作用?过滤字段,对了,过滤主流数据字段啊,没毛病对吧,那我主流数据来了,我是不是可以根据这个字段把那个logo URL我给他干掉。
31:09
好,你把主流数据干掉一个字段,那是不是我们。线表语句跟主流数据字段一定是统一的,有没有毛病?对不对,这样是不是就好了。能理解吧,对吧,所以它呢有两个作用在。配置信息这边要见表,在主流这边要过滤对吧,哎,两边都要用这这个字段,好好,那这是我们点点。同吧啊。把这个。
我来说两句