00:01
好,经过我们前面的内容学习呢,大家已经能够掌握了h base的部署,简单的使用,以及h base底层的原理,那从第五章开始呢,我们来讲h base的优化啊,这里呢,也会讲在企业开发当中,我们应该如何使用h base,那首先第一个是我们最重要的内容叫R的设计啊,这个R的设计呢。其实就是我们HP表格的设计。啊,就是表格的设计,呃,关于rookie的设计啊,也就是表格的设计呢,在h base的官网下呢,有非常详细的一个介绍啊,不过这个介绍呢,诶有那么一点点晦涩难懂啊,总结下来呢,哎,给大家整理一下它其实啊介绍了两部分内容啊,第一部分内容是说I的表格完全可以按照MYSQL的表格进行相同的一个设计方案,MYSQL表格怎么设计呢?有行有列。对不对,来记录这么一个信息啊,有行有列,我们base也能实现,然后对于行列上的某一个格的值呢,信息这个数据呢,是可以改的,是可以修改,我们it base也能实现啊,对它进行修改诶,只需要在这个表格里面留取对应的一个字段啊,这个字段呢,你可以是一个特殊的ID,这个ID呢,以备你后续进行交使用,哎,就可以实现MYSQL里面的这个数据表格啊,它是能够实现这么一个功能的啊,能够实现这个功能,当然啊,这个join的功能啊,需要你自己额外的写代码去自己实现,因为我们这个,呃,说实话H表格只能扫描啊,它不能用这个join,对吧?这是一种使用方法啊,这是一种使用方法,但是这种使用方法呢,说实话作者是不推荐的。
01:39
啊,作者是不推荐的,因为你这样使用它的效率性能不会很高啊,性能不会很高,你显而易见的嘛,那你如果还使用MYSQL的使用方法的话,你应该用MYSQL呀,对吧?哎,当然你可能考虑到我数据量比较大,MYSQL存不下,我就用h base啊不是不行也行,但是效率不高啊,效率不高好,那接下来呢,就是第二种方案,就是作者呢极力推荐的方案,这个方案呢,有一个专属的名词叫TSDB。
02:09
啊,TSB啊,这是个字,呃,四个单四个英文字母呢,并不是什么特别晦涩难懂的,就是time database时间,前面是时间戳的意思啊,时间戳数据库什么意思呢?这里面的字段能改对不对啊,是能改的,如果MYSQL里面字段发生修改了,那你改之前的那个数据你就不知道了啊,你就记录不下来了,它就相当于是删除了,对吧?而我们的PSDB时间序列数据库呢,就改变了这个习惯啊,它倾向于使用多行。啊多行,那什么叫多行呢?就是有一个更多的一个行啊,更多的一个行,他怎么样创建更多的行呢?把时间写到行号里面,也就是对应的那个RK里面,把时间写到RK里面。啊,如果把时间写到K里面的话,你对应某一个格发生了修改,它会怎么记录呢?是这个时间点,比方说前年这个时间点把它改成了100,那对应去年。
03:14
对应时间点把它改成了200,今年把它改成了300。哎,它会记录三行数据,那他按道理来讲,它应该是一个格的数据,对不对,但因为呢,我们把时间戳给它写进去了,它会变成三行数据啊,三行数据这个就叫TSDB。好,那这么进行存储的好处在哪呢?在于我们可以记录下这个值一直以来的变化情况啊,那这个对于我们大数据分析而言啊,其实是非常非常重要的啊,如果大家有学到过我们上硅谷的数仓课程的话,应该有知道有一个东西呢,叫增量同步对不对?那我们增量同步特点呢,就是能够记录下该值的每一次的变化情况,那你使用TSDB也能够实现这么一种情况啊,如果你对TSDB感兴趣的话呢,你可以到百度上去大概的搜索一下啊,打开百度。
04:09
Hes DB。对吧,这里边呢,就会有时间序列数据库啊,感兴趣可以自己去看一看啊,可以进去看一看啊,大致的含义呢,就这样是我们数仓里面啊,非常非常重要的一个概念啊,好,这是我们关于R和表格设计的一个基础介绍,两种方法都行啊,两种方法都行,如果你想要效率高,推荐TSDB啊好在下面。有一些RO设计具体的一些标识,比方说一项数据的唯一标识呢,就是RO啊,这个RO呢,决定了当前数据存储到哪个分区啊,那我们设计RO呢,有一个主要的目的就是让这个数据啊均匀的分布到region进里面,防止数据倾斜,那我们为了达到这个目的呢,有一些基本的设计方案啊,这些呢都是官网上先给我们介绍的一些基础内容啊,具体的ROK如何设计,我们要通过实际的案例来给大家讲解,不然不太好懂,咱们先看一下基础情况。
05:04
基础情况,第一个叫生成随机数哈希散列值,其实是一个意思,对不对,你使用哈希的方法呢,能够把rie尽量打散,放到不同的地方去啊,这是非常常用的方式打伞嘛,好。第二个呢,叫时间戳反转,这个时间戳反转啊,不是你把它给倒过来,你你把那个毫秒写前面,把那个年写后面,不是这样的啊,这这没什么意义,对不对,这个反转没什么意义,它指的反转呢,是拿一个99999999这么一个值。减去你的时间戳,他认为这样也是一种反转,时间倒转,那这种时间倒转呢,对于我们的TSDB,也就是带时间戳的数据库而言。哎,有什么含义呢?如果你不反转的话,我们可以捋一下啊,如果你不反转的话。旧的会写在前面,因为旧的时间小嘛。对吧,按照字典一排序,旧的小布放在前面吧,新的会写在后面,那这种顺序呢,其实并不利于我们进行数据分析的时候一个读取,你想象一下我们读取数据的时候,它应该怎么样啊,新的在前面,我们想读的是新的对不对,新的在前面,旧的在后面,所以它可以给它反转过来,用九九,九九呢减去你的时间戳就可以了啊,这也是一种比较常用的方法啊,在官网上呢,也有推荐下一个叫字符串拼接啊,这个就不说了,你想在字符串啊,你想在那个R里面。
06:28
存储尽量多的信息,你得把不同的列信息给它拼接起来,对吧?好,那这些呢,就是我们基础的设计的一个方法介绍。
我来说两句