00:00
般是吧,教怎么做PPT好,然后我们看一下这个它整个中间的一个数据模型,就是它中间的一个数据结构有哪些点,第一个我们刚才没看到的叫密密空间,它很简单。在买当中有表,表要放在什么地方。是不是database数据库里边吧,对吧,哎,这个咪密空间就相当于蓝到那个数据库能理解了吧,所以并不需要放在前面啊,大家做一个,那这个呢,类似于关于数据库的一个database一个概念。啊,第一里边呢,你可以放很多的一个表,一般的建密闭空间呢,都是根据业务线来建的。啊,你可以创建这个命名空间对吧?啊,业务线,你这个业务线叫什么东西,叫艾硅谷的叫什么其他的对吧?啊无所谓,根据业务线来好之后呢,是说有两个自带的一个命密空间,就是你安装好了H之后,它有两个,第一个呢叫h base,就是命密空间名字叫h base,第二个呢叫default。
01:00
默认的对吧,好I呢,存放的是I base的一些原数据。就这个相当于卡卡里面那个下划线,下划线cons of是系统的,系统能理解这个事吧,因为作为S,它是不是也要存一些自己的内容啊。那HS作为一个存储框架来说,它的数据都是放在什么表里面的?对吧,它也有表来存出去,就类似于卡夫卡一样,那卡卡存出去都是放在topic,所以你要卡夫卡存自己的东西,它也只能放在系统的topic了,是一样的,那我h base要存自己的东西,是不是也应该放在h base的表里边了,对吧?那这个表呢?呃,它跟用户的一些表合在一块也不好啊,所以它专门用那个什么搞了一个命密空间啊,你尽量的不要往这个命密空间里面去建表了,能听懂啊,当然可以建啊,大家不要见啊,OK,还有个default是默认的。这个默default呢,就相当于我们所说的那个have那个default那个一样,对吧?啊default啊,你看不到这个default就是你查表的时候。
02:05
如果是默认的命名空间下,它不会带default,假如说你是爱硅谷命名空间下那个表明呢,就是爱硅谷冒号TABLE1,而如果说是defat下的,它就叫什么TABLE1啊,就这个意思能听懂啊,因为它是默认的啊,默认的也不需要指定,就是说如果说你想往默认的那个命名空间下创建表的话,也不需要指定。这个T因为它是默认的啊,你不写就等于什么默认的能懂吧啊这两个相当于数据库,数据库它比较简单好,第二个叫还记得叫什么东西吗?是不是按行切分出来的呀,对吧,它叫表的。切片对吧?好,当我们这个表刚创建的时候,或者说这个数据不太大的时候,这个表跟这个切片跟这个瑞是一一对应的关系啊,这一张表就一个瑞列吧,因为你还没有切,我们说了它是到高表的时候去切分之后才会划分出来切片嘛,不是说你接表的时候,你只有一条数据,他把你一条数据给切开,这不对吧。
03:09
对吧,它是不切的啊,它是不切的,所以呢,这个叫表的切片,但是有时候呢,就是我们所说的。这个东西你得干什么?要切对吧,要切有时候呢,他又你刚创建的时候,这表不够大,也没必要切,当然我们可以手动的去切了。因为它默认的,如果说你等待他切的话。你要插入很大的一个数据啊,因为对于他来说,一个reading里面存放的数据数量还是很大的,到后期的话十个G1000。一个表的数据到十个G的时候来填啊,就是对于B来说,当然我们可以手动的去做线啊,手动去线是可以的,我们可以看一下效果对吧?啊看一下效果OK,再往上说定义这个reading或者说表的时候,因为刚开始定义的一张表是不是就是一个reading啊。对吧,我们刚才创建的时候,它就一个V0啊,那只需要定义。
04:04
定义什么东西啊列。我们MY创建表的时候是不是可table,然后字段名嘛,叫列名嘛,但是对于h base来说,它又抽象的一。对吧,啊,抽象了一层叫这个列足,所以呢,在见表的时候,我们只需要声明到列足就OK了,不需要写到列,它的列啊,是动态增加的。啊,列是动态增加的,呃,这个地方叫列,实际上它是相当于H表里面的一个数据,就是at里面的列,注意听啊,At贝斯里边的列相当于是H的一个数据。是表里的数据,因为你真正在存数据的时候,刚才我们看到了它是不是跟着一个列和一个什么value,我们一般写的时候,假如说列名。叫内Y6叫张三对吧?啊,你写出来是这样的一个东西,这是一个值内冒号张三这一组值啊,它是相当于是HP里边的数据,所以定义表的时候不需要定义出来列是谁。
05:13
不需要定义出来列是谁能听懂这个意思啊,不需要定义出来列是谁的啊,写入设计的时候字段呢,就是我们所说的列可以动态的按需来指定,就是它可以动态的增加啊,动态增加。啊是这个意思,这个呢是跟白色当中最不同的一个地方,就在于这。啊,就在于这儿啊,好,接下来还有一个叫肉。行啊,一行数据对吧,那这个行数据呢,每行数据都有一个。Rookie和多个列来组成的啊,多个列来组成的,OK,那接下来。R key是按照词典顺序来存储的,对吧,我们大家看到111这个呢,我们可以做测试完家能测出啊,到时候一返回,哎,数据呢,它自己排序了,对于安来说,它数据所有的数据都是排序的啊,排序了然后只需要根据进行进行检索就OK了,好,既然rie是进行。
06:11
四点序有序的,既然它是有序的,那我们查询的时候可以做全表扫描,类似于C新这种操作对吧。肯定可以,因为是表嘛,肯定要做全程扫描,那我们能不能做范围扫描。你是排序的对吧,我扫描一个范围,这个也是可以的啊,我要这个入K大于等于多少,小于等于多少啊,扫描一个范围它也是可以的啊,也是可以的,你解锁的过程当中一定会用到这个R,一定会用到这个ROK,那接下来接下来是我们所说的一个列。列,每一个列呢,都是由列族加什么?列限令符啊,列限令符列名相当于这个内容,OK,那这个地方呢,叫input线表的时候需要指定列符啊,等我们操作一下就知道了啊,一下就知道了,OK,最后呢,是这个时间戳这个东西我们说了是非常重要的一个点了啊,非常重要的点,后期呢,我们还要详细的介绍它啊,这里面呢,用于标识数据的不同版本。
07:13
注意,这个叫标识数据的不同版本。这个数据。除了版本和value不同,其他的东西必须相同。就是你的rookie,大家要一样。你的列族要一样,你的列名要一样。还有什么?Table不用啊,Table不用,就是这里边呢,前面这些东西要什么要一样,唯一标识一条数据嘛,好,你的时间戳如果不一样,那我就返回最大的时间戳那个数据,但凡你这里边任何一个东西动了,它就指的不是一行,不是一条数据了啊,不是同一个数据了,能懂意思对吧?它定位到的一个地方就不一样了啊由这三个东西呢,去唯定位一个东西啊啊,那接下来是我们还提到一个概念。
08:05
细胞是吧?啊,其实就是一个单元格啊,单元格就唯一确定的,刚才我们说的这一组东西看到没?Rookie column family fair这个东西来确定一个。不同版本的多个版本嘛,那我接下来把版本一确定呢。是不是唯一的一个单元了呀,啊,最小的单元了啊,最小的一个单元了,这个里面你才能唯一拿到一个数据,如果说你时间戳也不确定,那这个地方就是什么。批量的还是批量出去吧啊,因为它可能存在多个啊,可能只有一个,可能存在多个是这个意思啊,这个意思好,后面接下来还有个点。在H倍当中,因为我们之前在建表的时候,买这个电表的时候,你要在指定这个列同时,指定列的同时还要指定什么列的类型,对吧?啊在这个里边不需要,因为我们连列的没指定啊,列类型就没得指定了,他也没有类型在底层呢,都只有什么。
09:09
码都是什么?都是直接数组,所以对于来说,它既然都是直接数组的话,它有一个点很重要。他给我们提供了一个工具类,就是帮助我们将string啊,Double呀等等类型转成什么,直接输组,然后你这是写进去吧。读出来呢,它还是读出来白条数组,然后又通过那个工具类可以将字节数组转化成你想要的,对double提供好的工具类能懂这意思啊,不需要你自己去做这个事儿,但是现在其实我们知道自己做这个事儿。也可以吧,四边形get,然后数组变成四倍呢?你一个three对吧,啊,其实人家工具类里面也是这样做的。啊,人家还是这样做的,就类似于我们刚才看到那个什么反序列化一样,对吧?啊是一个道理的啊,一个道理的是这块呢,比较简单一点,好,那我们回过头来看一下啊这个东西。
10:08
把这几个东西呢,我们放到这个里边来理一下啊,对应一下啊,对应一下好,第一个是name space,我们就不聊了,它是整个的命名空间,叫数据库对吧,它跟数据库齐名的好,第二个region region呢,它是不是跟表有关系啊,我们从大的结构往小的看,对吧?啊,因为数据库底下是不是就是表啊,那表在最初的时候是不是叫reading。一个reading定的时候,是不是这个reading定会做这这个表会做切分,那就切分出来什么多个reading定吧,好在表里边,我们之前在MYSQL当中,在底下一层是不是列。对吧,那在X里面叫什么叫列足啊,叫列足好,那我们看到的是列足。列足完了才是列吧,好列完了是不是具体的数据了。但是这个数据你看到的张三李四王五是看到的是最大的数据,对吧,最大的时间都是数据,实际上在这个单元格里边还隐藏着,底下还覆盖了,可能有李四,是不是可能啊,当然你如果张三不是覆盖人家数据,那就你一个人,如果说你以前做的一个李四,再铺的一个张三。
11:19
那这个时候是不是底下应该还有个乙四啊,所以再加上我们刚才所的rie加列足加列,再加时间桌,是不是唯一确定这个张三啊,因为你只有这三个内容的时候,不加时间戳是不是有可能会有绿色。你之前如果插入了一个李四,那不就有李四吗?能懂这意思吗?对吧?那我们所说的最后看到的这个张三,如果说能唯一确定的Y6就是张三,那这个东西又把它称为cell,对吧?叫单元格或者叫细胞啊,它是单元格是这个意思。叫单元格,好,那在这个单元格里边所有的内容都没有。数据类型对吧?没有那些复杂的数据类型,什么spring啊,Double这些都没有,都是什么直接数组对吧?我们刚才所讲的这一套数据模型,刚才我们已经对照了这个里边给大家捋了一下了啊,你从大到小去捋name space啊,命名空间,它是数据库,底下呢是表,那表呢跟我们X里边reading有对应关系吧,而且一张表可以对应多个reading,因为它要纵向横横向的什么。
12:27
切分对吧,因为表越来越长嘛,啊越来越长,这个高表形成高表了,所以呢,横向切分,那表就变成了多个规定,好在表里边我们关心的是列,但是在里边我们不是关心这个列,而是关心什么列足对吧?啊列足那列足底下才是列,那已经到了列了,是不是到最后我们的什么。数据了呀,但是你确定到列的时候,不好意思还确定不了数据,因为它里面有time有多个版本。对吧,啊有很多版本,那我们可以再加上版本,就能唯一确定一个什么。
13:03
啊,唯一确定一个了啊,所以最底层的是就是最小单元了啊,最小单元了,再小的话就是字节了。因为你们数据自己数组,你要再分的话,就自己分到这一层就没有意义了吧,分到字节这一层就没有意义了,对吧?啊所以呢,最小的我们就把它拆到这啊,大家要从大到小的自己去想一想这个问题,想想这个问题。
我来说两句