00:00
好,那接下来我们就看一下物理存储,物理存储呢,重点呢,我们拿出来这块内容叫什么,是不是叫store,哎,专门把store拿出来,我把这个模板打开啊。你们俩的快一点。好,我们刚才store是不是这一块内容对吧?那为了好看一点,把前面原数据信息也带过来了,要光秃秃的拿这个东西不好看,这一块是要真正的放在文件里的存储的,所以呢,叫物理的一个存储结构,那这个东西怎么存的呢?看着好像是这样存的,但是对于那个我们所说的MYSO当中,你假如这个是不是完全可以看成MYS的表,对吧?假如说如可是MYS的一个专门的列。对吧,啊,这个是表明假如说啊好,那MY搜狗当中怎么存的这个数据。啊好,用逗号分割吧,CSV的一个格式啊,逗号分割来存的,OK,那这个东西它在s base里边是怎么存的呢?它对于每一个列都要单独的有这么多数据去做它相应的一个存储。
01:11
它在存储的时候来看一下,首先张三这个数据是不是有一个唯一的RK,这个都要有了啊,存到入key,那接下来是。Column分就是我们看到的那个列足信息对吧?啊列图是谁,然后这个呢。列列名啊列明,然后跟我们刚才看到的不一样,这块多是不是到这块最后是一个value啊,对吧。类型这块我们看一下叫。插入操作的。往里放数据的对吧?啊,也就是说张三这条数据呢,是给他放进来的,是你执行的一个插入操作好,那接下来这地方还有一个时间戳,什么时候放的对吧?啊,这个点你这个看着好像是跟很多框架里面用的这个时间钟很类似,就记录一下当前操作时间吧,对于h base来说,我们之前所讲的它实现HDF上随机写操作,完全的就靠这个时间出来了。
02:15
它这个优化最大的就在这个时间说,我们后面还要详细聊这个时间戳的事啊,这个东西对于HB来说极其重要。时间桌,所以希望大家在学的时候把你的Windows和Linux时间给我调统一了。如果两个时间不统一,你会发现你写的代码,然后有时候在Li里面操作一下一一下子window操作,你会发现各种诡异的事件都能给你碰到,就是因为你时间中不对应。删了数据没删掉,插入数据看不见等等,这些都有啊,等等一系列的问题。啊,都会发生,如果你Windows和Linux时间不同步啊,就会产生这种问题,当然如果你不同步,你只在。
03:01
Linux操作,假如说你想写好一个代码,然后看打个包扔到linu执行,这没问题,因为你统一用的都是什么Linux时间,如果你在Windows操作一下,在linus操作一下,因为可以通过API去操作,对吧,你两边混着操作,如果你时间不统一,就很容易出现诡异事件。对吧,插入。看不见,数据不在了,没有数据,删除了,还能看到数据,数据删不掉。啊,都是这个时间戳问题啊,时间戳问题,因为它只最后呢校验这个时间戳,OK,那我们看一下北京对吧,第二条数据,第三条数据131什么内容,然后第四条你看。还是ROOKIE1,你看这两个东西。是不是一样的对吧,只是Y6和什么。时间桌不一样,这个地方它就是我们所说的,哎,你要修改啊或者等等,其实。
04:06
就是在铺的一条数据,把之前那个时间桌给它大就行了。啊,它是在里边取最大的时间柱啊,取最大的就是你在里面做的一个增删改查同样的,那有同学说那删怎么办呢。对吧,删除的时候,哎,这不有个类型吗?类型是delete,而delete的时间桌如果比你不的时间桌大,那就不返回数据,是这样做的。啊,人斯用的是这种手法,所以他能实现我们所讲的看着看上去好像在S做了修改啊,实际上并不是当时就做了修改,如果当时做修改,他根本不可能那么快。啊,根本不可能那么快啊,后面我们再聊,后面我们还要讲,那这个东西如果说我覆盖了,假如说是177覆盖了133,那133这条数据对用户来说还有意义吗?没有意义,那H当时是帮我们存的,在最终这个数据是不是应该还要干掉,对吧?一定要删掉的啊,一定要删掉的,那什么时候删,我们后面再聊啊,他后面还有不断的合久必分,分久必合的一个过程,就在那个过程当中,会把没用的数据给他给干,给他干掉啊,给他干掉,但是在你操作的当时,他不会做这个事能听懂,因为他为了追求效率,他那个东西都放在哪存的,然后最后返回的时候,我比较一下时间戳,我返回最大的时间戳能听懂。
05:32
好好,那这个呢,是。Time叫版本啊,它时间戳呢是他这个版本号啊,版本号不同版本的数据呢,用这个time style进行区分,而正常的你去查询一张表,假如说查这个列。它这个列就是form这个列,它返回最高版本,也就时间桌最大的那个版本啊,因为时间最大就相当于你做了覆盖嘛,你给它后插入对吧,那这个地方呢,也就是我之前所讲的,如果你Windows跟应用时间不对等。
06:03
那你想看,如果Windows时间慢。你在Linux先插入一个时间,Windows再插入一个,是不是看到的是谁啊Linux吧,虽然你操作时间是Windows后操作,但是不好意思看到的还是什么linu的数据,相当于没有覆盖掉吧,就是因为时间不对等,所以说学倍这个框架的时候一定要注意时间很重要,因为它这个时间戳就是它。说的实现我们在SDF上随机写操作最核心的一个内容啊,用版本来控制的,OK,最后还有一个就是如果说删除我们提到了吧,啊,假如说你要删除它的话。啊,你不能再铺一个对吧,你滴类的,它这个类型呢,是低利的标记,而且你这个低利的标记啊,你还不能比这个T3T4小。假如说你d delete的标记是T2,那你T3T4,我T4照样返回能听懂,因为它是看最大的时间中,如果你来了一个T5 T5这是一个敌力的。
07:01
他比较时间中发现取最大的,最大的一看标记是一个什么delete的,他就不返回,不给用户返回了,那对于用户来说是不是相当于这条数据被删了,但是在你删除执行删除当时这个数据。你还能看到,你还能看到,因为当时他不会立马去删除这个东西,因为他给用户他给你的感觉,删除掉了不就行了吗?对吧,什么时候删是不是他自己的事儿,跟你没关系,对吧?你操作我这个框架,你执行了一个删除操作,删除完了之后,我不给你返回出去就行了呗,对吧,你覆盖了,你覆盖了我给你返回新插入的数据不就不就完了吗?啊你用户用起来没毛没问题就行了。啊,没问题就行,是这个意思啊,啊,那之后呢,是整个的这个内容是一个缩fair,哎,放在文件当中去存储的是这个意思啊好,这个点是我们所讲的物理的一个存储结构啊,物理的存储结构。
我来说两句