00:00
那接下来我们快速的来体验一下,用flink circle来做一个护底的增删改查啊。啊。那首先呢,我们将那个搜狗客户端的显示模式改成table啊,这样就不会占用我们那个前端,一会查询的时候也可以体验一下不同模式的区别啊,Table好了。呃,这个是新的参数是吧,那我们就用新的参数吧,我把这个参数改成新的。好。无所谓啊。看一下现在参数是什么啊,不能直接这么看,没事再设一遍,呃,其实已经生效了,无所谓,我不纠结它,接下来我们看一下快速体验啊,那这个是正常的一个见表语法,那么接下来看这个地方啊,分区正常分区对吧?爬提升的拜啊,这都OK,都正常。另外要注意这个你看啊,就我前面提到了分区字段是不是包含在字段列表里面啊,这跟have有点不一样是吧?啊,一样的写法,那最终跟忽底集成的话,其实我们只要在一个地方,哎,就是connectine,我们指定为whodi就行了,只要将咱们编译的那个who d flink JA包啊,Flink能加载到那就可以啊,那我们是已经放入live下面对吧?啊,所以这个就随时可以用了,接下来有呃,这几个是必须要有的啊。
01:26
那pass是什么?就是护底表的基本路径啊,底表的路径再往下呢?呃,Table tap啊,也就是说咱们是Mo表啊,还是Co表,那如果我们没有指定表类型,它默认是什么?默认就是cow啊。那我们先建这一张表。呃,把这个注释给干掉先,对吧,好。那我想想我们的pass用什么呢?比如说我要去DFS啊个18020啊,咱们之前是不是在TP啊。
02:06
啊,偏僻是吧,偏僻湖底。呃,蝴迪弗link吧。这样子可以吧,那这张表呢,咱们就叫他T1好了。大家注意,我们写的话就写到表明的路径为止啊,表明的路径为止,好,那大家看看字段,就一个UID,一个name,一个age,一个TS,一个partition啊,那关键字用反引号,另外这个是什么组件,那这个其实组件就等于什么呢?这个其实就等于咱们前面一直讲的那个record key,它会把组件,咱们指定的组件当成record key,那组件可以在这里写,是不是也可以在下面写对吧?啊也可以写多个字段嘛,因为你这样写就是一个字段对吧。另外一种写法就是这样啊,我写给你们看看。
03:04
把这个这里在逗号在最后一行是不是。什么什么key,然后括号,比如说我要UID作为那个组件,这个是不是flink的语法对吧?啊,所以这个跟蝴底关系倒不大,这是flink circle语法,也就是说咱们只要指定了组件,那么它就是record key啊好,那这个时候这样子是不是可以写多个,比如说你这样是不是可以指定两个拼起来为一个组件,对吧,联合组件嘛,啊行,那么就用简单的这种方式。来拷贝,然后来建表,来show tables t1对吧,DC,好,DSC,我们能看到它的字段名类型啊,是否允许为now啊,然后呢,组件是UID对吧?啊,有一些拓展的,以它的whatmark行,这个就是简单的一个键表,那么接下来咱们用最粗简单粗暴的方式就是insert into,哎,插入这么一些值,那这些值咱们就简单去放,插进拷贝过去就好了。
04:11
好。诶大家注意看,我们用的是雅安session对吧?搜索客户端连接的是雅安session啊,所以你会发现它这边是向谁啊,向雅安那个集群提交啊,而且已经成功提交,这个时候我们来到这个页面,这个是我们从这点进来的对吧?好,我刷新一下,现在是之前是000对吧,好刷新。那么大家可以看到现在TM是什么一个slot是四个对吧,因为我们提交了一个insert作业啊,我们做了一个insert into。他向三集群提交了一个flink作业啊。好了,应该已经执行完了,对吧,这已经finish,因为我们现在是P色的into,它一下执行完了嘛,它是有界的,对吧?啊,它并不是流逝的。
05:03
啊,不是事实的,那我们虽然执行官也可以来一起看一下啊,看一下一些细节啊,你看他这个right的并行度,大家看一下这flink是不是各个节点呢。呃,这是一个S。对吧?S,然后这个是bucky sa,这个是忽底实现的一个啊,它一个分配啊。然后呢,默认并行度是咱们的弗link并行度就一,但是这个地方它是写死的啊,就是默认给的四啊,这也是为什么一开始我说slot建议改成四对吧,自己玩的时候啊,尽量避免一些资源申请不到啊,雅模式是不存在一个问题,最多就是多申请几个TM嘛,你看他还有一个什么compassion啊compassion compassion分为什么计划阶段还有执行阶段啊。计划完了再去执行啊,那你看它compassion默认也是什么用的四啊行呃,那最终compassion完了去think OK。
06:01
好了,这个是我们的一个作业对吧?好,接下来我来查查询sled from t啊。你看现在是不是没有把整个页面占用掉啊,这种就是我说的显示模式为table,一会我给你们试一下默认的table是什么样啊。那他并不是一下子就查出来啊,因为咱们是Mo。它比它没有那么快啊,啊,那我缩小一点,大家看你看这里显示是不是,如果是TABLE6的话啊,Table模式它这里会显示咱们的操作是什么,加I就表示insert啊,也就是说它读取的时候是一个插入操作啊,那你看ID呢啊UID有这么一些啊,名字有这么一些啊,A级这么一些TS。然后呢,一个partition啊好。那接下来我们来HDFS路径确认一下啊,嗯,在这对吧。
07:04
我们是路径是什么tmp,然后who d flink,诶点进来你看T目录好,到此为止,是不是咱们指定的啊,所以我跟你说那个pass路径要指定到表明这个目录啊,你不要说只指定前面啊,不行啊,那你看一样的,它也是什么点糊底啊,原数据目录啊,跟那个Spark的时候那些构造都一样啊呃,然后接下来是分区目录,你看啊,我们刚才数据是不是有PART1PART2PART3PART4对吧。啊,然后这边也有12344个目录,四个分区,好点进来,那么目前过来的都是什么点log。对吧,点。呃,还记得咱们前面说写的时候啊,我带大家回忆一个地方啊,我想想在哪里啊,数据写吧。
08:01
嗯,我得想一想在哪里咱们有提到说flink的话,就是说它是追加log的方式,还记不记得。嗯,那现在好像是在这个地方吧。哎,就就就比如说这里了啊呃。就是区分log five可不可见。所以。对吧,我们说如果是Spark的布隆,它是不可见对lock不可见索引的啊,所以他会。举这个base fire生成对吧,那么如果可见索引,我们说了可见索引就flink的方式,它是属于可以见索引的,所以它会直接追加到什么log文件啊。如果log文件没有呃,不可追加,他才会去写一个新的base。所以这个地方就是区别了,我们Spark当时跑完直接就是帕回的对吧,MO2表呃,第一次啊,那你看现在flink它还是点啊点。
09:07
嗯。嗯。这插入那查询呢,就是刚才这么查就行了啊莱星,那接下来我就想给你讲讲这个东西啊,这个显示模式为什么要table流啊,那如果默认呢,它有三个配置啊,一个是table,一个是TABLE6 table6就是国外的那作一家大数据可视化的一个产品叫TABLE6,对吧?啊,就按照他们的风格来啊,当然我不确定是不是啊,只不过名字是完全一样的啊,那默认的so client显示模式叫table啊,以前你不注意的话,所以会很别扭啊,我给你试试table啊,好,现在我改成了table,我们在select星。又提交了一个作业给这个这个地方来我们看一下。你看他会再提交一个作业啊,这是查询的一个作业啊。那你看就这么简单啊,它读取的你看body sauce并行度是四啊。
10:05
好,你看这个。你看现在是不是完全占用了。就这样子,你整个控制台,整个渲染都被他占用了。而且它就显示在这,而且它会实时变更的,就是会刷新这个结果,这个结果会实时刷新的啊,你你如果没有刷新,你可以按一下二啊,它就刷新了啊,这种就是说完全占用了,被完全占用掉了,它其实就是不断的刷新,刷一次打印一遍,其实就是这个实现啊,也就是说你看到的结果并没有那个什么加I,还有咱们flink是不是还有什么减U,如果是upset是不是有减U加U啊啊或者是D啊,D就删除I就insert嘛,减U加U就更新嘛。是吧啊,他没有这个op字段了,这种就就直接显示完整的结果,这种是table,但是它要一直占用的啊,按Q退出啊啊,所以我们要改成table里啊,那还有一种flink的circleq客户端显示模式是那个叫什么呢?叫changelo,它一共就这三种啊,你去官网查就知道了啊,全9LO好,那我在select。
11:14
看看这三者的一个区别啊。你看。Change log跟那个table一样,对不对?有什么特点?他把你整个血液全部占用了,但是它多了一个东西。Op po operation,也就你的操作是加I啊还是减U啊,还是加U还是减D对吧?啊,就有这一些显示出来啊,跟那个table一样啊,啊,他就要强制占用,那所以最舒服的,我我个人觉得最舒服了,但每人感觉不一样,还是TABLE6最舒服啊,所以我们还是改为table啊。好,这个是查询数据,那接下来更新怎么更新呢?很简单,直接in色0TWO就可以了啊,直接in色0TWO,为什么呢?因为咱们忽底是什么忽D啊,默认就是upset写入对吧?这个原理跟Spark都一样,只不过计算引擎变了而已啊,它还是upset,我们只需要再插入一条数据,它如果ID相同,它自己是不是就覆盖掉了,相当于说更新了啊,就这样子啊,因为它现在的保存模式是end啊。
12:27
End。嗯。每个写操作都会生成一个什么用时间戳表示的新提交啊。他会查找相同的who d key,这个就是咱们那个primary key,建表的时候指定的primary key啊。而且呢,会对比commit t是吧?好了,那我们先还是先把原来的结果先查出来啊。
13:00
呃,做一个对比嘛,因为刚才被我关掉了,好行,那接下来我们插入一条IDE啊,我们对比一下,这里有一个IDE,呃,丹尼23岁啊,是。一秒的时候,PART1,好,我们对比一下。也就是说年龄变成了27啊。然后呢,时间戳变成时间戳不变怕的一不变,也就是说我们要去修改它的年龄对吧?又试一下,哎,又每次insert都是提交一个flink job啊,应该很快就执行完了,来看一下running job已经完事了,你看insert into。这已经完了。好,那接下来我们来查一下啊,Select新from t。我们看一下,呃,IDE丹尼已经变成了什么,27岁了,27岁,然后呢,这已经更新好了。
14:07
直接覆盖了啊,直接覆盖了。那这个就是快速的一个增删改查。你也可以试试,尝试着去删除啊,删除,如果你以为是delete from,你试试行不行啊,Wherer u u ID等于ID。你看。不支持的查询,也就是说你这个时候是没法直接删掉的啊。对吧,啊,你没你你你没法这么来干啊行。
我来说两句