00:01
那不同表支持的查询类型就是Co有快照,还有增量呢,多了一个读优化对吧,那接下来我们具体看一个动图啊,实际的一个官方的一个动图,我们来理解一下啊,当然这个动图我就不让动了,我让他一个最后的状态让他停下来。好,我先停一下啊,这什么意思呢?啊,这是对于cow而言啊,那第一批第一次我插入一批数据,有abcde,好,那这个时候进行了一次commit,时间为零啊,零只是一个一个一个表表示说一次好吧,那这个时候可能会写入三个文件组对吧?方案零,方案一方案二啊,那这个里面有AB,这里有CD这里有,这个时候你进行快照查询,Abcde都有,增量查询也是abcde都有,好那接下来往下看啊,往下走了。哎,太快了。
01:03
这个我还控制不了。呃,稍等,我让他直接。诶,停一下。哎呀。或者我这样我截个图吧啊,我不想等他了,我截个图,我们看这个图就好啊,好,那么接着看啊呃,这是第一次提交,对应的是这个。好,接下来呢,又来了一批呃新的数据,那但是这批数据是包含了D跟A的什么呢?更新操作,这是第二批数据,那这个时候再进行一次commit,就在这个地方,那你看呃,对于文件组零啊,A需要改对吧?啊,那就变成了A撇B,那对于呃D来讲,它在文件组一,它就变成了什么呢?呃C和D片啊这两个,那方案二呢不变,方案二不变,那这个时候我们进行一个快照查询,就commit。
02:14
这个黄色的地方,你再去快照,那就查到全量最新,你看最新的A片,最新的D片,还有其他没变的BCE都有,但如果你是只进行增量查询的话。也就是说,从上一次以来。那这个时候你只能读到什么?呃,新来的数据,不管是插入还是更新,那你看就是A片跟D片能理解吧?啊好,那再往后呢,呃,又来了一批数据,呃,这一批数据呢,包含了更新,还有插入啊,有对E的更新,还有对AP的更A的更新,还有插入一条新的F,那对应的是这个粉色的这里,那这次提交我们可以看到该更新的更新呗,A撇变成了A2撇对吧?啊,CD没变啊,然后呢,E要变对吧,E变成E。
03:08
一撇,然后F呢,是新插入的在这儿,好,那这个时候你进行快照查询,能查到的是什么呢?啊,全量最新对吧,A2撇,然后BCDE1撇,一撇F对吧,都能查到,但是呢,如果是增量查询,你只能查询到从上一次,比如说你是从上一次以来的这个变更的数据,你只能拿到什么?诶变更的A,变更的E,插入的F这三条啊,也就是说增量查询每一次都是什么啊,变化的数据,变化的数据可能是新增的,可能是更新的。其他的就不管了啊,没变的就不不要了,这个就是所谓的增量查询啊,增量查询好行,那接下来我们再看一下二表呗,啊,这个同样我干脆让它跑完吧,让它定格。
04:05
好。嗯。好停,那么看一下啊,呃,第一次呢,插入五条数据啊,然后进行一个commit,那这个时候三种查询类型都一样对吧?呃,不管你是快照读优化呀,还是增量啊,它你都能查到abcde,当然呢,这边呃,能查到abcd是因为你是做完compassion了啊,大家注意啊,这边表示的意思是啊,已经compassion,因为它表写的是什么fire啊,Fire就表示咱们的基本例文件了,那像后面那些增量更新的就是点log文件了,你看后面表示的是log log啊,也就是说这边表示的是已经形成了一个pack的文件啊,所以你这边查起来都一样啊,都一样好,那第二批数据来的是一个更新的D跟A的更新,那这个时候呢。
05:04
他会写入到哪里呢?到这个log文件当中。那这个log文件呢,它会干嘛呢?你快照查询,它会合并老的这些PA,还有这个log,然后查到全量最新,那如果是增量查询呢,只能查询到变化的D跟A对吧,这个一样的,那如果是读优化,你看他读的是什么,老的数据,老的abcde,为什么他读的仅仅是文件,那这个时候如果没有进行一个compassion的话,呃,新的这些。增量commit过来的数据你是读不到的,也就是说点log文件你是读不到的啊,所以它的数据延迟就就高一点的好,那再往后呢,你又更新了E,更新了A,插入了一条F,对吧?呃,更新了A啊,更新了E,插入了F,那这个时候你快照同样是全量最新,这个不啰嗦,增量呢,就是变化的这三条数据啊,有更新有新插入的,那读优化呢,还是你这个时候还没有进行compion呢,还是读到老的数据能理解吧,所以重要的区别就在于独优化,当然这边都啰嗦了啊,这个讲两句大家就懂了好吧。
我来说两句