00:00
好啊,那我们其实之前写代码的过程当中,已经把这个写完了,对吧?啊,它的三种,它是不是有三种概的方式。第一个只传什么rie获取一行数据对吧?多个列组都能获取到,还有rookie加列组再加CN都可以吧,啊三个级别,一个是它啊,然后它加它,它加它对吧?这个是有层级关系的,那不是说排列组合说单独他这不行吗?一定要有的rie对吧?有R可再聊CF,有了CF再聊CN的事吧啊CN,我这个东西是之前说过他不能单独存在的对吧?OK,那接下来我们应该去看这个SKY扫描这种方式了啊SKY扫描这种方式了,OK,在这块。是第七个方法对吧。第七个,呃,叫获取数据符号。同样的。
01:01
对吧。哦对,返回值还是在里面,我们正常的去打印吧,啊正常打印,所以呢,这个返回不要了,那就是。Table。Table好,那扫描正常的扫描全表的时候。要传什么东西表明就行了吧,我们这写了SKY啊,然后什么s to1对吧,所以呢,这块我们只要给一个表明。Table name对吧,Table name好,第一步那扫描表。是不是要获取表对象啊,跟之前一样,对吧?啊获取表对象。OK,那还怎么获取?还记得吗?拿着点get table吧,这里边放table name。Value of,对吧?Value把这个table name给它扔进去啊,这个也是我们说的,在这个API当中呢,少有的需要记的一个点就是type name的一个获取方式,还有一个就是name space吧,它的获取方式也不是扭出来的,对吧?其他的对象基本上我们都是干什么扭出来的对吧?啊,拗出来这种东西呢,你不要记,你记中特殊的就够了啊,记种特殊的好,那接下来第二步或者说应该去扫描表了吧,之前我们看到是不是table点。
02:21
叫盖干对吧,干他里边有什么。要传一个SC对象啊,这个东西呢,就跟我们之前看到什么put呀,Get呀等等这些东西一样吧,啊,就是我们自己写API的时候,前面写的那个关键字是吧?啊,Get scanner OK,那这个东西叫scanner。叫一个什么?扫描器对吧,这个就是我们所说的,哎,你通过这个扫描器就能拿到什么东西啊,你要的一部分一部分的值啊,它是一次看你客户该多大,然后拉取几百条,应该是它默认的是500条一次,500条一次啊,因为我们说了是存大数据用的。
03:05
你如果说直接跟盖一样,返回值是数组,那你客户端的内存一定会什么。崩掉,那一定会崩掉,所以呢,他对于这种东西呢,做了一个封装。啊,你看到的好像是拿到的结果,但实际上不是啊,类似于大家学MR的时候,MR的时候,呃,Values。就是到了维那边的value那个迭代器,那个迭代器你要注意它跟Java的迭代器不一样。它封装了,它封装了它里面用的是同一个对象,不像Java迭代器,每一次你迭代的时候,他给你干什么,新构造了对象,因为数据量太大了,如果说每一次就构造对象,所以你们之前不学过一个东西叫那个呃mmr当中有一个map的一个并对象来拷贝。对象用的有印象吗?就是你在里边去获取对象的时候。就是Y64那个迭代器里面获取对象的时候,你不用到了一个B,就是来拷贝对象吗。
04:04
当我没说好吧,学了反正也不说没学,学忘了,别忘了,OK,那这里边有一个四干,肯定有啊,肯定有这里边啊,之前的那个案例里边,因为你们文档看了根本没有改啊,所以我知道啊,所以我知道OK。啊,要一个干对象,那我们第二应该是干什么,创建一个对象吗?啊构建。干对象。我们先统一的方法还是干什么new对吧?啊,你一个盖,注意这里边盖比较多对吧,两个要哪吧,客户端包下的啊,客户端报下的很高加V诶,它可以有空参构造,空餐构造,代表着扫描的就是。全表对吧,扫描的就是全表,你没有写限定参数,因为我们当时在干表的时候,是不是可以传一个,还有好。
05:01
对吧,我们还说了左臂右开这种对吧,来看一下CTRLB,那肯定有API嘛。Stop stop等等这些东西吧,还有什么?过滤器当时还提醒大家注意了,说但那个命令行里边是不是给你一场上一个什么权利名的过滤器啊。也没有印象了,对吧?啊,但是呢,我当时说了,很少人说在那个命令行里面去干什么,写那个东西,你有一个对象封了,不会这样做,但是在代码里边我们会去用到那个什么。过滤器,因为你要过滤出来什么样的数据嘛,因为你有时候在生产环境当中,不是说所有的时候你都非得用一下那个全表扫描板,对吧?啊,你要部分数据呢,或者说你会用这个什么stop啊,等会儿呢,我们统一的都用一下,现在呢,我们先做什么。全表扫描OK,那我们把SKY扔进去,这第三步就是扫描看什么全秒对吧,扫描表吧,因为后面我们可能给里面添加东西对吧?啊添加东西OK,它后加V。
06:05
哎,这个分号打错了,是中文的哦,他说奥加倍得到一个什么?Result一个get啊第四步啊,第四步,然后就解析这个内容嘛,啊解析它,因为这是你达到的一个结果,相当于。解析。Without scan,那我们拿着它去调用一个方法看看。它里面有。对吧,还有next int。多少行的一个行数,那这个里边呢,它不是一个一个的数据,对吧?那既然有next,我们可以用什么否循环拿到了一个一个的什么,拿到一个一个知道,因为我们之前跟他提过这个东西呢,只不过说他在扫描数据的时候做了一个封装,实际上的本质还是大家如果说想一下的话,它里边呢,应该包裹着result的一个什么。速度或者集合一样的东西,因为它是这样的,就是刚之前就跟大家聊过对吧,你首先你通过rookie是不是将put说A对应的。
07:08
GET11对应嘛,那通过GET11对应又推导出来它跟RESULT1对应。没问题吧,啊,因为你get方法去传入一个get对象,然后得到返回值是一个without,同时你传一个get的例子的集合,它返回值是一个的集合。对吧,是一个数组啊,是一个数组,OK,那你扫描全表那里边一个表里边有很多很多的什么r key啊,很多很多rie,所以呢,它返回值理论上分析当时跟大家说了,让大家猜一下,大家都猜这个数组,对吧?啊其实没问题,其实没问题,但是就是我们所讲的你客户端如果说把所有数据全部放在数组里边。客户端内存就崩了,所以呢,他做了一个封装对吧?啊围绕斯干你要多少东西呢,去慢慢的去取就完了啊慢慢的去取,取完之后呢,你可以给他迭代出来,那到了这一步,接下来是不是几。
08:00
解析它并打印了对吧,这一步我们就熟了吧,啊我们就熟了,OK,那就解析这个什么。Result干什么打印对吧啊。打印啊,那。点点破循环对吧,啊点破循环,那这里边打印我就不想一直写了,我直接从这上面拿一下这个OK吧,对吧,我把这个拿一下没问题吧,这里面要追一下就用一个什么。三九啊,三九这个是具体的打印的内容啊,跟之前完全一样,我就直接拿一下了啊,拿过来。放在这这个应该是什么第六步了,对吧?啊第六步了,反应完了之后,我们应该做什么事啊,这个关闭资源,关闭资源的话,应该在当前这个佛循环外面嘛,啊这个循环面这个第七步啊,就是关闭表连接是吧。好,这块呢叫table.close啊点。这个就搞定了,因为这里面呢,到了这款到result的这个对象我们就已经熟了啊,都之前已经写过了这个代码,好之后呢,我们来测一下这个内容。
09:17
就看你这个异常想怎么装。如果说你这个异常啊。有包含关系,就是说这是A长,这是B长,而A呢,是B的什么?子类啊,假如子类啊这种,那你是不是应该把B写在后面,这这个时候就看你对A这种异常呢,是否需要单独处理。如果单独处理,你就给他提出来,而且提的什么。前面如果说你这两个异常,假如说还有一种情况,就AB异常,完全没有什么没有关系。啊,没有关系,那。如果说处理方式呢,都是打印占空间,那这个地方其实还可这么写。
10:00
是不是写一个竖杠?这种方式见过吗?没没见过吗?就是这种,之前我们不是写过一个这个吗,来看啊。我们不是写过这种吗?这个是不是两个完全不相关的异常啊,他们没有什么继承关系啊,这个就是如果说这是A堂,这B堂他们俩有竞争关系,而且呢,你对A场有单独的处理方式,那你一定要把它写在前面。一定要把它写在前面对吧,如果AB异常,两个异常呢,没有关系,没有关系,而且处理方式不一样,他们俩谁写在上面,谁写在下面无所谓。能听懂啊无所谓,如果说这两个异常处理方式一样的,来看一下,我把它改一下。我把这个注掉,这个处理异常的方式呢,也是一点什么。也是打印那个整个站信息,OK,你看这边就有个提示了,发现没。
11:01
变黄了对吧,奥加回车看一下。啊,因为这两个异常,嗯,这俩异常还不行,我我得我得我得换一个异常啊,呃,Lo异常还有还有什么。控指针可以吧,那这样,嗯,假设假设这个异常是这个样子的,你回车过来,然后这个地方呢,由于你处理方式一样的,这边有一个什么。闹闹对吧。这种方式没见过,这个没见过吗?没见过是吗?啊,其实如果说你这两个异常,他们俩没有关系。他们俩没有关系,而且对这两个异常处理方式如果说一样的话,你可以这样写。啊,可以这样写,如果说他有关系。或者说你处理方式不一样的话,那一定要干什么,分开写啊,分开写就是这个意思啊,就是异常的一个抓了一个方式,那我们还是改回来,就这这个两个异常处理方式不一样,对吧?啊,处理方式不一样,那你就是多啊踹在一个里边,然后呢,Catch始分开开始就完了啊,就看你这一个异常的处理啊,不是说这个异常本身是什么类型的,跟这个类型关系呢,也不大啊,也不大,只不过说你在分开处理的时候要注意一个点,就是这两个异常是否有。
12:20
继承关系对吧?啊,如果有继承关系的话,那你一定要把小的什么写在前面啊,那种跟小的写在前面,大的写在外面是这个意思啊。好,那我们还同样的来测试一下什么。扫描数据啊,扫描填表,那调用这个sc table,我们扫描一下sto这张表。膝盖。就看一下这个数据啊呃,这个数据吧,啊,那打印出来应该也是三条啊,对吧,一二和五二呢,有三个列,这个音一跟音二都能打印出来。好,走一下。
13:28
好,这个数据呢,我们照样是不是能全部能获取到呀,啊能获取到OK,那接下来我们看一下之前,因为我们讲的里边。是不可传一个什么。Stop stop,肉啊,那我们写一下它都是什么?字节数组,那就要用到best.to对吧?啊,Start的时候我给他一个1001之前是不是左臂右开呀,对吧,左臂右开那best。
14:01
点to,哦,我来一个1003啊1003,那这个时候打印的数据应该只能看到。一二诶哦,我没打印入对吧,没打印入所以看不出来,那我们在这里边加一个什么,加一个rie打印数据这对吧,加一个rie。这加,然后这个地方是RK很好。然后这应该是这个best。点to three对吧,啊to three,然后是sell YouTube啊sell点克隆肉啊克隆OK,那这样我们就把那个肉key也一并打印一下,因为这样能看能看的更清楚一点,对吧,那我们要的是这个1001~1003应该只有一根。二五没有吧,啊五这条数据就没有了,OK,走一下。在这。
15:06
诶中间没有加那个逗号是吧,一跟二没有看到五吧,啊这个数据是OK的,也就是说他在这里边这样的,呃,这个过滤器呢,我们后面在那个鼓励微博案例里边去给他扩展啊,过滤器的一个东西啊,因为那个时候会用到这个过滤器啊,用到是过滤器。那这里面呢,同样还是左边右开是吧,我们证明一下这个点,如果说我写的是1002。那应该只剩下什么了,1001了,对吧,我把它加个逗号,这样好看一点。选择一下,因为它是左闭右开的是吧。100对吧,啊,这没有问题,跟我在命令行里边测的呢,都是一样的啊,都一样的,这个是扫描全表的一个数据啊,扫描全表数据比较简单啊,主要的就是让大家理解一下这个内容。对吧,这个result scanner啊,Scanner并不是大家所想的是一个什么数组啊集合啊,并不是的。
我来说两句