00:02
好,那接下来呢,我们要完成这一步操作。来写到Phoenix里边。啊,那我们怎么写呢?大家有没有什么想法?啊,有没有什么想法,就是这个东西呢,我们肯定要用一个点I think。给它写出去吧,啊,要用I think的方式给它写出去。那咱们怎么写呢?嗯。我们之前在学习的时候,是不是学过一个JDBC,大家还记得吗?因为我们Phoenix是不是通过JDBC去访问的呀。对吧,Think还记得吗?记得的给我扣一啊。
01:05
还记得的,给我扣个一。还记得是吧?啊,有可能有的同学已经忘了啊,那没关系,等会呢,我们可以一块来回顾,一块来看一下啊,这个东西应该怎么写,那我们Phoenix它就是通过GDBC的方式来访问,而flink当中呢,它本身就提供了一个这样的一个连接器。啊,本身就提供了一个这样的连接器,嗯,JD ABC think。啊,它本身就提供了这样的一个联系,所以呢,咱们就想诶可以用吧,对吧,来我们来看一下啊弗Li啊,当然有很多同学忘了,那没关系,我们一块来看一下,哎,看怎么用对吧?呃,而且要看一下能不能用,万一他用不了呢。
02:03
好,那我们打开一下,但是这个。网速可能会受到影响啊呃,这边还没有加载完成啊,我们稍微等一下。点开到我们的文档吗?你看现在还没有加载完成,我点不开啊,我已经点了,那我们就稍微等一下。啊,切到我们的文档里边,找到我们所需要的这个JDBC的一个S啊。这个好慢呀,应该是开着这个直播对吧,还会比较吃这个网速啊。我这边呢,一直用的都是。还用的是无线网。也没有插网线,我因为我这个房间里边。嗯,当然那个口我没开,我开了另外两个口啊,另外一个房间和厅里面的我开了。
03:01
但是这个口没看,弗林格最近已经出到01:15了,对吧。所以它这个显示最新的,但是呢,我们还是看01:13的那个文档。呃,我把这个呢,换成01:13啊,你要看咱们当前的,因为他可能01:15有所改变嘛,对吧?啊,那我们用的是01:13,你拿01:15的文档去学习,那可能会出问题,因为01:15可能增加了功能,然后你用,诶说用不了,哎这官方文档写错了,那不能说人家写错了,因为咱们的版本是13,人家文档你看的是15的文档,那可能会出现这样问题,人家。版本更新了,增加了功能,那肯定可以对吧?好,那我们直接点到这个连接器啊,看这个data STEM连接器啊,因为我们现在是零嘛,对吧?啊data STEM连接器里边呢,就有一个JDBC啊,就一个它啊点开。点开后以后我们可以看一下啊,这里边确实就是一个think对吧,它叫JD bc think.think诶调用这个方法呢,去获取我们的think,诶刚好对吧?啊那我们来看一下它里边怎么写的,下面呢,有这个示例代码在这儿。
04:13
在这个位置对吧?首先呢,它在这创建了一个流对吧?这个流里边呢,嗯,From elements,从一个集合当中去创建啊然后呢,啊,Book book输对吧,然后呢,ID吧,然后书名吧,应该是呃,作者对吧,作者以及年份对吧,哪一年的好,呃,那我们看一下它是怎么做的,它这样子,然后呢,这是我们的流,相当于我们刚才看到的dim DS。叫他。对吧,我们一个流啊,它呢是从基础上念啊,它演示示例嘛,然后接下来呢,它干什么事,叫I think,哎刚好跟我们一样,我们要去I think,好它直接调用简单啊叫JDBC s.S。调用好里边呢,传这么四个参数,第一个传一个思语句对吧,第二个这个是干什么事的。
05:02
啊来看啊,它三个语句里边是不是有这个四个问号。看见没,这个就叫做占位符。对吧,它呢是占位符啊,有这么四个问号作为我们的占位符,OK吧,好啊,那接下来呢,看它这里边刚好有四个,干什么事呢?这个statement给编译之后的一个结果,然后book,这就一行一行的数据啊,就对于每一行数据而言呢,我们要把里边内容给这个占位符赋值。对吧,所以呢,1234哎,刚好对应的四个问号,把这个ID对吧,你看啊,书里边有第一个ID嘛,我们说了啊,ID对吧,呃,T说明啊,然后呢,Also作者年份发行的一个年份对吧,分别付给这四个问号,然后呢,写进去啊IN4INTO Books对吧?好,那这个呢,第二个是给占位符赋值,第二参数,第三个参数我们看一下啊叫JD bc execution options。
06:02
点build,诶,它是一个静态这类对吧,构造者设计模式啊,然后呢。With bad with Bach interval Ms,对吧?诶,毫秒数,然后最大的重试次数,这是什么?这个是批量提交参数。对吧,可以做批量提交啊,因为你每一条都数据往外提交,可能这个效率就比较低啊,但是呢,我也不能光看这个大小,那万一你给1000条,我到凌晨的时候。我数据量特别小,我不到1000条怎么办呢?对吧,那就有问题了啊,所以呢,还同时给了一个。时间200毫秒啊,就是任意条件满足。触发一次写对吧,嗯,达到1000条可以,如果说没达到1000条,但是到200毫秒了,可以也可以写一次,对吧?好,这是批量提交,那最后一个参数我们熟悉难看啊,Ul drive name user name password,好这个东西。那不就是连接参数吗?是不是这就是我们的连接参数对吧?哎,你要给定这个连接参数,这个也还好啊,而且呢,我们访问Phoenix的时候,这两个东西呢,不用给。
07:10
你就给他就行了,对吧,驱道名称加这个urr啊,我们那个地址,诶看上去呢,嗯,能用啊,对吧,也挺好用的,也很简单对吧,我们分析完之后呢,嗯,我们就简单去写一写,好呃,那他告诉我还有刚大家问题啊来想我们接下来思考这用呢,我们也搞定了,其实它比较简单,很好用,对吧,也不难,不复杂,就模仿着这个来写就行了,但是关键问题在于我们当前这个需求,它到底能不能用这个。对吧,我们当前的这个需求,他到底能不能用这个。啊,如果可以用对吧,那我们想一想,我们这个地方应该怎么写呢。对吧,那这个参数这个参数都好写,因为这个固定的对吧,这个呢,批量提交我们可以给一个值啊大不了你不想写死你,你你传进来吧,随便对吧,你每一次调用的时候,你可以传一个进来,对吧,好。
08:14
张业福,赋值那肯定要依赖于这个circle对吧,所以它俩呢是一个整体。就是你四个里边有几个占位符,那我这儿就要写几个。对吧,好,那你告诉我。Circle怎么写?或者说有没有办法写对于我们这个需求。我应该怎么写?思考一下这个问题,对吧,我应该怎么写这个circle,就是比如说我这边呢,调用了JDBC.s。对吧,JVC s.S啊,然后呢,我要第一个参数传一个。So语句,那有没有同学告诉我,我这个当前这个需求,我这个搜语句应该怎么写?嗯。
09:01
啊,想一想。啊,我应该怎么写。循环。这个circle还能循环呀。怎么怎么写循环呀,这么高端吗?能不能说具体一点啊,翔总这边说循环。表明和字段使用变量。嗯,使用什么变量,怎怎么怎么写这个变量。就是写占位符是吗?写问号是吗?你只能写问号呀,你你你怎么写变量啊。
10:01
是是是写占位符是吧。因为。将列名按照逗号切分,然后循环拼接好。好,问题来了。注意啊。这个东西是你在数据来之前你就得有。你能懂吗?翔总所说按照列名分割对吧,然后呢,循环拼接,拼接这个circle那是什么?那是你数据先来,再有circle。现在你如果用这种方式,你得怎么做,你得先有S,就是你得把so写了,这是什么意思呢?比如说在这边对吧,我要调用JD bc think对吧,点think好,你这你告诉我怎么写,这个地方怎么循环呀。哪有数据呀。是你要先给定这个circle,然后再来数据相等,注意啊,不要错了,你这种方式呢是什么。
11:06
对,他在哪啊,他在数据里边,翔总所说呢,就把数据拿过来,然后呢去写circle,不行,你得先给circle。你想是不是我得先给so数据才会来?他不是说数据来在前,你这个地方怎么调用数据啊,哪有数据调用啊,对吧,你给一个双引号拼接一个字符站,你怎么你怎么拿这个数据拼接呢。对吧,好,那一个很简单的方式。对啊,主要的问题呢,倒不是表明和这个字段,那这些东西呢,大不了我都用问号,关键的问题在于你问号写几个呢。啊。关键的问题是不是你问号到底写几个呢?你能告诉我吗?就是你我我允许你啊,假如说允许你这个地方写问号,这都写问号对吧,你在这个地方都能给复制上没有问题,因为我们前面已经将这个表明是不传过来的,大家看啊。
12:16
在这个位置。呃,我看啊在。往上翻一遍吧,应该是process element在啊,哎,这是广播check table不知道啊,应该在这对吧,你看啊,我们在这个位置把表明确实传进来了,对吧?好,你既然传进来了,那我能不能把这个位置也写个问号,然后呢,在这里边用数据给这个赋值啊,包括这个列名。对吧,然后呢,我去给它赋值啊,给占位赋值,这个没有问题,好呃,那这一类东西呢,我都用问号啊,都用问号没有问题对吧,但是现在有一个。其他的问题出现了。就是你字段可以不写死,表明可以不写死。
13:04
但是有个什么问题啊。数量。对吧?那你到底写几个问号呢?是吧,你表明一个是固定的,没有问题,好,你有三个列。一个三个列,这边就三个冒号,那就是七个,你有四个列这一个,这四个,这四个,那你就是九个。能明白吗?就是说这里边儿呢,我们是想写这个色。但是它表明就是我们问题出在哪儿啊,是不是当前。这个流。它不止一张表的数据啊。这个流里边是不是有我们所有的。维度表的数据啊,对吧,那你能保证每一个维度表它的。字段的个数一样吗?那怎么可能?
14:03
对吧,那有的两个,有的三个,有的五个,有的十个。都不一样。那你占位符是不是没法写?就算你想用,都用占位符。个数不定,咱们是不是也没办法写啊。对不对,对吧,啊,所以呢,海面这个地方呢,还真不行。啊,还真不行,用这个什么所谓的叫我们想要用JD bc think对吧,诶我们想听,哎他人呢,确实有这个东西。啊,挺好的对吧,啊,那换句话说这个JDBCS,你给我总结一下它呢,适合什么场景。我们官方提供的这个JDBC,它适合什么场景?啊,它适合什么场景告诉我。
15:08
就是。已知道表的信息。就是它更适合的是往单表里面去写吧。啊,固定的表已知数据啊,就是它适合的是什么,往单表里边写入,大家能明白这个意思吗?对吧,啊,你要多表那就不合适了,因为你多张表,你肯定有很多东西固定不了,对吧,它适合的是往单表里边写入啊JD bc think,这要注意一下,好,那你换成玩这玩意儿用不了,那怎么办。啊。那那那怎么办。这个用不了,那怎么办?
16:00
我们好不容易想到用这个GDBC对吧。啊,还得自定义个think,对了啊,咱们当时在这边就已经说过这个事儿了,我们可以用jdbc think也可以自定义think,对吧,那这个地方没办法了,因为官方唯一提供的这个东西呢,咱用不了,我们只能自定义了,对吧?好,那么下节课呢,我们来自定义啊。
我来说两句