00:00
我们介绍完shell的命令好之后呢,接下来介绍一个Phoenix标准的GDBC连接啊,因为在实际开发的时候还是那个问题啊,不会有人能够跑到服务器那边,在本地去启动一个命令行去完成一些操作的,实际而言呢,我们都是通过代码来的啊,这里呢,只能给你演示一个标准的GDBC,在实际开发的时候,我们连标准的GDBC都不会去写,我们是直接使用别的框架里面内嵌的这个Phoenix连接,直接去用就可以了,比方说Spark都可以,Link都可以直接往里写,非常的方便,我们演示的时候呢,只能演示这个最基础的啊好,那我们打开我们之前的这个idea,在idea里面呢,首先第一步添加对应的一个依赖啊,Phoenix客户端啊,Hx2.45.1.2这个版本啊,对应的一个依赖来到泡沫文件。在末尾的地方呢,给它加上,加上之后呢,诶,这个标签写错了啊,它多了一层最外层的标签给它删掉。好。呃,加好标签之后呢,我们来导入。
01:06
好,这里呢,我已经导入完成了,它会下载对应的一个依赖包啊,这里呢,我们因为之前导入这个HP server,它还会报这个问题啊,不用管它就可以了,不影响你的正常使用啊。好,我们创建完这个连接之后呢,对应着我们在这个包里面啊,也创建一个对应的类,对吧,加va class啊呃,这个类里面呢,我们写上啊叫。Phoenix啊,Onex啊。Ho NX啊,Connection。好,我们写上对应的这么一个类啊,写完这个类之后呢,写main方法。好写完背方法之后呢,接下来呢,就是标准的这么一个代码了,对吧,标准的获取GDBC的一个代码啊叫。标准的GDBC。连接啊,那标准的GDPC连接呢,它需要连接的四要素啊,第一你需要有一个URL。
02:02
对吧,获取它的一个URL地址,这个URL地址呢,一定是一个字符串URLURL等于后面一个地址,对吧?这个地址URL是什么呢?我们好像还不知道是吧?哎,不知道,没有关系,你看这个地方,你看gd bc Phoenix,诶告诉你了,对吧,这就是它的一个,哎,GDBC的一个地址,只是呢,长度不够了,它没写端口号,后面还有一个冒号2181啊,你复制这个地址。来到代码里面双引号粘贴过来,冒号2181,这就是他的一个URL的地址了啊,第一步URL地址啊,第二步它应该有一个配置文件。啊,配置对象对吧,在这里面应该叫配置对象,我们列一个practice。弄一个part啊,点Y返回得到这么一个配置对象,那常规的GDBC连接呢,会在配置对象里面去添加对应的用户名和密码啊,那这里呢,有一个惊喜对吧?我们之前在命令行连接的时候,就没有输入账号名密码,因为它就没有哈。
03:04
呃,我们这种大数据的框架基本上都这样啊,只在内部使用,所以呢,没有一些权限的一个管理啊,都没有用户名和密码,那就是没有啊叫没有。用户名和密码啊,裸奔都是啊好呃,那既然没有,那就不用往里填了,就放在这儿就行了,我们接下来呢,直接第三步获取链接就行了啊获取连接啊,那个它还有一个要素叫驱动对吧,那现在呢,我们都使用的是这个driver manager啊。Manager,这个manager呢,会自动根据你填写的GDBC去搜索这么一个驱动,这个驱动呢,已经在我们这个地方penix client客户端里面已经给它添加了啊,也就有了啊,我们有了它自己会找啊,点二获取连接,填上这么一个URL就可以了啊,如果你有别的参数的话,这里面也推荐你填填一个info properties info对吧,我们也可以给它填进去啊,尽管是一个空的,骗他一下啊。点返回就得到了这么一个连接,这就是标准的GDBC连接,这里面呢,会有一个circle的一个异常啊,我们直接给它抛出去就行了,你只要保证你写的没有问题呢,这个异常的我们可以忽略不计啊,我们在这里只是演示一个标准GDBC连接啊,好获取连接之后呢,接下来的操作也都是标准的,首先第一步叫编译circle,先编译再执行嘛,编译呢就是connection点啊,这个叫。
04:24
Prepare statement编译一个circle,在里面就可以写circle了,我们写一个简单的circle对吧,就写一个查询select星啊星。From from什么呢?Student?Student啊,不要写错了,好,就写这么一个简单的circle就可以了,你写不写分号都可以啊,写一个分号吧,写一个分号之后点Y返回,得到这么一个编译的prepare statement,这叫编译,对不对?那紧接着再往下我们可以去执行circle。啊,执行口叫prepare statement,哎,这个。
05:00
这个名字还没给我拿过来啊,第二啊,如果你是执行这个查询的话呢,叫X。XQ的corry对吧?啊,如果你是执行一些插入的话呢,就直接是个XQ的返回布尔类型,告诉你成功不成功就可以了,但如果你是查询的话,需要对应的数据啊,要执行这么一个方法,点Y返回,得到一个数据的结果叫result set啊这个set呢,其实。有一点反人类的啊,他因为是大数据,因为是是呃S那边的人用的,所以他写的呢,跟我们代码这边使用的不太一样啊,这里咱们就简单打印一下叫打印。结果啊结果。打印结果啊叫result set,点它会有一个这个叫呃,Next方法对吧,它是head next和NEXT2合一啊,它跟那个迭代器差不多,但它是二合一的方法啊,调next,然后调点if。对吧,啊,相当于是well处嘛,啊啊,应该是well写错了啊。While while的话呢,能打印出它所有的一个结果啊while它然后呢,我们在里面就可以去获取对应的一个数据了,叫result set啊result set.get对吧,Get里面数据啊,我们一般呢都是用get string,那不容易出错,Get string,在get string里面填上对应的一个下标啊,Index下标,这个下边呢,比较不符合我们写代码的一个逻辑,它是从一开始的啊,然后我们给它拼接一下就行了,对吧?呃,冒号,然后再拼接这个,嗯。
06:30
对应的一个二啊,它一共有多少列呢?你可以去看一下这个的表啊,我们这边来看一下叫select。这这个东西一共有四列,对不对,这个地方age呢是一个big in,你可以用get along来接收啊,四列第三列是加号粘贴,这里面是get。三。这里面是get。Long对吧,Get了啊,最后呢,再加一个四对吧,四也是一个get string这边呢是2GET string好点so输出就可以了,我们把这个结果呢给你打印出来就可以了,最后不要忘了请关闭连接对吧。
07:11
关闭连接啊,最后呢是connection.close好,这里呢还有一个小小的问题啊,呃,你在实际开发里面不会有这个问题的,是因为我们这个代码写的位置啊有点问题啊,我们写到了之前这个h base DEMO里面,这个h base DEMO呢,我们在这个地方静态的时候就获取了一个h base的一个连接啊,H base连接呢,不关它会有一定的延迟,所以推荐大家把这个h base你在这里面如果写写对应东西的话,它整个GM会在类加载的时候就把这个连接给创建出来,你对应的I关闭。之前写的单立连接对吧,叫类单立连接吧,咱们写的准确一点啊,类似一个单立的连接怎么关闭呢?直接调静态方法对吧,咱们之前都写过。Close connection啊,这里呢,也会有一个异常抛出去就可以了啊,那这个呢,就是我们整个的一个代码啊,我们来执行看一下。
08:09
好,当我们运行之后呢,经过一个漫长时间的等待啊,它会有几个bug需要我们去解决一下啊,那首先第一个问题呢,它会报啊,有一个你可以看到啊,有一个方法找不到啊,一般这种呢,方法找不到什么什么的,它就是什么啊兼容性问题啊,这里会有一个兼容性问题啊,因为我们是放在之前这个项目里面去运行的嘛,这个兼容性问题呢,是指h base的客户端和Phoenix的客户端呢,有一定的冲突啊,它报名是一样的,它给它替换掉了嘛,那你直接往这边写其实是不行的啊,他会报一个错啊,那咱们这里呢,给他写一个之前关闭的连接,哎,其实也没什么意义了,对不对,可以给他注掉啊,我们需要把之前的这个依赖呢给它去掉啊,我们这里呢,来给它注掉。好把这个依赖注掉之后呢,那理所当然的,你这边一点加载这边就爆红了,对不对,咱们可以把之前的代码呀,都给它注掉。
09:12
代码都给它注掉啊,等你注掉之后呢,哎,就不会去影响到你当前的这个Phoenix的连接创建了啊,那这时候呢,如果我们再运行啊。好,他会去获取这么一个啊h base的一个重量级连接啊,还是需要稍微等待一下。啊,经过我们一段时间等待呢,他已经运行完了啊,他会报另外一个有一个小的问题啊,呃,之前我们写代码的时候呢,写circle对吧,在别的语法里面呢,可能写一个分号呢,是无所谓的啊,但这个penix啊,它稍微严格了一点啊,他说呢,你不能写分号,看到没有,哎,比较奇怪啊,这里呢,大家也需要注意一下,把这个分号给删掉,这里呢,咱们也写一下注释叫不能。写分号。
10:02
好,我们改完之后呢,再给它停掉,然后去重新运行啊。再稍微等待一下。好,经过一段时间等待,他这个答案就已经给我们打印出来了,可以看到吧,啊,这个中间忘了拼接分割符了啊,那就投在一起了,不过这是无所谓的,并且还有一个细节就是你。已经写了这个关闭连接对不对,但是它这个进程啊,不会关闭掉啊,它会挂起一段时间,它挂起呢,就是因为内嵌了一个h base的一个连接,还是这个问题啊,内嵌一个h base连接,它要等待好长一会儿它才会关闭掉啊,这是h base连接的一个问题,在实际开发的时候呢,也不需要考虑这个问题,因为客户端这个地方,Phoenix客户端一旦挂起,它应该是不关的啊,应该是持续的去接收这么一个circle的啊,它本身也是一个重量级的连接,好到这里呢,你可以手动给它关掉,对吧?到这里呢,就是我们啊Phoenix的这个GDBC连接的一个编写啊。
我来说两句