00:00
然后我们增加的这个操作讲了之后,其实这个改的操作。也就一样了吧,你对这个同一个列头干什么?同一个列组,同一个列重复添加,就说这个地方,哎,我把这个除掉,我把这个Y6把丢丢变一下是吧,变成其他人,然后他是这个地方就是修改吧,啊,他这个修改就是他这个添加修改就是添加,OK,那我们再来看一下它一个删除操作。啊,删除他走,他这个这个删除也没有什么返回值对吧,没有什么返回值叫delete。这个删除操作是我们要注意的这个点,OK,那当时我们在命令行当中删除操作。还有谁记得吗?它有两种,是不是一个是指定R的这种要要用什么API。
01:02
来看一下删除操作,删除某个的全部数据是d delete的or,然后如果说你指定某一列数据的话,你要用d delete的对吧?哎,你要用d delete的,那是这个意思,那我们就知道它有两种,它有两种,那是不是在API当中它有两种呢?或者说我这个参数应该怎么写呢。就是说首先你这个表明得有了对吧,表明。Table name,第二个,无论这两个方式是不是rookie,都是都要有的呀,哎,Rook要有,那我们把rookie也给它写上,这个就是统一的都要有的。好,然后我们把后面两个参数也写上吧,写上之后你传进来了,我可以不用对不对啊,对吧,OK,那后面是CF加CN是不是。对,好CF,那大家有没有想过一问题,我要是指定到CF呢,就是说我测试过什么,在API当中,在在下操作当中测试到到这个级别是可以删的,对吧?到d delete的or测试到这个级别也可以删吗?用d delete的,但是到CF不知道它能删对吧?我们可以看它API有没有啊。
02:16
对吧?哎,API当中如果说它可以指定到CF,就是说它传的参数指定到了CF,那就说明也可以删嘛,删除某一个周K项当前这个列组所有数据,对吧?是这个意思,OK,那我们来看一下,它同样的也是要拿到这个table对象啊,Table对象来操作的,因为我们是具体的在某一张表里面做增删改查对不对,Table对象怎么获取。点get table吧,Get table OK,把这个table给他扔去,table.table。拿到我们那个开对象。
03:04
获取。Table对象。然后拿着这个推对象是不是来。执行那个删除操作啊,那我们看一下它有没有delete对吧,Table点。哎,看到就是delete,但是你没有没有看到什么delete or对不对啊,没有看到啊,它delete里边跟put其实是一样的。破的方法里边放的是负的对象嘛,你看delete的方法里边放的是d delete的对象,OK,它同样的也可以批量删除吧,也就是一次删除多条啊删除多条,OK,第例种那我们在外面要先删明。创建什么?Delete对象是不是创建delete,用一个delete h包下的H。然后看一下它里边放的。
04:00
Rookie对不对啊,哎,它跟put一样,也就是说我一个rookie啊,会对应于一个delete的对象,对吧?哎,Delete一样,OK,那这个地方我们rookie是best。点To Best吧,把我们那什么U给他扔进来。那我们这个滴delete的对象就有了,那你想想看,此时如果说我直接把这个DD的往这一放。他是删除的是什么。如果我写的是零,是不是他会将那个零所有数据都删除了?对吧,哎,我们来操作一下,看是不是删除OK,那这个地方我们覆盖一下,我们只有1002是多点数据,对吧?那我们只能删1002,因为1001 1003104看不出来效果是不是OK,那这个地方最后其实我们还要做一个操作,就是table table table也是一个连接对象,对吧?这个上面我们也要给他关一下,给它关一下OK。
05:00
那这块就是执行删除操作是不是啊,最后关闭资源,关闭资源,那我们来做一下这个地方就插入出去,我也该注释这了吧。那就用那个delete。我是删除的table吗?我叫delete,这个方法是吧?那就delete吧,应该delete date对吧,好一点,Table只有student这一张表。然后rie呢,我们要删的是1002嘛,对吧,哎,只有1002,它有多个列,它有多个列,OK列,然后这个地方后面还要指定,其实我们随便写什么都可以了。是不是因为我们并没有用,对吧,在代码当中他们并没有用,OK,那这个随便写几个。来,那我们执行一下,看是不是这个方法能把我们什么。这个1002所有列都删除掉。
06:01
正常走完了,没有报错对吧?OK,然后再扫描一下。删掉了吧,哎,这个就删掉了,这个如果说你只定到UK的话,就类似于我们做的d delete的or这个操作吧,是不是,哎做的是DD or这个操作,OK,那接下来我们要删什么呢?删具体的。我要删一个列足,或者说删一个列啊,就是说我现在想把什么呢,把1001这个性别这一列呀,给删掉啊给删掉,那怎么来呢?看一下同样的还记得不,它是不是添加了什么列足这些东西啊,那你要这个有一个删除对象,你是不是同样对这个删除对象要添加一些。列祖列啊,你看它这个地方,哎,还真有一个什么。列足的对吧,也就说明它其实可以指定到列足的吧,哎,单独删除一个列组也是可以的,你有多个列足的话,但是其实这个地方我们也没法测,因为我们只有一个列图是不是好,那我们就直接删到啥。
07:07
删到列吧,哎,删到列,那你要注意看这两个,就第一个跟第二个。他两个参数都一样吧,但是。一个有S,一个没有S,那这个什么意思呢?我点进去看一下,把这个S的best点,然后是CF对吧,还有一个C点。To Best。CN。好。那我们先看一下同样的CTRLD还有一个。不带S的对吧,哎,他两个这是什么意思呢?来点进来看一下。删除指定列的所有版本。
08:01
对吧,这个东西其实就类似于我们在shell操作当中直接delete,然后指定的列,它把所有版本都删了,它其实调用的是这个at columns这个参数啊,这个方法OK,那我们看一下还有一个什么,那大家猜一下这个艾特column呢?对。来他删除的是。最后一个版本,其最新的吧,最新的。那通过这个方法看一下这个里面,其实他还可以传一个传一个版本,那传一个版本进去,你想想看,他应该。来。这个at columns指定列。看这是这个加了时间的那个API吧,他先的是什么。指定列指定版本吧。
09:03
哎,这个方法就是更细力度的来控制什么,你这个版本,如果说你默认你不传,它删除的是最新的,哎,它怎么删除最新的呢?有的同学说那我要指定版本或者指定版本,你看它这地方怎么写的。他说这个东西啊,会分成两部分,首先去干什么。获取一下最新的一个版本号了,然后才去添加一个delete using,就说添加一个删除标记了。添加一个删除标记,它不是去删除,它分成两部分啊,分成两部分,第一步,第一次是获取了一下最大的那个吧,然后再干什么,添加一个,对于最大的那个版本号,添加一个删除标记,删除标记那你想想看,那这个S呢。他是不是把你所有版本号全部获取来,然后添加一个总体添加一个什么。标记啊,所有版本都删除掉啊,所有版本都删除掉。
10:03
是这样的一个过程啊,这两个东西你要注意啊,这个东西呢,这个方法啊,啊在公司当中应用的时候你也要注意啊,注意什么呢?等会我们演示一下这个方法要慎用,要慎用就是因为它更新数据,它并不会把数据删掉,我们可以看一下这个,我们把这个注释掉,首先这个东西啊,公司当中呢,建议用这个。我们看一下这个使用过程当中有什么一个奇怪的一个现象来。我们这个地方是指定了列了吧,哎,指定列了OK,那当前我们这个1001SEX它是mail对吧,我们干一个什么事呢?添加数据啊,对于1001。哎,这个是删除是吧,在这。1001IN列无效。有一个我改成飞妙。飞秒,那你这条插入插入进去之后,你再来获取数据的时候来看一下啊。
11:02
把这个注掉。多次插入的时候,你在这个地方扫描的时候,是不是能看到是非。来扫描一下是飞对吧,飞秒OK,那我在下当中操作的时候,当时操作了删除这个指定列的时候,是不是在获取的时候就没有值了。这还记得吗?哎,它就没有值了,稍微想一想啊,因为它调用的是删除所有版本,那此时我调用的是什么呢?把这个处理掉。Delete的数据,我要删除1001。对吧,我删除这个sex,那按照shell操作,它应该是把所有的都删除了,我们SKY是不是没有数据了呀,来看一下这注意啊,我调用的是吉利的,里边是调用的是没有S这个方法吧,没有S啊,我们要做一个对比,有S跟没有S你就知道公司当中为什么会那样用了。
12:05
好,老版本,老版本来了吧,而且我们设置的只有一个版本吧,也就是说他的一个更新操作,并不会对数据进行什么打删除标记,不会做这个操作,他也会放在那存在的,如果说你删除了指定版本,那个版本就老版本还能获取到。那在公司应用生产当中,这个就你要设置一个版本的时候,你正常的你要是做一个删除。你是不是应该就没了呀,但是你想想看,这个在公司生产环境当中就会有带给给你带来问题吧,啊就是他的一个更新操作啊,因为他要为了快啊,他没有他没有做打标记啊,做什么事啊做什么事,直接就是把这个数据啊,最新的一个时间戳放在那个地方了,然后就获取的时候呢,它返回它比较时间中哪个最大返回哪个。哪个最大返回哪个,所以说这个地方咱们要用什么。来再来演示一下这个考斯啊,这个把这个打开。
13:05
现在是克斯,然后我再干个什么事呢?把这个数据再插入一次吧。再杀一次,然后再删除,我就没有分开操作了,就直接一步操作了。没了吧,啊没了,所以说在公司生产环境当中一定要注意切记啊,尽量的如果说你真的是多个版本的时候,你真的要删除指定版本,你把时间给加上。你自己指定那个版本的时间戳加上删除指定版本,要不然呢,你都用这个方法。要不然你都用这个加带S这种操作,因为这个是删除所有版本啊,所有版本就算你是update的那种数据操作,哎,通通的都会删掉啊,这你要注意这个点,这个点啊,一个是S,那在shell命令行里边,你是不能清楚的感觉到它其实底层调用的是这个API啊。
14:01
对吧?哎,它调用的是这个方法啊,生成的一个DD列的对象,然后添加列的时候呢,它是把这个东西给它添加进去了,加了S了,加了S了,OK,这是这个问题,然后还有说一下,就是山的一个批量操作。跟不的完全一样吧,刚才我们看到这个里边除了可以传一个DD的对象之外,还可以传什么?一个list集合吧,哎,传一个list的一个集合啊,传一个集合,那这一块你要传一个集合,一次性删除多条数据对不对?哎,把rie对应的每一个rie啊,生成一个DB的对象,然后放到集合里边,然后批量的去执行删除啊,批量直接删除这也是可以的啊,这也是可以的,而且你还可以更细力度的控制什么。这个不是,假如说你这个CF下有1001 1002 1001,有sex name或者什么age等等,我要想删1001项,S加name,然后H不删,是不是你在这添加的时候再添加一个呀。
15:02
跟刚才我们所说的这种方式是一样的吧,哎,Put的一个铺的对象里边可以放多个列的数据,那一个D例的对象里边,它同样的可以放什么多个列的数据啊,多个列的数据,那你要记住的是DB的对象呢,它跟rookie啊是一一对应的关系,那个put对象也是啊,不对象也是OK,那这块的一个东西大家注意一下就OK了。核心的一定要记住这个column斯跟column这两个东西啊,公司应用的时候切记要慎用,切记要慎用的,这块的一个内容要慎用,你都加上这个S,加上这个S,除非是你对于个这个这个数据呢,本身就是多版本保存的,那你要更细率的控制版本,那你就要想到还有一个这个方法可以来控制它这个版本吗?你要想删那个删哪个版本啊都可以啊都可以的,如果你不传时间戳它是获取一下最大的,然后给它删掉了呀。啊是这样的,就是说你update的那个数据呢,它并不会给删掉啊,并不会给删掉啊,因为这样的一个方式呢,它保证h base能够很快,就是你做更新操作的时候,它能很快,他没有把原来的数据给删掉,它非常的一个快,就是为了他的一个高效性,所以说这块啊,你要注意一下。
我来说两句