00:00
呃,然后接下来呀,那么咱们就开始继续往下看了,呃,那么我说整个呀,我们这个首单分析呢,那么咱们一共呢,分了这么几个功能,数据采集实现了,那接下来,那么咱们采集到数据之后,大家想一想,我是不是可以已经把订单的数据放到专门的主题里面去了,对吧?那么这时候我要干什么呢?那肯定是这样的,那其中在咱们这里边有一个我们这个o DS order inone,那我现在呢,要把它取出来,那么大家想一想,如果你要取的话,那你是不是应该再过来一个SPA traininging啊对吧?那么这个SPA traininging它要干什么呢?它应该去我们这个哎,卡卡中对吧,来读取我们现在呢,这个ODS啊,我们这个order in inform,注意啊,这个东西它读的不是我们现在啊这个主题了,它应该读的是我们这个ODS,咱家相信我们这个order in inform啊,读的是我们现在的这个主题啊,读这个主题,那么读这个主题你的目的干什么呢?是不是咱们进行首单分析呀,来在这里。
01:00
那我现在呢,来获取订单的一个数据嘛,来获取我们这个新增它的一个订单这个数据啊,获取订单数据啊,这个呢,是我们现在啊第二部分,我现在要做的事儿啊,第二步要做的事,那么你现在呢,要想去对我们的订单呢,来做一个分析,那么你获取完订单数据之后,那你要干什么呢?大家想一想,我们首单分析,首单分析是不是统计咱们在我当前的网站第一次花钱的这个用户,如果说以前花过钱了,那咱们现在这里是就不应该统计了,而且其实我们正常情况下应该是对吧,这个花钱的用户呢,在这个多数。对这个首单的肯定就正常,比如说我现在对,尤其是一些成熟的这个电商网站,对你说的今天新增的这个对吧,这这这个用户对那基本上呢,肯定是没有咱们老用户多,对一般使用一般,假如说你像现在其实京东啊,或者说淘宝这种网站,其实他统计这个没有太大意义。对吧,就是我现在统计,我一般我比较关注什么,比较关注是我在做推广的时候,我在做宣传的时候,我肯定使用什么宣传手段,然后看一看这个宣传手段一出现之后,诶我这个东西是不是在我网站上花钱的人变多了,对发现就变多了,对吧,现在其实对吧,正常我觉得这个京东和淘宝的话,其实他这会的这个不是最主要指标了,每天你想一想对吧,这个本身这个用用户已经都几亿用户了,对吧,增个百80个人对吧,这无所谓的,我觉得对吧,好了,所以说这块呢,你看一看啊,这是关于我现在对吧,这个要判断数为首单,那么如果判断视为首单的话呢,那大家想一想,咱们在这里我前面也分析过,对吧,咱们要把这数据保存哪呀?是不是要保存到往h base里面去,那么这个分析的过程呢,大家要知道说以我现在想判断用户是否首单,那么这个时候咱们是不是应该把当前这个用户是否在我的网站上消费过这个状态给记录下来,那么一说保留状态的话,大家可能马上想到的就是red。
02:55
那尽管我们前面学习大家现在已经开始pass掉什么update my key了,可以pass掉了我们那个什么my circle了,你们都知道这两个不好的,但是你们可以想到red,但如果说我们再细细分析一下,那么使用red来存放我的用户收首单状态也不太好,为什么呢?它和咱们的登录状态不一样,那么如果登录状态的话,它是不保留一天的数据就可以了,对吧?那么我们设置过期时间就在24小时,24小时过去之后,当前的用户登录状态咱们就从ready给干掉,但是我们现在是否首单这个状态是不是要长期的持久的把它保存起来,对吧?所以说呢,那我们不应该把它放到ready中,那么如果不放red里边,那么这个时候又要长期持续的保存,然后呢,你肯定还经常对他做查询,这个效率呢,还得说得过去对吧,而且呢,咱们在查询的时候,肯定是判断某一个用户是不是我们这个消费过,那一般是不是应该是KV的形式来存储是更合适一点,对吧,那你想符合这些条件的。
03:56
它肯定就是这样h base呗,对吧,H base存储它的一个我们底层是怎么存的,是不是就是KV啊对吧,H base本身对吧,它的存储是不是KVK是什么,我问大家。
04:09
啊,K是什么。Key就是rie,你们当时讲一变子这个key就是r key吗?同学们。咱们说啊,这个HB它本身存储的时候其实是一个多维的,我们这个map集合,对吧?既然叫多维,那么就不应该是一个入K对吧?其实我们现在就已经在存储的时候,对吧?R key啊,列足啊,列名啊,这些合起来组成什么?组成它的一个K,然后V就是它的一个值啊,就是它的一个值对吧?那么这会要注意一下,所以说呢,那我们现在啊,在这里我们呢,要去使用h base来对我这数据呢,来进行一个存储,对吧?这第二部分要做的事儿,然后接下来那么第三部分呢,那么这里我们呀,这个拿到订单数据之后呢,我在统计的时候,我想统计一下,诶那么咱们现在对这个今天省单用户他的男女比例是多少对吧?他的年龄段是多少,他的不同省份分布什么样的,那这个时候咱们是不是得和我们这个其他的一些什么这个用户啊或省份来进行关联呀,对这第三要做的第四个,那咱们就把数据保存ES里边来做可视化,那么咱们现在先来看谁呢?先来看是否我们这个首单啊。
05:20
啊,先来看是否首单对吧?啊,那么如果说要想看是否首单的话呢,那么这块呢,那么咱们呢,得把数据给拿到对吧,那么需要做一前期准备工作对吧?准备工作什么呢?就是把A的环境啊给搭建起来,对吧,那顺便把A说一说说吧,那啊讲几天三天是吧,那就我不能讲三天啊讲这个带着大家回顾的回顾一下吧,来来到这儿呢,来到我们现在这里边。呃,在这儿。
06:02
你们现在一说一辈子,你们现在印象有都能想起来什么啊,其实想不起来什么是对的,对吧,因为咱们在操作的时候,根本就不用这个一辈子来进行操作,对吧?来。呃,那么首先呢,来看一看这个,我不知道咱们这个文档是不是一样,应该也不会差太多是吧,我就不管一样,不一样的话,你们到时候你们肯定如果细节的话,你们来看你们自己的来法,那我简单的带大家把这个东西给他走一下对吧?呃,那么关于我们的h base这一块呢,那第一个对吧,在咱们简介这一块对吧,那大家得知道a base它本身是什么对吧?它是一种什么分布式可扩染值的海量存储的一个什么农数据库,对吧?然后接下来那么大家说database,我相信你们都能知道什么列式存储是吧,其实严格来讲这个东西叫列式存种不太对,对应该叫什么叫列族存储。
07:00
其实它是列足式存储的对吧?然后呢,咱们现在呢,说这个h base呀,它本身呢,这里有个数据啊,这个模型对吧?那么这块呢,其实建入逻辑结构,逻辑结构什么意思,同学们,什么叫逻辑结构啊,逻辑结构就是为了帮助你们理解对吧,就是你们现在就说表对吧?然后呢,就说咱们现在这个数据库,你们首先呢,在你们脑子里面想的肯定是买SQ,对,因为买SQL对你们来说已经在你们脑子里边已经根深蒂固了,对吧?所以说呢,既然大家都已经形成这样的一个思想了,所以说呢,那么它本身呢,也有些逻辑的概念,然后呢,让你感觉,哎呦这个东西和我们现在啊,这个买S狗比较像啊,理解起来不会那么难,但是呢,那你想如果他在设计一个和MYS狗完全一模一样的东西,这个东西那没啥意义了,因为买SQ现在是不是本身对吧,他自己又有一些问题啊对吧,诶在做咱们大数据场景在好多地方对吧,它其实呢是有局限性,所以说呢,那么在咱们这个h base设计的时候,他呢,在逻辑上感觉呢,诶我和原在这。
08:00
做比较像,但是人家在其车底层实践上对吧,做了很多优化对吧?那么其实我们一看啊,就我第一次在看咱们这个h base的时候,其实我感觉这个东西在设计的时候最起码还是挺惊艳的,对吧,为什么呢?因为一开始我在想买搜的时候,对吧,简单的自来改查这个不难对吧?搜狗语句呢,你没事的时候,假如说同学们你们现在你们搜狗怎么样,你们circleq怎么样,不怎么样是吧?假如说你们现在每天两个circleq。啊,每天两个搜狗一直练到你们毕业,你们试一试对吧,轻松当一个搜q boy,对这不用多啊,就每天就两个对吧,每天就两个难度呢,你可以逐级对递增对吧,每天这个稍微的稍微你在选的时候稍微超出你的能力范围一点点对吧,你别天天选,诶查询所有这个什么总数是吧?对超出你能力范围一点点,这么练才有意义啊超超出能力范围这么一点点才有意义对吧,然后你可以选着练一练对吧,这个不要瞧不起搜过对吧,这个东西是用保底对吧,实在不行对吧,你像上上上这班一哥们对吧,做运维的,然后说实在不行我就做大数据运维去对吧,然后我说你这怎怎怎么怎么学一回就跑到做运,因为他本身做运维的嘛,对吧,他是保底对吧,你也有个保底嘛,对吧,这实在不行回去对吧,So boy,所以说可以什么呀,练一练啊,然后接下来那么咱们看一看,说我们现在呢,这个逻辑上啊,这个h base,它的一个数据模型和关系数据模型很像。
09:26
对吧,然后呢,它也是对吧,把这个数据存在一张表里边,有行的概念,有列的概念,但是呢,其实it base它呢在存储的时候也是KV对吧?那么更像一个什么呀,注意啊这个词对吧,它其实叫做多维度的map对吧,多维度的map那么这个其实和它底层力存储对吧有关系,为什么叫多维度MAP1会给大家看对吧?那么咱们现在呢,先来看一看关于我们的h base子的逻辑结构,那么这块呢,我觉得大家应该呢把它掌握住对吧,就一开始我在金融买soq或者一些关于数据库的时候,对,就拿买soq来说,对吧,其实呢,你要简单用的话,这没问题,就像一开始我们在做SSH项目的时候,我们根本就感觉不到说买S狗它本身哪块不好,感觉不出来,等于我操作写搜的时候就很都很少直接呢去调咱们的方法来完成c rud,那就完事了,但是后来呢,我们在做一个项目的时候发现啊,这个MYSQL本身的又是我现在存储容量不够了,然后呢,又是我现在这个字段不够了,那怎么办?这个时候呢,它就涉及到。
10:26
对吧,哎,我们现在对吧,建表的时候,哎,不停的不停的建,对吧,然后呢,这数据不停的的加,那么这个时候会出现我们现在这里边出现了很多什么呀,很多的宽表,还有咱们那高表,对吧?然后后来呢,你得做优化,那做优化的时候,那怎么优化呀,那买S狗L就开始对吧,什么水平切分,什么垂直切分,对就这一套东西对吧?哎,那么咱们现在所谓水平切分,那其实就是相当于什么,比如说一张表这个数据太多了,那怎么办?咱们是不是把它切一下呀,对吧,垂直切分,比如说现在这个字段太多了,那咱们是不是把它给你们切一下呀,对吧,来分成我们现在呢,对吧,这个多个表,然后到时候再做一个关联啊,再做一个关联对吧?但是后来我们现在对,如果说你要体会到痛苦之话,一看啊这个h base它的设计对吧,你就感觉这个设计应该是挺好的,对吧,为什么呢?大家看一看整个啊,咱们如果刨除咱们现在外部给我列出这些东西之外,对吧,然后呢,你现在就看它对吧,你的感觉就像这不就是咱们关于数据库的表嘛,对,比如说你现在就看谁呢在这里。
11:27
就看这个等用用别的颜色,你就看它啊,就看咱们现在我蓝色圈起的部分这什么,这不就是咱关系数据库的表吗?对吧,上面这些什么,这个表的那个列名的这列名,然后接下来这个是不是我现在的吧,表里的一行一行行记录啊对,这和它关系数据库基本上没什么问题,对吧?但是呢,那我现在如果是买所有线的关系数据库的话,有可能出现咱们这个宽,还有咱们这个高的问题,那怎么办呢?切分对吧?人家在咱们这个天然设计的时候,它就可以做切分的,怎么切分的对吧?如果你现在的表它过宽了,那么这个时候它有个概念叫什么呢?叫咱们这个列足对吧,咱们是不是可以在这里对吧,来建列足,然后列足里边来放到具体列啊,我问大家,你们如果在生产环境里边啊,你们生产环境里边你们应该用我们另外一只子,你们列足一般建多少啊?
12:15
啊,是不是应该多一点好,就一个,就一个列组有什么意义啊,啊你们见这个列组,你们觉得是多一点好还是少一点好,少一点好对吧?中间这个东西呢,咱们这个列足不是越多越好,对吧?一般咱们是不是一个就差不多了,对吧?哎,那么咱现在呢,这有一个列足的概念,对一个列足,然后接下来那么除了我们这个列足之外,那么咱们现在这里还有什么呢?还有一个叫做我们这个对吧,这个region啊还有region,这个region是不是就是相当于在咱们水平切这个方向上来做一个切分呀,Region根据什么来划分的。Region根据什么来划分呢?啊根据什么来划分的,是不是根据咱们这个r key啊对吧?注意啊,它根据咱们这个rie对来进行一个划分,每一个range里边呢,其实我们这个rie的范围是不一样的,对吧?每一个R这个read里边rie范围呢是不一样的,对吧?然后接下来那么咱们现在这里边对吧?是什么呢?因为我们现在这种啊切分方式,这种划成一个个region,然后这块呢,划分一个列足,那么这是在存储的时候,它是怎么存储的,对吧?那么咱们现在是不是把啊当前这一块咱存一下,然后这块存一下,是不是以列读的方式来存储的呀,对吧,以电读方式来接存储的,这个呢,是它的一个基本的一个我们这个逻辑结构,像在逻辑结构里边呢,它所涉及到这些东西,那大家应该知道对吧,那么一个我们这个啊逻辑的结表里边,那应该有什么呢?应该有我们这个列足应该有列对吧?那么应该有什么呢?R key对吧?然后呢,给r key可以划分我们这个region对吧,可以化region对吧?然后接下来那么再往下走呢,这会是个物理结构,那么这个物理结构呢,就会体现。
13:55
看出来它是一个多维map集合的一个这样的概念,什么叫多维map集合,同学们看一看,假如说啊,我现在呢,这里有张表。
14:05
这张表,然后当前呢,这个应该是我的列组吧,对,Person in for,然后在这里呢,有我的三个点,Name c,以及我的电话,这块呢是rookie,对吧?那么这里有三条记录,那么这些数据在咱们这个数据库里面,其实底层它怎么存储的呢?它怎么存储的对吧?如果说我现在要是函数存储的话,是这样来存储对吧?如果说我像列式存储的话,那这个时候是不是应该说张三李四往五这种啊,对吧?那么到底怎么存的同学们对吧?到底怎么存的对吧?那么咱们怎么样去体现这个二维表结构的对吧?二维map呢,注意啊,多维map呢,那么注意看它其实在存储的时候,那么它这里边是吧?比如说我现在在当前电行数据有什么张三北京,那么它在存储的时候呢,其实是这种方式来存储的,谁呢?咱们看我现在呢,这个是rook key,然后rookie后面跟的什么,是不是咱们这个列族啊,列族后边是跟的什么,是不是咱们这个名字呀,列名吧,然后接下来以及呢,我的类型和我们0TIME,这是相当于版本对吧,然后接下来这才存的什么,这才存的是我们这个值,那大家想想这样的话,咱们现在这里在存储的时候,前面这一部分是不是才是K啊,这一部分是不是咱们才是我们这个vn value啊,所以说呢,那么它叫我们这个多维的我脉部集合。
15:20
其实指的是什么?其实指的K,它其实呢是由多个维度组成的,而不简简单单的说我们现在呢是揉K,大家注意,原来大家可能脑子里边有这样的一个这样的一个误区,什么呢?我说h base啊,是以我们这个KV结构存储的,你们可能脑子马上想到哦,KV有个入K是K,然后后面对应的是一条记录,对吧?注意这是不对的啊,这是不对的,其实这是咱存储的时候呢,这个微存的就是我当前这Excel啊,当前的Excel好了,然后这块呢,除了它之外呢,那么咱们再往下走,那么再往下走呢,那么关于我们现在这个数据模型,这里面这些东西我就不带大家一个个看了,然后大家呢,下去自己去看,对吧,然后接下来,那么这里有一个基本的一个架构,对吧,这个呢是不完整版的对吧?那么再一个我们的h base里边,大家想一想,咱们是不是应该有两个组成,有什么h master,还有什么h range serve版,对吧?那么咱们现在呢。
16:20
在这里,那应该也是对吧,那么咱们现在在一个集群里边呢,那应该有什么,应该有我们这master对吧?那么应该有什么咱们那个reading server对吧?那么咱们这个master呢,它也可以高可用,通过谁通过咱们这组keeper对吧,来实现我们这个高可用,然后接下来那么在咱们reading server里边啊,在咱reading serve里边,这个read server代表什么,是不是代表咱们相当于我们这一台服务器啊,就有点类似于什么,有点类似于这个呢?是我们内部note,比如说102啊,它是我们这个内部note,然后这read server是不是相当于我did note,或者相当于我们什么node短,或者说咱们这个note manager短这些东西对吧?哎,那么其实我这read server里面放的是什么呢?它放的是我们一个个region,大家想一想,那么region是不是根据我们的r key把当前这个表呢行数据来做一个水平切分呀,对吧?那么在咱们一行里边,它是不是可以切分为咱们多个我们这个列足,然后接下来那么咱们当前这个水平和垂直态一组合合成什么了,是不是在咱们一个垂阵。
17:20
它可以有多个我们的store对吧?这每一个store其实对的是什么,是不是一个列足的数据对吧?每一个store其实对应的呢,是一个列足的数据,然后接下来,那么咱们这个store,它本身是不是要存储文件,这个文件实际存储在哪呢?同学们。哎,它本身存在什么ad上去了对吧?那么存在ADS的好处是什么?大家想一想,你只需要在咱们这里关心它怎么来存的,怎么去读的那么具体文件,它里面的一些什么可用性啊,什么高可靠性,这需要你关心吗?不需要你关心,因为咱们只要往API存,API本身是不是有副本的机制,它就可以保证咱们这个A这个文件,它这个高可用这些特性啊,对吧,所以说这个呢,就不用你来管了,它存在哪呢?它存在的我们这个啊,这个ADS上面去,对吧,而且在存的时候,它其实呢,是怎么存的,其实以块的形式。
18:11
啊,这一块的形式,那默认一块多大呢的64KB啊默认6KB对吧?那么咱们现在呢,先整体看一看啊,这块它大概的一个我们这个大概的结构是这样的对吧?这里边有master对吧?然后接下来有什么呢?Region server,然后region serve放的什么呢?放的是一个一个的啊region对吧,那region里边是不是有什么region里边对吧?它可以有我们这个对这个store对吧,有咱store,这个store其实存储就是每一个对应列足的一个内容啊,某一个对应列组内容对吧?那么咱们现在一个region server上面,它可以有多个我们这个啊这个region啊,它有多个region啊一个我们现在它的一个region server上面,它有多个我们这个对吧,Region啊,多个region对吧,那么这块呢,要知道这是关于我们的基本架构,那么具体每一个啊,这个角色干什么呢?比如说reading server对吧,它主要干什么呢?它主要呢是对数据的这个操作,然后master,那么它主要呢是一般对表操作交给他去实现,然后主keepper呢来实现咱高。
19:12
不用HDMS,它底层来提供我们这个这个存储啊,来提供咱存储服务,然后再往下呢,这里有一个h base,它的快速入门,像这块同学们,那么咱们现在呢,什么安装啊,什么部署啊,高合用这块呢,咱不说了,来看一看咱们基本的操作啊,基本操作首先呢,那我现在要想去使用咱们这个h base的话,同学们对吧,那我是不是得先把该写的东西给提起来呀。都起什么呢?足keeper你是在起对吧,然后HDS是不是在起呀,对吧,那咱现在呢,在这里Zk.SH然后呢,咱把组keepper给提起来啊,组Q提来,那么你们起还多这个研究起吧。雅是不由起啊,那雅安不起的话,那咱们是不是直接这样start d Ms是不是这就可以了,对吧,那咱现在呢,把这个东西给提起来。
20:16
反正也起了,顺便把卡卡起一下是吧,把那卡卡呢也起起来啊。然后red和我们这个mawell没一起啊,同学们一会咱们正常,我要一会做操作的时候都要想着点这个red和mawell还没起呢,都要还没起呢,现在我启动什么呢?启动了我们现在呢,对吧,这个HDMS对吧,那这个内not电not电note是吧,这没问题,然后启动了我的卡不卡,启动s keepper对吧?然后接下来来到哪呢?来到我们这个o VT model h base的来到咱们h base下边,然后接下来这个启动这里边咱们去执行哪个命令呢?啊B,然后接下来这里边。
21:01
咱们现在如果要启动的话,这是哪个。我已经把它启动了,我想打开一个命令行。A,是被子,然后呢,Shell啊,是这样吗?啊,那咱现在呢,在这里我们呢,去连接一下我们现在这个it base客户端啊,像这些啊基本操作安装咱不说了,那咱直接看一看,我通过咱们这去操作的对吧?那首先呢,你要想去连接的话,那应该是it base,然后呢shell对吧,那么这里有些命令对吧?其实呢,我们大家注意啊,你也不用去记,如果你要记的话,你记一个have全够了对吧,你想想咱们这里是不是有一些我们这个命令啊对吧,比如说我们现在呢,这里边有一些什么啊,这这里边操作的,这里边克隆的什么delete的对吧?这里边像这些命令到DML命令带些对吧,然后呢,咱们现在这上面这些DDL命令对耐些对吧,而且这些东西呢,其实我们直接操作1BASE对吧,这个时候不是特别多啊,直接操作它的时候不是特别多,对吧,然后但是呢,那简单的,你想一想,你学过it base,虽然说你直接操的时候不多,但是有些语句呢,那你也得知道,首先第一个list对吧,这个例子干什么,是不是查看当前我这里面都有哪些表啊,对吧?那么这里边把所有表给列列出来,然后接下来,那么咱们现在呢,要想创建表,那么创。
22:16
念表的话,大家想想它的语句,对create有table没有,有没有table,对,在咱们这里边有没有什么table,对,H base master,我看一看啊,这里。克隆一个session对吧,看咱们当前这个起没起来好像有问题对吧,你看咱现在在这起的时候,我这好像没起来是吧?我没起base吗?啊来start咱们那个h base啊,我说班长在那告诉我start start start,然后我当时想我说这班长怎么弄的,这连那个连那个连接客户端的命令都不会了啊来那娜现在呢,来把这个东西你连一下连一下。
23:07
然后看一看当前呢,咱们现在把这个连之后,那如果要是正常启动成功,在这里是不是应该有h master对吧?然后这里是不是有个h range server,然后在咱们这里有高可用三这三个也有一个我们这个对h master对吧,也有each master是吧。呃,那么我接下来呢,那么连接之后呢,首先通过一个list命令来看一看,当前呢,咱们现在这里连表啊,像这些表大家看啊,什么system点什么system点什么,像这一表是谁的呀?是本身的系统表吗。你们你们假如说你们一开始这个装h base,然后就这接这list有这些东西吗?没有吧,这些表是不是咱们这个phoi斯这个启动之后它是不是才有啊对吧,这些其实我们这菲尼默认生成的对吧,不是我们这个什么呀,不是HB本身啊,它的系统表对吧,好像诶我现在一看这里边对吧,什么有这个什么什么这个系统表,这不是其实呢,是我们菲尼克斯的它是的一些表对吧,然后接下来那咱现在有create呗,在create有table没有同学们。
24:11
创建表的语句有没有table,没有是吧,那直接我假如我现在想创建一个表,然后呢叫student,那这块咱们现在应该什么可以的,然后后边直接student,这student用双引号和单引号括起来,单引号student,然后后面跟什么列读是吧?那他现在呢,来创建一个对吧?那么这个时候呢,我现在啊在里面创建一个表对吧?那么表呢,当前这个是表名,这个呢是列足,然后接下来往表里面插数据,这个我就不这个写了,对吧?这里不写了,来CTRLC同学们,当我现在呢往表里插数据的话,那么这个时候咱们应该语法什么样的,是不是应该是我们现在呢,执行我们这个put操作,表示往表里放数据,到表往表里边来插入数据,对吧?然后接下来那么咱们像在这个是表名这个呢rookie,然后这块是不是咱们这个列足以及列名啊,这个是咱们的值啊,这块的值对吧,那么这块大家注意啊,我现在在执行的时候,对吧,为什么我们直接去操作的这个列子时。
25:11
不多呢,对吧,因为我现在呢,你们已经习惯了iner into,你们这种语法呢,你们还能接受对吧?现在突然说来,我先往表里放数据来put,然后后边呢,其实没有什么语法,对吧?这后面是什么?后面是表明lock key,然后列足列名,再加上咱们现在具体的值啊,这具体的值对吧?那么咱们现在呢,往里边放一些数据啊,比如说我现在呢,一个是我们这个啊,性别啊,一个呢是我们这个年龄啊,把这年龄呢也加一下,对吧,然后再来一个名字吧。啊,再来一个名字。来,那么这个名字呢,也是对吧,1001,然后一份啊这个名字,然后接下来呢,我现在呢,想去查看咱表数据,那么你在查看的时候呀,注意啊同学们,那么咱们可以通过什么呢?这一个SC对吧?然后接下来加上谁加上我们当前的这个表名对吧?那么这个时候你可以去指定对吧,我现在查看对吧,当前表那个数据对吧?那么这块呢,是我们的rook key,然后接下来这块列的是不是我们当前这个列名,以及我们现在这个值啊对吧,我当前在咱们这个r key的对应的啊,就这这个值其实相当于什么,相当于你现在查看这样的数据对吧,1001,然后接下来这里边的rie是我们的个eo对吧,Rookie是我eo,然后接下来在rookie下面,这有什么呢?这有我们的name。
26:37
对吧,这有我们这个age,对,这有我们这个Z,对吧,有这些东西,然后现下在内是当前这个值,对,真的,然后age呢是18岁,然后性别呢,使用的mail啊,性别是mail,然后这个时候K是101,就相当于你把这个东西查出来了,只不过人在展示的时候和咱们原来的关系数据库是不太一样了,对吧?哎,那么这块呢,是关于我们现在查看,那么当然啊同学们,那么查看的时候呢,那其实我们现在它之所以这个效率高,比如说我现在HB在查询的时候,这个效率呢,这个比较高,那为什么呢?其实它里边是不是给他做一些过滤啊,比如说常见的过滤方式,对你可以按照什么呢?你可以按照咱们这时间。
27:18
啊,按照时间来进行过滤,就你的查询的时候,你可以把这个时间对要给我传过来,然后根据时间呢我来过滤,那么第二个呢,可以按照咱们rie对吧,你可以过rookie对吧?然后呢,我给你rookie来给你过滤,这里是不是有什么大大的肉,还有什么倒肉啊对吧,给你rookie,还有一个什么比较重要的提升查询效率,还有个不同过滤器吧,对吧,还有不同过滤器对吧?那么这块呢,可以进咱查询效率对吧?然后接起来,那么也可以去查询咱们表结构,通过咱们d gra,其实D也行吧,这试过吗?然后dic,然后不一定非describe吧D,然后呢,接下来我当前这个表student对吧?那么是不是也可以查看,然后当前呢,这个表这的一个描述信些啊,对吧,反正我一般我在看的时候,我我从来没有仔细看过,对,因为我觉得这种东西看比较麻烦,对吧,就是就是就是描述的话,对吧,哎,用那个保利说的话,不是给人看的是不是对吧,所以说我现在呢,其实你知道这命令大概走一遍啊,大概走一遍这些不是咱们的重点,对吧,然后接下来更新。
28:18
对吧,然后呢,或者说查看指定行或者指定列足对吧,这个数据刚才SC它是干什么,它是不是只查看整个表了对吧?然后可以查找范围,那么现在呢,你可以指定的我要查哪一个我们的列对吧?这个其实就get大家发没发现,其实我们现在这里边前面抓加这些东西和我们这个ES里边有点像,和咱们right for风格是不是有点像put,然后呢,做咱们的添加,然后呢,咱们的get对吧,那么做咱们的查询单个,然后search和咱们的SKY是不是有点像对吧,然后delete对吧,那也是做咱们这个删除嘛,对吧,这delete也是做删除对吧,那这会其实对吧,这个和我们的这个write风格是比较像的,比较像的,然后接下来那么这里有个tracked student,这个track student呢是清空数据同学们对吧,但是呢,你在执行的时候,你会发现其实呢,它是先干什么的,他是不是先disc的,那么这个事呢,是他帮自动做的,比如说你看咱们现在这里,我去这个清空数据,那么如果清空数据的话,那么他呢在这。
29:18
执行一下对吧,你看他现在干什么呢?是不是disable,呃,咱们table,然后接下来再做传给对吧,相当于我现在先把这个表当成失效,然后接下来除了这个之外呢,我还可以job照什么呢?照呢死在哪行不行,同学们。啊,如果这么直接照顾的话,行不行,来看一看啊,同学们在这里,那我现在呢,那么照咱们这个table,那table必须是干什么说先disabled,也就说穿品的话,它会自动帮你做,但是呢,如果你要job的话,它首先呢要先disabled,呃让表处于我们现在disable的状态,然后接下来那么再去执行什么呀,再去执行我这job,对,再执行job,好,那这块呢,来把这表也删掉吧,然后这块呢,咱们把这表对吧,干掉啊,把这表也干掉。
30:04
好了,那么这个完事之后呢,那么在接下来这里有一些API,这个API操作呢,这个不带大家看了,对,因为我们一般的在操作的时候,是不是相当于我不直接操作h base,对,就刚才命令行和API,其实h base呢,咱们都不直接操作对吧,咱们都是给它套一个壳对吧,To to菲那斯对吧?然后接下来呢,那么这块完事之后呢,那我要把这块啊带着大家稍微看一看对吧,稍微看一看,短于回顾呢,那肯定不会像你们原来讲那么细了,大概的想一想同学们。呃,那么这块呢,有一个我们这个架构原理对吧?架构原理对吧,那么简单去给大家看一下,然后大家呢,如果觉得啊这块忘的比较多的话,你们到时候下去好好再去把它复习一下对吧?呃,那么h base呢,它本身数据呢,是存储在我们的HD上面去的啊,所以这底层呢,是我们这个HDS对吧,这底层呢是往HDS,然后接下来那么HDS,那么再往上呢,是往h base内容对吧,那么整个h base呢,它又分了我们这么master,什么咱们这个reading server对吧?那么master由谁来维护呢?它由我们这组keepper来进行我们这个维护对吧,来实现我们这高可用对吧,然后接下来那么我们现在呢这个re server呢,对吧,那么它对吧有我们的master对吧,来进行我们这个管理吧,对,其实就相当于我们这个啊name node啊,相对于我name node,然后在我们这个read serve里边呢,这里面有这么多东西对吧,一个是我们的region,然后呢,一个是h log对吧,其实这个h log呢,那你们你。
31:37
所你们你们学的时候这个图后的一样吗?可能版本不一样,但其实差不多对吧?你们这会可能叫W对吧,其实是不是一样的东西啊,Wal什么是吧,Red headlo对吧,Right handlo对吧,预写日志嘛,对吧,其实大部分这个东西是差不多的啊啊其实思路是一样的,对,没有没有差太多的版本对吧?然后接下来那么咱们现在呢,在我这个h region so里边,它可以有多个region,多多个region,那么region里边呢?那么它放的什么?它放的是不是咱们现在一个个列足内容啊对吧?哎,那么一个region可能有多个列足对吧,一个region可能有多个列足,那么它底层的存储的时候存的是什么?是不是咱们这个store啊对吧,但是注意啊同学们,那我现在整个的在咱们写的时候,对吧,那我肯定呢,要把我这个这个数据写到我们这个HL上去,对吧,写到我们这个h base的文件上去,对吧?那么咱们具体写的过程是什么样的呢?那么这个流程啊,那你得知道,比如说同学们,我现在呢,在这里有一个客户端。
32:36
这个客户端呢,他想往里边来PUT1条数据,就像刚才咱们执行put student,然后呢,什么1001,然后呢,咱们这个加上我们这个列足加上列名加上一个r key,当你执行一条这个数据的时候,那么其实你把这个请求发给谁了,是不是发给咱们这个h master呀,对吧?那么h master那他怎么样把这个数据到最终保存到我们现在的HL的文件上去的呢?的,它是怎么样保存这这上去的,那么具体的过程是什么样的呢?
33:04
到具体过程什么样的呢?对吧,大概先啊来看一看这个架构,都知道这里东西干啥的,一会再给详细讲咱们读写流程对吧?那么你现在呢,要去做的话,大家想一想,这里边啊,H re so里边这里这几个东西,它的角色你必须搞明白对吧?那么首先呢,那我现在把这个数据拿到了,把这数据拿到之后,我直接去操作H这个file吗?比如说我直接和h base打交道了吗?不会的,同学们,如果它直接和H6打交道的话,它达不到那么高的效率。你想一想,我现在如果说啊,我要去写一个咱们这个工具啊,比如说你写数据库,这个数据库底层的数据存储在哪了,存储在我们的h base上面了,对吧,那么你每次数据过来,你就去和h base打交道交道啊和和HDM打交交道,那这个时候它其实效率很低的。对吧,那他为什么说H其实效率很高的呢?它是怎么做的,他并没有马上啊把咱们现在呢这个东西啊放到我的hcel里存储起来,而是干什么呢?而是咱们先是不是来一个日志啊,是不是先有预写日志这东西,对吧?哎,那么我现在呢,除了预写日志之外,同学们,比如他要往咱们这个日志里放一份,同时还要往哪放一份,是不是还要往我这个memory store里边来放一份啊,对吧?那么这块是不是有点类似于我们这个name node,它里边的有点类似我S内no里边它的一个的这个镜像文件那个东西,对吧,其实也是这样吧,对,我现在先干什么,我现在先来预写日志,然后接下来在我内存里边来存一份,然后接来,当内存里边达到的一定的大小之后,或者说达到一定的一个这个刷写时据之后,他在干什么,是不是才把咱们的ma store的数据写到哪,是不是写到我们现在a file里去啊,为什么这么设计,首先大家想一想,我们在操作的时候,我操作谁,我操作内存,操作内存这个效率肯定比你。
34:51
你直接操作Excel是不是要高啊?预写日志的目的干什么?怕丢嘛,对吧,你如果直接往内存里边写,这个内存数据是不是有可能丢,对吧,所以说咱们现在是不是,哎先往这里边来一份,然后接下来再干什么,是往内存里边写呀,对吧,那这样的话咱们效率呢都很高,同时呢,那这块对吧?诶还能保证咱们的数据啊,它的不丢失,对吧?那么当咱们现在呢,这个数据达到一定的刷写时机之后,咱们呢,再往我们这个到fair里来写,这个呢,是它整个的一个详细架构,那么具体啊,咱们读写又是什么样的,咱们稍微休息一会儿回来呢,继续啊装修一下。
我来说两句