00:00
那么接下来就该到删除数据这个事儿了,删除数据前面我跟大家聊到了,来我们看一下第三章核心概念有一个,诶,呃,应该是在数据写里边有个删除的策略,来,我截个图。好。那来,那我们说第一种是配置一个什么呢?啊一个什么什么key,第二种是指定一个配漏的为空啊空这个类删除所有的,第三是添加一个标记字呢,对吧,那接下来咱们是怎么做呢?啊执行删除的话,其实我这边做的是第一种方式。对吧,指定一个operation operation key啊,然后呢,指定为delete啊,这就是第一种方式了,那这种方式呢,就是说咱们现在还是什么,其实就是写入啊,你写入,比如说你你原先一张表12345这五条数据,然后呢,你现在要删除三跟四,那简单你构造一个三和四这两条数据啊,然后呢,指定为delete,做一个什么呢?Ins射操作就可以了。
01:10
啊,做一个right吧,啊做一个写入吧,啊写入,那这样的话,他就会把三跟四给删掉啊,其实它也是先标记一样,就是这么简单嘛,那我们看一下啊,那首先我们先取要删的先看一下现在这张表啊,原始的这张快照表现在有几条了,先count一下啊count一下。呃,有十条对吧,啊有十条好。还是这十条数据。那么取其中的两条啊,来,我用了一个limit,米二取其中的两条啊。用来做删除构造成一个DS啊,名字叫DS嘛啊,然后呢。
02:06
将待删除的两条数据构建DF什么意思呢?我在那十条里面,我选出两条,这两条是我准备要删的,那接下来我们就构造两条来把它删掉啊呃,那我这边是把这个前面获取到了这个东西啊生呃,用它官方的一个类啊,一个方法叫生成删除的数据就可以了,就是把我们筛选出来这两条去去做就行之后呢。就是把它传进来,大家看到没有,呃,我拿到这个DS其中两条,然后传进来,传进来得到这个delete,再把这个delete传到我要构造的这个数据啊,就构造出来了啊,最终构造成一个DF,好吧,嗯,我看DS执行完了,那接下来把这要删的两条数据构造出来,构造完之后就是执行right。
03:04
啊,关键在哪里啊,指定一个key为delete啊,然后呢,你正常去write就可以了啊,其他的什么呃,语句和字段啊,Record key啊,分区字段表明保持一致即可。好,那接下来我们就把它给传进来,这个DF就是我们现在构造出来要删除的DF。好了,删除完之后,我们再来统计一下行数有没有变化,你要统计变化后的是不是要重新加载一下,对吧,所以不要忘了重新read一下啊,Read一下我这边叫一个新的DF啊。无所谓啊,然后还是这个表明啊,注册成这个表明好重新加载数据,加载完之后咱们继续来执行count,看有没有变,你看原来的十,现在变成了八,那这样的话就是实现一个删除的效果,能理解啊。
04:18
那聊完删除呢,咱们也来聊聊另外一种场景,就是覆盖,对于我们的表或者一个分区来说,如果呀,你基本上整个分区的数据都要动了大便了,那这个时候还不如直接覆盖掉来得快,比你说啊,一条条拎出来去做更新或者删除,你还不如直接全部覆盖对吧?啊,破罐子破摔啊,这样更好一点,更简单一点,那类似于hi的这种inser over right,那咱们目前也是支持的。好,那我们看一下啊,那首先我们统计一下当前表的key啊,那我们还是读取。
05:00
格式为护底,读取这张表的路径,然后我们将它的UUID字段,我们不是以它为key嘛,对吧,还有它的分区路径啊,把它查出来啊,然后排个序啊,之后呢,展现一下当前的key,那其实你查隐藏字段也一样啊。它的隐藏字段其实就是这个拼这个对吧,那现在我就展示的更全一点啊好,那现在的key有这么一些,那我们先生成一些新的要用来覆盖的数据,那我还是再什么生成十个呗啊然后呢啊,再把这个生成的这些数据读成一个DF啊,然后过滤一下啊为什么要过滤呢?因为我生成的数据可能是每个分区的都有,现在我只想演示的是我覆盖这个分区啊,America's,然后这个unitedstates,然后圣弗兰西斯科这个分区了啊,其他的我就不想动。
06:02
好,执行。呃,接下来我们要覆盖这个圣弗兰西斯科这个分区了,那怎么写呢?其他这个写法都一样,还是right,那么注意了,我这个模式还是end的,你不要说直接来个overri啊,这个我们说,嗯,当然也可以,但是不太理想啊,你得考虑你的索引,这些是原数据啊,你覆盖的只是数据本身,那原数据这些是不是也要呃,稍微更新一下啊。另外呢,就是指定一个操作的key,为什么呢?Insert overri就可以了啊,那其他的什么豫句和字段record key啊,该是什么就是什么,还有分区字段该什么是什么啊,表明该什么就是什么。好,OK啊,好。来覆盖一下。
07:06
覆盖完之后,我们再次执行这个东西,来看一下key有没有变化好不好啊,跟刚才一开始看查看key的那个是一样的。呃。怎么对比呢?我截个图吧,上面的跟下面的。呃,看看这个圣佛兰西斯科的这里啊,看他的UUID是否变了就知道了呗,啊你看是不一样了,你看前缀都知道不一样了啊,这边是什么68C819D62,这个是什么045280630已经变了对吧?这个就是要注意的是,我刚才跟大家提到,你不要说直接这个DF的这个rite的时候为overrite就完事了啊,这种不规范啊,不规范还是用糊底的方式来overrite,为什么呢?又涉及到原数据。
我来说两句