00:00
个咱们现在的时间是晚上的九点半,那么咱们就开始今天晚上的学习啊,那么今天晚上呢,咱们来给大家介绍一下我们的mango DB, 那么首先大家需要知道哈,这个mango DB呢,它是一个什么呢?它是一个我们的low c code数据库,而且呢,我们可以把什么呢?Low CQ数据库划归到我们的什么大数据的体系当中,因此呢,大家后续如果你要系统的去学习大数据的知识,那么需要去学习我们的low c口数据库,因此呢,希望通过今天晚上的学习,能够让大家对我们的Lu西口,尤其呢是对我们的曼GODB能够有一个进一步了解,那么顺带着呢,我们也会给大家介绍一些大数据的知识,那么希望通过今天晚上的学习哈,能够为大家后续的什么呢?深入学习哈,奠定个基。
01:00
出,那么今天晚上呢,着重给大家介绍以下两个方面的知识,那么首先咱们需要对no c口的一些基本知识要有一个初步了解,到底什么叫low CQ数据库,它又有哪些特点,那么常用的low CQ数据库又有哪一些?那有了这个基本的知识以后,重点的讨论一下我们的第二个部分,有关我们的mango DB, 那么到底什么是mango DB, 我们可以把它用在哪些场景之下,如何去操作和访问我们的mango dbam, 那么我们也会这样在第二小节里面am来给大家进行相关的介绍,好因此呢,咱们现在呢,咱们就按照这样的一个顺序来给大家介绍今天晚上的内容啊首先咱们看一下第一小节no c口数据库的基本知识,好这个地方呢,赵老师呢,可能就需要首先问大家一个问题哈,那么各位直播间的同学能不能够。
02:00
告诉一下赵老师,到底什么是我们的lowcy口,你能够把lowcy口的含义发送到我们的公屏之上吗?那么如果说大家都知道呢,就请积极回答一下赵老师的问题哈,如果说大家不了解呢,就请在咱们的公屏之上回复一个0,或者呢给赵老师呢点一个赞。好,咱们接着呢往下来给大家进行相关的介绍,那么咱们首先需要知道这个low cle的什么,它的全称是什么哈,那么它的全称是什么?是我们怎么not only cle, 那如果说你直接从什么字面上把它给翻译过来的话,它什么意思呢?它是指的是不仅仅是我们的什么c com, 那么这个呢,是整个Lucy com, 它从字面上去理解到底是什么含义,但是呢,需要大家注意一下,那么咱们讲Lucy com呢?它的真正含义是什么呢?它发。
03:00
更指所有的非关系型数据库,这个呢才是我们Lucy com它的什么根本的含义,好,我们给大家记在咱们的课堂笔记上,在它泛指哈指呢所有的非关系型数据库,因此呢,我们在讨论这个no CQ数据库之前,首先就需要讨论另外的一个概念,那么到底什么是我们什么这个关系型数据库,那么比如说你的or my c com PG呢?这些都是属于传统的关系型数据库,当你把它理解以后呢,反过来去理解什么叫做非关系型数据库呢?自然而然的就明白,那简单介绍一下关系型数据库的基本知识,对关系型数据库它是什么?基于我们的关系模型,那么怎么基于关系模型我们所提出来的一种数据库呢?就叫做关系型数据库呢?那接着呢,再。
04:00
往下面就讨论什么又叫做我们的关系模型呢?那么关系模型它指的是我们使用一张什么二维表的什么这种行和列的方式来存储数据模型,那么就叫做关系模型,对,那么换句话去说,在你的oraclel里面,MYSQL里面,最终存储数据的模型都是这种二维表的什么行和列,当你把整个的什么这个关系型数据库,什么基本知识搞明白以后呢,反过来去理解什么叫做lo西com,什么叫做非关系型数据库呢?自然而然的就明白,那么既然它只非关系型数据库,对,那么我们在low CQ数据库当中,它存储数据的模型。可能呢,就不是这种二维表的什么呢?行和列对他有他自己的什么呢?数据模型,并且呢,既然他不遵循我们的二维表示什么行和列,那么我们在这个no c code的什么数据库当中,一般来讲呢,它也是不遵循我们的范式,他是什么反方式的,那既然他不遵循方式,比如说他可能不遵循我们的第一方式,可能呢,也不遵循我们的第二方式,可能呢,也不遵循我们的第三方式,那么反方式以后呢,它所带来的什么缺点是什么呢?缺点就是它为什么呢造成数据的什么呢?冗余,那么什么叫数据冗余呢?也就是说数据它有可能会多存,那么这个是反方式以后它带来的什么影响,但是呢,他也有他自己这个什么自己的优点,优点就是说他能够什么提高咱们。
05:51
我们查询的什么效率,因此呢,我们讲整个的low西库当中,它的基本的出发点跟我们的关系型数据库呢,正好是截然相反的,对,那么你的传统的这个关系型数据库它是遵循方式的,既然遵循方式,那我们在关系型的数据库当中,它呢就不会造成数据冗云,但是呢,它会降低或者说影响我们查询的性能,因为呢,整个的什么关系型数据库,它是通过降低牺牲查询的效率来去节约存储空间,那整个的什么locy com跟他什么截然相反,那么呢,这些基本知识以后。Com好咱们还需要进一步讨论一下,哪些数据控它是属于我们的lo c扣一些比较常见的什么呢?Low CQ的什么数据库都有哪些?好问一下各位直播间的同学,你能不能。
06:51
能够把一些比较常见的low CQ数据库的名字发送到我们的公屏之上,那么如果说大家都知道呢,就请积极回答一下赵老师的问题哈,如果说大家不了解呢,就请在咱们的公屏之上,请给赵老师呢回复一个0,或者呢给赵老师呢点一个赞,好,咱们接着往下来给大家进行相关的介绍,那么no cql数据库呢,有很多种,这地方呢,怎么简单的给大家罗列几个,先把他们的名字写在咱们的课堂笔记上啊,第一个呢,就是我们嘛,我们的reading,对,好这第一个,那么第二呢是我们嘛H背,然后呢,第三个呢,就是咱们今天晚上重点要给大家介绍的什么我们的mango DB好简单的什么,介绍一下第三款常用的什么low c code的什么数据库。
07:51
库,那首先第一个呢,Reddi, 那什么是我们的red呢?Red写一下它的基本特征,它是什么?基于内存的是什么呢?建值数据库,那么什么叫基于内层的建值数据库呢?它有两层含义,首先第一层含义呢,它是基于内层的,既然它是基于内存的方式,那么我们在阅S当中,读写数据都是在内存上完成,那既然你是基于内存的,读写性能会非常非常的快,这个呢是整个瑞是它的什么最主要的特点,但是呢,请大家注意一下,这因为约呢,它是基于内存的,它也带来了一个什么缺点,缺点就是。
08:38
内存呢,它是一个不安全的地方,那么咱把数据存储在内存当中的话,如果说内存突然掉电崩溃了以后呢,那数据将会丢失,那么我们在这里面呢,它就可以通过什么呢?数据的什么持久化来保证内存数据的什么安全,好咱们解释一下,什么叫持久化呢?持久化就是说就通过这样的一种方式,我可以把那一层头的数据写到文件上,那既然写到文件上以后,如果那层掉电崩溃以后呢,我通过重新读取文件,就能够达到恢复内存指数这种的目的,这呢是整个认识里面它的持久化机制,通过持久化的机制,约斯呢,它能够支持我们的容错,如果说大家了解约斯的话,那么能不能够告诉一下赵老师。
09:38
我们在当中它的数据持久化有几种方式,你能够把这两这几种方式的名证发送到我们的公屏之上吗?还是跟刚刚一样,如果说大家都知道呢,就请积极回答一下赵老师的问题啊,如果说大家不了解呢,还是呢给赵老师呢回复一个0,或者给赵老师呢点一个赞。好,咱们接着呢往下来给大家进行介绍,对,那瑞德里面呢,它有两种持久化,一个呢叫RDB,一个呢叫做我们什么a of, 简单解释一下,什么是RDB,什么是我们的ARDB呢?它是通过什么快照的方式来实现持久化,而而我们的什么a off呢,它是通过记录什么日志的方式来实现持久化的,这个呢,我们也将会在后续单独给大家介绍约S的时候呢,来给大家进行详细的什么说明。
10:38
好,这个呢,是整个热层里面它的第一层含义,它是基于内层的,那么它的第二层含义呢,它是一个什么呢?它是一个建值数据库,那么什么叫键子呢?它是通过我们的嘛,K value的方式来保存和查询数据,对,当你插入数据的时候,需要通过K把value插入到red当中去,而你查询数据的时候,也要通过K来查询我们的value,对,因此呢,简单的怎么介绍一下阅历是更加深入知识呢?赵老师呢,也会在后续的直播课内里面单独给大家介绍有关约S么相关的内容,好问一下各位直播间的同学。
11:20
还能不能够跟得上赵老师的节奏,如果说大家都还能够跟得上呢,就请在咱们的公平之上,请给赵老师呢回复一个1,或者呢给赵老师呢点一个赞,接着呢,咱们介绍第二款比较常见的low西口数据库,那就是我们嘛,这个big table, 那么首先啊我们的这个什么这个h base h base首先大家需要知道,那么这个h base呢,它是于什么?它属于我们的什么哈多普生态圈体系,那么今天晚上一开始的时候,赵老师呢就提到过,我们可以把什么整个的low c口数据库划归到我们的大数据的体系当中,因此呢,大家后续如果说你要系统的去学习大数据的知识,需要去学习我们的OCGO,当然,我们可以使用什么哈杜普当中的组件来去构建我们的离线数据仓库。因此呢,哈都。
12:21
那主要用于离线数据存储,包括离线数据计算,并且HP呢,它的主要特点是什么?它是用基于我们什么big table事项提出的一个什么low西口数据库,那么咱们这个地方就需要解释一下什么叫做我们的big table, 如果说你把big table翻译成是中文的话,它就叫做我们了,叫做我们的大表,那什么又是大表呢?大表的核心思想。非常的简单,他就是把所有数据存储在一张表当中,从汇变大表的思想就是他把所有数据存储在一张表当中么,既然你把所有数据存储在一张表当中,那么很明显呢,它是不遵循我们的范式的,对,它是反方式的,既然是反方式的,它就会造成数据冗余,数据它可能会多存,但是呢,它所带来的特点优点就是它能够去提高我们查询的性能。那么了解到h base是什么基本特点以后,还需要知道h base呢,它是基于哈多po HD FS之上的一个什么历史存储数据库,那么这句话呢,也很重要,给大家基于在咱们的课堂的什么笔记上呢?它是什么?基于哈杜普当中的什么HDF。
13:49
Gra me之上的什么列是存储的logs口L数据库,那这个里面呢,它就有两层含印,首先第一层含义呢,它是基于我们的HDS,那这个地方简单解释一下,什么叫做HDFS哈,HDFS呢,它是属于这个。
14:10
哈都普当中的什么分布式文件系统,它能够以文件的方式解决海量离线数据的存储问题,因此呢,它适合构建我们的离线数仓,对,既然你的h base基于HDFS之上,对,那么我在h base里面我去创建一张表,表中的数据最终都将以目录和文件的形式存储在HDFS里面,并且呢,有了这这个基本知识以后,后面呢,咱们去安装部署环境的时候,那么你就需要先安装部署好我们的HDFSM,然后呢再来安装部署好我们的HPS,这个呢是它的第一层含义,它的第二层含义呢,它是一个什么呢?它是一个历史存储数据库,对,那么历史存储的行式存储它有什么区别呢?
15:11
传统的关系型数据库,比如说你的or IC com等等,他们都是什么?都是行色存储的啊,写个笔记,像上面这个地方,那么这呢,这些关系型数据库呢,都是嗯,行式存储的,行式存储的这种方式主要适合我们的什么OLTP的应用场景,那么什么叫做OTP呢?它的全称是我们么on online, 核心单词是中间的那个team,它叫做我们什么transaction p呢叫做我们的什么processing,如果呢,你把这个它翻译成是中文的话,对,它就是么我们的什么连接事误处理,那么我们在连接事误处理当中只会包含我们什么这个插入更新和我们什么删除操作,那反过来去说,传统的关系型数据库,既然它是行式存储的,那它就并不适合执行我们的查询。
16:11
怎么操作,因此呢,当我们去构建我们的数据仓库的时候,由于我们在数据仓库里面。需要使用大量执大量执行什么,需要执行大量的什么查询语句来去分析和处理数据,如果说这种场景呢,推荐使用我们的劣势存储数据库,对,因此呢,劣势存储数据库呢,主要适合我们的什么OAAP的什么用场景,那么什么叫o lap呢,也去把它的全称写在咱们的课堂的笔记上呢,全称叫做我们呢on m, 核心单词是中间的那个A,它叫做我们的anatic PE processing, 翻译成中文的话就是我们的连经分析处理,既然是分析处理的话,一般来讲哈啊,这个不绝对啊,一般来说的话,我们在o lap当中,一般情况下呢,只会去执行我们什么查询操作,因此呢,它适合构建我们什么,适合构建我们的什么。
17:18
数据仓库,那既然提到了什么数据仓库,简单说一下,目前构建数据仓库呢,你可以使用传统的比如说or海MYSQL这样的关系型数据库,构建我们的数据仓库,当然目前构建数据仓库呢,有两种主流的方式,一种主流方式呢,是使用咱们的什么大数据的技术,比如说你可以使用你的什么它都会,或者使用你的这个18g分林克构建我们的什么呢?这个离线数仓,或者是实时数仓,这个呢是构建数据仓库目前的第一种主流方式,还有一种方式是使用咱们的MPP什么数据库,那什么叫MPP数据库呢?就是我们的大规模的并行处理数据库,比如说比如什么Doris,那么Doris呢,它就是一个MPP数据库,并且它还是一个什么历史存储的。那么它非常适合执行我。
18:18
我们的查询均而构建我们的数据仓库,那么关于这个地方涉及到的什么大数据的知识,涉及到的Doris知识呢?赵老师呢,也都会在后续的直播课里面单独的来给大家进行相关的介绍,那么呢,这些基本知识以后再来讨论一下,到底什么是我们的mango DB啊对,那mango DB呢,它是所有的no c口数据库当中最像关系型数据库的一款no c库,对,那么它是什么呢?它是基于文档的no c口L数据库啊对,基文档的什么no c口数据库,好吧,张老师刚刚什么说的那句话,那么再重复一遍,到底什么叫mongo DB呢?Mango DB它是什么呢?
19:08
它是所有NOC库数据库当中最像关系型数据库的一款NOC库数据库,本质上它是一款基于文档的数据库,那么这个地方的文档是什么文档呢?是我们的嘛,B省文档啊,那什么又叫B省文档呢?B省文档它是什么接省文档,什么二进制的形式,因此呢,我们可以在mango DB里面直接存储一个什么二进制类型的数据,那么你在mango DB里面,它通过使用我们的分片的分布式存储,也能够去存储我们的大数据,并且呢,你在mango DB里面,它也支持存储我们的结构化数据,也能够支持存储我们的半结构化数据,因此呢,Mango d病它是介于关系型数据库和我们的非关系型数据库之间的一款数据库。
20:09
那么这句话呢,也给大家介在咱们的课堂笔记上呢,它是什么,它是于啊,写一下它什么介于啊,介于我们什么介于我们的关系型和什么非关系型之间的什么一款我们的OC口数据库,那么有的这些基本的知识以候呢,那么当我们在mango DB里面创建表的时来存储数据,数据如何存储在mango DB当中呢?因此呢,我们接下来呢,进入到我们的第二小题的学习,首先来讨论一下mango DB的什么数据建模啊,数据建模就是如何去创建我们的表,对,所以我们在mango DB里面表呢,不叫做table,它叫什么?它叫做我们的集合,那么你创建个集合本质上就是去创建了一张表。注意它跟。
21:09
跟我们在关系型数据库当中叫法呢,可能会稍微呢有一点点不太一样,但那注意我们在mango DB里呢,进行数据建模,创建表呢,它有两种方式啊对两种方式,那两种方式呢,一种方式是我们的吗?引用方式,那引用方式它就是什么类似我们在关系型数据库当中通过使用什么类似我们的外建类似关系型数据库的么外键,那通过使用这种方式能够关联mango d跟两个集合两张表的关系,这个呢,跟你在Oracle里面,MYSQL里面呢,创建外建是一样的,对这个呢,是我们在mango DB里面创建表进行建模的什嘛,第一种方式,还有第二种方式也是mango DB的么特点的,它可以采用我们么?我们的内嵌方式,那通过使用什么内嵌方式。
22:09
我们呢,也能够去创建mango DB的集合,那把多张表的数据嵌入到什么一张表M一张集合当中,因为呢,它是通过什么,通过使用咱们B省接省格式来保存数据啊,咱们这个地方以接省格式来看这接son它是不是可以进行嵌套啊,我在一个接上支符串里面,我可以以嵌套另外的一个什么啊支符串啊,那通过什么什么内嵌的这种方式,我们也能够去创建mango DB的集合,那么有了这个基本的知识以后,他们通过一个什么,通过一个简单的事例来看一下,如何去创建mango d的表,如何去创建它的什么集合的那么的事例呢,非常什么,非常简单,现在呢,我需要去创建表来保存什么信息呢?保存一部什么电影的信息,那当你拿到的需求的时候,首先我想我能不能够使用传。
23:09
通什么my secondcom或者是Oracle创建表来保存电影的信息呢,当然是可以的,因此呢,咱们首先去看一下,你要保存一部电影,电影呢,它有哪些信息需要保存下来,好了,咱们随便呢去找一部电影吧,好了,打开我们的嘛,这个我们的这个什么豆瓣什么豆but么电影网们啊,咱们就什么欢迎来龙川馆这这部这部电影来看吧,这好看一下,咱们这个叫什么啊,这不对,这个呢是一部电影,对我要创建表来保存相关的信息,首先第一个呢,需要保存信息就是电影的本身的信息,比如说电影名字,导演演员类型等等,因此呢,如果你要使用传统的关系型数据库,首先呢,咱们就需要创建一张电影表来保存电影的本身信息,这个呢,是我们需要创建的嘛,第一张表对不对,比如说你在这个MYSQL里面呢,首先。
24:09
创建第一张表叫做我们的么电影表,来保存电影本身的信息,比如说有哪些信息呢?有们电影的什么ID,电影的什么名称,名称包括他什么类型,还有什么导演等等的这些字段,通过创建这张表来保存一部电影啊本身的信息,还有哪些信息需要保存下来呢?看一下下面,那别人看过你的这部电影以后呢,对,那么可能会针对你的这部电影呢,发表一个什么,发表下面的一个什么,一个影评,当然一部电影呢,它可能会有多个影评,因此呢,他们可能之间是一个什么,是一个一对多的关系,因此呢,你要把这信息也保存下来的话,我们就需要在MYSQL里呢,创建我们的第二张表,对,是我们了影影评啊,是我们的嘛,影影评表的,那影评表里面呢,可能会有哪些相关的字段呢?比如有影评的什么影评的我们的I。
25:09
ID包括它什么内容?那这个影擎它针对哪一部电影的呢?需要一个什么电影ID?很明显这个地方的电影ID,那some面嘛,电影表,它们之间是不是一个外界约束的关系?因此呢,我们在MYSQL里面包括的Oracle里面至少就需要创建两张表来保存相关的信息,而你当查询数据的时候,我是不是就需要执行一个多表查询,关联这两张表得到一部电影完整的信息。但是呢,请注意一下,对,我们在关系型数据库当中,当你执行多表查询的时候,首先它会产生什么?会产生我们的笛卡尔级啊,那笛卡尔级怎么来的呢?它等于每张表的什么呢?列数相加,行数相乘,那么得到了笛卡尔基,那么咱们假设一下。
26:09
电影表里面一共有1000部电影啊,影评表里面呢,也有1000条影评,那你所产生什么笛卡尔级呢?将会有什么这两个1000相乘有这么多条记录,如果有三张表呢?如果有四张表呢,也是行数相乘,它所得到的抵抗级呢就非常非常大,那我们需要使用连接条件来去掉里面呢不正确的数据,那么咱们有没有一种更好的方式来保存相关的内容呢?当然是可以的,那么咱们可以把这种信息保存到我们的mango DB当中去,好,我们想想看一下,你在mango DB里面。如何去创建一张表来保存一部电子信息呢?通过使用接省的什么内嵌方式,你能够把影评表的内容呢,嵌到我们的么电影表中去,对我们写一个简单的一条数据,好比如这个呢,是我们的一条文档数据,对好这个数据呢,代表表中的什么一行,首先我们在mango DB里面呢,它内存关系型数据库,它有一个什么,有个下划线ID,那么下划线ID它相当于啊,就是它相当于什么,相当于这张表这条记录什么这个组件啊,相当于的,比如说我们使用什么电影,什么ID哈,作为什么它的组件叫MV,什么001,他叫他ID号,那电的什么,他的这个名字啊,他的名名称啊,电影名称,比如说叫什么名字对不对,他的什么导演是谁的,那别人呢,看过了这部电影以后,针对你的这部电影呢,发表的什么一个影评,影评呢,可能不止一条影。
27:50
频,因此呢,我们在这个什么接上格式当中给以什么嵌套一个什么数组来表示数,来表示你的这一部电影呢,它有多少条影擎,后面怎么嵌套,什么嵌套一个我们的嘛数组,那还是回到刚刚的那个问题上,我现在我的my second里面的什么电影表里面,比如说我有1000部什么电影影评表里面呢,也有1000条影频的,它们产生D卡级呢,将是这两个1000相乘,如果你把MYCQL当中这种类型的数据存储在mango DB的什么这一张电影表当中,问一下各位直播间同学,你能不能够告诉一下赵老师,目前这个mango DB的什么这一张电影表里面将会有多少条数据,那如果大家能够知道,能够知道的话,就请告诉一下赵老师回答。
28:50
还一下赵老师的问题哈,如果说大家不确定呢,就请在咱们的公屏之上,请给赵老师呢回复一个0,或者们给赵老师呢点一个赞,好再重复一下刚刚的问题啊,如果说你把刚刚MYCQL里面的电影的表情星存储在我们的mango DB里面,好,咱们感谢我们同学哈,那现在呢,你的这一张mango DB的什么电影表里面呢,将只会用1000条数据,因此呢,通过使用内嵌的什么嵌入方式,我们呢就能够非常适合保存这种一对多的什么关系的数据,这个呢是采用咱们的什么内嵌方式拿去存储数据,当然你在mango DB里面也能够使用咱们的引用方式,引用方式呢就非常类是我们的关系型数据库的外建,好咱们看一下我们的一张图哈,那这张图呢,就给大家详细解释一下什么是mango?
29:50
D杯的什么内嵌方式,什么是mango d杯的什么引用方式,刚刚呢,怎们举的这个例子呢,就是我什么内嵌方式,而引用方式呢,就类存我们的关系型数据库当中,外建那么了这些基本的知识以后,我们能不能够到mango DB当中,我们去创建一张表,或者说创建个集合插入数据查询数据呢?当然是可以的,但好现在咱们切换到咱们的实验的什么环境当中来,先去启动一下我们的mango DB啊,进到我们的mango DB的什么安装的路下,这行运下面什么manggo定好,咱们去把mango DB呢服务器呢运行,运行在什么运man慢go,什么mango mango, 什么man d啊,运行在我们的什么后台后面来写上什么一个N的符号,那么它在默认什么情。
30:50
统之下,它将会什么监听我们的27017端口啊好,当你安装好了什么mongo DB以后呢,它提供了个一个什么命令行的客户端工具,叫做我们的mango西,默认呢,它就连接到当前主机的什么27017端口之上,相当于呢,我们就要登录到了什么数据库服务器上面,那注意一下,你在mango DB当中,跟我们在关系型数据库当中很不一样的是什么呢?那么你在mango DB里面,你的这个数据库和集合或者说表,它不需要什么,不需要事先创建,直接使用就可以,这个呢是跟我们的my second oraclu是很不一样的,那你在这个MY里面,或者说你在Oracle里面呢,你需要先创建数据库,那么在创建表,然后呢才能够插入数据,那么才能够查询数据,而我们在mango DB里面之下。
31:50
数据库和集合不需要事先创建,直接使用它就可以,那简单演这个事例,比如用一下什么我们的先看一下你的当前环境里面,你存在哪些数据库,执行可需望DBS查看数据库的哪D表信息,那通过输出的的信息,那么咱们会发现呢,你在这个当前的环境之下只存在两个数据库,一个那是我们的admin数据库,一个是我们的local数据库,这两个数据库呢,是mango DB的什么系统的数据库,他们直接使用嘛,Use是我们的嘛,这个SC,那通过使用这种方式,我就先创建好一个数据库,叫做SC,那么实际上呢,它是不需要事先创建的,直接使用它就可以的,那我们可以在当前数据库当中来去创建一张我们的学生表来保存学生的相关信息。
32:50
执行的什么希我们的connection查看你在当前数据库当中存在哪些表的信息,通过输出信息你会发现呢,你在当前的这个是高头数据库里面呢,并不包含任何集合,那咱们直接创这个集合,往里面呢插入数据来保存学生的信息,那么就可以好写一下DBDB呢表示什么?DB表是当前数据库,当前数据库呢,就是我的这个什么是高数据库,我在当前的什么数据库里面呢?创建这张表叫做student来保存学生信息,直接往这几合里面in热T呢插入我们的什么文档数据,那通过刚刚的几个学习啊提到了,它里面的保存是阶层格式的数据,因此呢,你在插入数据的时候,需要把数据呢写成我们的这什么阶层的格式,对,好比如说那么这个里个里面呢,包含几个字段。
33:50
第一个字段呢,是我们的嘛,名字念指是我们的嘛,我们的这个Tom,比如说年龄是我们的什么21岁,那么通过使用什么使用这样的一种方式,我就在当前数据库当中创建好的一张学生表,并且呢,往里面呢插入到一条文档数据,既然可以插入,查询、更新、删除都可以,然要通过什么DB表示我们的当前数据库下面什么是studentss学生表执行一个方案的操作,当你查询数据的时候,没写任何的什么查询条件,那么它将会查询整张表的数据,相当于呢,我们执行的一个什么是那个新访这张表的,它将返回这个即可的什么所有的记录,对,注意刚刚我们这样插入数据的时候,好像并没有给这条文档指定我们了的这个什么。
34:50
ID号,那通过刚刚的学习提到了这个ID号就相当于是这张这张表的什么组件,如果说你在插入文档数据的时候,并没有给他指定ID号,那么mango DB呢,它会给这条文档数据自动增加一个ID号,那这个ID号呢,它是一个什么?它是一个,哦不,这个ID的什么类型,通过使用这种类型,它能够保证我们在分布式环境之下,那那每条文档数据的什么,它的唯一性,ID的文唯性,这样是呢,能够去实现我们的分布式存储,当然你也能够在插入文档的时候呢,显示指定这条文档数据,它的ID号是多少,比如说我们再在这个集合里面呢,再去插入一条文档数据,第一定我们当前数据库下面的students,我们的这个集合在外。
35:50
里面呢,插插入一个文档的,那文档里面呢,比如说包含什么三个字段,首先第一个字段呢,就是我们的什么下划线ID代表了这条文档,它怎么组件是多少,那比如说是我们嘛,写上我们的SM tu001,比如这个呢,是我们学认的学定一个学号的,再写上他的什么学生的名字,比如说叫做我们的什么这个marry,对好再写上他什么,他的这个年龄是我们的20岁,那通过使用这样的一种方式,我就在这个集合里面呢,又插入了一条文档数据,并且呢,手动指定的这条文档数据,那么它的ID号是多少的,好,我们咱们去清一下,肯定执行什么,希望康那个性通过输出信息能够看到呢,你在当前数据库里面呢,包含有什么一个集合,包含有一张表对不对,好,我们查询一下这个。
36:50
集合里面的数据第一并我们嘛,使students find的,当你不写任何查询条件,它将返回这个集合当中的么,所有文档,这个地方就返回了我们的两条文档数据跟我们在MYSQL里面,跟我们在Oracle里面的执行一个简单的嘛,查询语句都是完全一样的,好,因此呢,怎么讲到这个地方的时候呢?嗯,整个mango DB的什么基本的操作,那么就给大家示到的地方,好问一下各位直播间同学们,关于赵老师们刚刚演示的什么这个事例啊,这DEMO的事例大家是不是都看明白了,如果说这个地方的也是大家都看明白了呢,就请在咱们的公屏之上,请给赵老师呢回复一个666,或者给赵老师呢点个赞,好,咱们接着呢往下来给大家进行相关的。
37:50
介绍回到咱们的课堂的什么笔记上,对,那你操作曼GODB呢,基本上就类似我们操作我们传统的什么关系型组织库,对它有它什么,它有它自己的语法跟那当然你在mango DB里呢,你能够去实现我们的嘛,聚合操作,那什么叫聚合操作呢?就相当于我们在CQL里面呢,执行一个分组啊,通过使用我们的孤语句把表中数据分成若干组,但是呢,我们在芒GODB里面呢,不,不叫做分组,不叫做goodbye败,我们把它叫,把它叫做什么叫做我们的聚合操作,那么整个mango DB呢,聚合它可以通过两种方式呢来去实现,一种方式呢,是通过什么我们的嘛,拍烂的方式,嗯,能够去实现我们的嘛,这个聚合操作还有第二种方式,嗯,它能够通过我们嘛,My produce方式,嗯。
38:50
也能够去实现我们的这聚合操作,对,所以尽管我们目前在大数据的体系当中,很少会在直接的去开发我们的map produce程序,但是呢,Map produce呢,思想和原因非常非常重要,比如说你在哈多里面支持我们的mapdus,并且呢。
39:13
这种思想和原理呢,也被借鉴到了我们的斯巴克,还有我们的弗link当中,曼GODB呢,也支撑我们的马Du是当然在最新版本的GODB里面呢,他把这个mapdu是么功能给去掉了,但但是呢,大家以后如果说你要去系统的去学习有关大数据的知识,或者说需要去学习mango DB的话,那么赵老师呢,还是们会建议大家呢,先去学一下我们的什么马尔法丢,是因为呢他的思想和原理呢非常重要,那么这种思想和原理呢,也不借鉴到了我们的十巴克呢,还有我们的什么弗link当中,因此呢,咱们这个地方以我们的么map producedu是来看一下如何使用我们的mapdu,在我们的什么mango DB里面呢,实现我们的什么这个聚合的操作,实现我们的分组,对,那简单说一下什么是我们的map就是啊,那这个map就是呢,它就。
40:13
最早他最早呢是谷歌,他所提出的一个什么计算模型,用于解决pageg rank的什么网页排名,注意mapdus本身它只是一个什么,只是一个计算模型,它与编程语言无关,那只不过呢,我们在哈杜里面使用了什么Java语言实现了map producedu是因此呢,这个时候你所开发出来的什么map producedu呢,将会是一个Java程序,慢mango DB里面,在早期版本里面,它也支持我们的map producedu, 但是呢,Mango DB里面,它所使用的编程语言是我们的什么Java斯Co贝特因此了重复一遍mango DB本身它知啊这个什么马就是本身啊,它只一个什么,只是一个计算模型,它与编程语云无关,既然的它都不支持,你的mango DB也支持,那么咱们首先先。
41:13
到我们的哈杜里面执行一个map程序,看一下通过使用Java方式实现,它到底呢,长什么样子好,我们在这个how都里面呢,使用map producedu呢,执行一个单词记数啊,我的account啊,写个笔记本,单独写个笔记在这个地方,那么先到什么,先到我们的什么哈都普中啊,去执行一个什么马produ什来实行什么功能呢?单成技术,那么当你安装好了哈普以后,它就有了HTFS能够存储数据,也有了我们的样,能够去运行我们的麻就是任务它么,切换到我们的什么实验的环境灯来打开一个新的命令行的么?这个窗口连接到咱们的什么虚拟机之上,先去启动下我们的么哈多普啊,进来以后呢,直接在民行上枪,我们的么使哦。
42:13
通过使用这条命令呢,你能够启动哈杜普当中的HTFS,也能够启动我们的em,对em启动完以后呢,它就能够去运行我们的map,丢失之后呢,处理存储在HDFS,当等数据好这个地方,那么稍微等一下,那么等它启动完以后呢,看一下整个的什么运行效果,它将会是个是个什么样子。好先问一下各位直播间同学,讲到这个地方的时候,大家是不是都还能够跟得上赵老师的节奏啊,如果说大家都还能够跟得上呢,就请在咱们的公屏之上回复一个1,或者给赵老师呢点个赞,好这地方怎么稍微等一下好整个环境启动以后呢,要么呢,它提供一个什么,提供了一个图形化的工具端口号是我们嘛,这个8088,它打开咱们的浏览器。
43:13
访问下数组,就什么8088的端口呢,我们就能够打开,这就什么样图形化工具,如果说你有你的什么map程序,或者说有你的什么这个10SPARK程序,或者说有你的什么这个Li程序运行在我们的yam之上,那么通过大家现在看到的这个图形化界面,你就能够监控到任务的执行的状态啊好,来看一下咱们即将要处理的数据,它长什么样子,事先呢,我放到了什么HDFS之上,它是一个什么文本文件,在HDFS的什么in put blue下面有一个什么datatime.test文件,文件里面呢,它就包含有什么三句话。
44:05
分别是什么呢?分别是我们的I love Beijing I love, 什么China Beijing京the capital or什么China,那通过观察我们会发现呢,这三句话里面呢,有一些单词它是重复的,对不?我们就跑一个程序,把每个单词它出现的频率呢统计出来,那么这呢就是我们的什么单词技术程序,那么哈都不能停工这样一个什么这样的一个事例啊对好演示一下这个事例的什么运行的啊,这运行的这个什么效果啊,那事例呢,就是大家现在看到的什么这个哈都map呢example点加包好这个价包里面包含很多的是的程序好怎么运行一下how多job对好指定我们要运行这个什么架包当中的什么我的count单词技术程序,对好我我我。
45:05
看的后面呢,是我们什么HDFS的什么输入和输出路径,好,我们处理的是HFS的上,Input目录下面的什么data.test文件输出也放到HDFS之上,对,放到HDFS什么output下面的什么WC的上,当你执行这个程序的时候呢,它将会把这个程序提交到我们的什么yam上去执行,既然你提交到yam上去去执行的时候,那咱们这样写错的,要写成我们的么?它小写,既然你提交到我们的什么亚门上去执行的时候,通过刚刚大家看到的那个什么图形化界面,你应该就能够这怎么这张是写错了。啊啊啊,这个路径的存在了,存在换一个路径吧,WC吧,那这个输出路径呢,不能够实现存在,需需要写个不存在的路径,好重新来执行一下我们的这操作,既然你把它提交到我们的么压门上去,执行以后呢,通过刚刚大家看到的什么的图形化的界面,你就应该能够看到任务的什么执行的状态,好那现在呢,怎么去刷新一下这个界面,通过刷新这个界面呢,你就应该能够看到了,诶我现在我在我的吧样M子上就有一个什么正在正在什么正在运行的什么my produce程序,好,这个map produce是呢,就是什么刚刚执行的什么单词技术,对好,咱们再来刷新一下这个jam,最终呢,它会变成我们的什么finish状态,当前是我们的running的什么状态,我们再来刷新一下,看一下,最终呢,会变成我们的。
46:53
啊finish练析,那执行完成以后呢,输出结果也将会写到我们的HDFS上,它就会把整个单词,每个单词呢,出现拼音呢统计出来,再重点看一下什么,重点看一下嗯,看一下它所输出的日志,通过打印输出的日志,你会发现呢,整个mapdu是呢,它是两个阶段,先执行我们的嘛map,再执行我们的嘛reduce通过map的什么拆分,那么把多把一个大任务呢,拆分成是若干个小任务,然后呢,通过reduce什呢,聚合操作,合并操作呢,得到最后的结果,因此呢,整个操作它是两步操作,那这个呢,是我们在这个哈杜普里面通过使用加大程序来实现了一个什么麻,就是那当我们的mango DB呢,Mango DB它也。
47:53
支持我们的什么麻法就是那比如说现在我们来给大家举个例子,通过我们在mango DB里面操作我们的员工表,求出每一种职位的什么员工人数啊对好们曼格迪比利阿曼格迪米使用我们的什么马阿普为就是求每种职位的什么员工的人数啊比如说我们有一张员工表,员工表里面看一下它包含哪些相关的数据,那我们呢,可以把这张表呢,在我们的mango DB里面呢,去给它什么创建出来,好这个地方呢,我有个脚本叫什么ep.js通过运行这个脚本呢,我们在我们的mango DB里面呢,就能够去创建到员工表,并且呢,往里面呢,插入14条员工数据,看一下文件数据都包含哪些相关的字段,里面呢有14条文档,这个里面呢,包含我们的员工号姓。
48:53
因为job不呢,代表的就是我们的嘛,职位不同员工他可能从事同样的职位,现在咱们需要按职位统计每一种员工的人数,如果说要你使用C口L语句,如何实现这样的功能呢?我们写一下我们的C,如何用CQ的方式求每一种职位的员工人数啊不现要我们是不是要执行一个分组啊,对我们查询查询什么职位countt呢,我们的新放我们的员工表明啊过办按照什么呢?按照我们的什么职位呢,进行我们的分组,这个呢是我们通过使用CQ的方式来实现我们的聚合操作,当然呢,你在mango DB里面呢,可以通过使用拍,也能够通过使用我们什么my produce呢,也能够去实现分组操作,现在怎么先去把这个集合先在我们的mango DB里面呢,先去把它给什么创建出来。
49:53
直接调什么调用刚刚的这个脚本啊,对好直接写下啊们懂么,No的语句写上我们刚刚的那个什么C那个JS嘛,脚本啊,它叫什么,它在入腾录像呢,有一个ep.js,通过加载的脚本呢,我们就能够把刚刚什么14条员工数据加载到什么这个集合当中看一下,希望我们的看,那这个下面呢,除了刚刚的学生表以外,还有多了一张表,是我们应聘我们的员工表啊好,这个表里面呢,看一下它里面呢,包含有什么,有14条我们的员工数据,好我在mango DB呢,现在呢,我就可以去开发一个my produce程序,实现我们的聚合操作,分组按照职位求每种职位的员工人数,你也可以把它写在我们那个一个脚本当中,脚本呢,我事先。
50:53
写好了看一下如何写脚本,那脚本呢,这个里面就至少需要包含两个函数,一个函数呢,是我们的么map函数,它来实现我们的么拆分的动作,还有一个函数实现我们的怎么就聚合合并操作,我需要把我的什么map函数和我的reduce丢失函数并组装成是一个map丢失任呢,最终出理的结果呢,将换输出到后面的什么这个集合当中,因此呢,思想跟我们在how多是一样的,对,通过什么先拆分在合并的思想呢,它也能够去解决我们的大数据的什么计算的问题啊,因此呢,整个妈克就是思想啊,是非常的什么重要的,后来重复一遍啊,我再重复一遍,尽管目前我们在这个什么大数据的体系当中,包括你的曼GODB呢也是一样的,很少会在直接再去开发我们的。
51:53
My produce序,但是呢,他的思想非常的重要,它采用这种先拆分在合并的思想,能够去解决大数据的什么离线计算,离线计算问题,因此呢,它主要用于构建我们的什么离线数仓,还有了这个什么JS脚本以后啊,咱们通过使用。
52:19
刚刚的什么漏斗句,要处理一下我们的员工的集合这种数据,看一下最终输出结果他将会是什么样子,他是不是会按照职位求出每一种职位的员工的人数,他回到我们刚刚的什么mango DB的么mini航工具中去,通过执行node去加载刚刚的什么呢?这个JS脚本root下面呢,有个MM.JS直接加载完以后呢,它将会运行我们的什么map丢任务啊,运行完成以后呢,看一下输出集合里面有哪些相关的记录,它就会放到什么就是什么mm demo1的什么集合当中,好查询一下里面的什么相关的数据,D1B呢,下面当前数据库下面mm DEMO in执行的查询,通过查询呢,你就能够得到每一种种员工的什么,每一种职位。
53:20
员工人数分别是多少?那这个呢,跟我们在CQ当中通过使用goodbye巴与经实现分组呢是完全一样的,因此呢,讲到这个地方的时候,那咱们如何去在我们的啊哈杜普里面,或者说在我们的mango DB里面如何实现聚合呢?就给大家介绍到这地方,好问一下各位直播间的同学哈们,关于赵老师们刚刚演示的地吧,这聚合操作把produce呢,大家是不是都看明白了,如果说刚刚演示的事例大家都看明白了呢?还是跟刚刚一样,就请大家呢在咱们的公屏之上呢回复一个1,或者呢给赵老师呢点个赞,好,咱们进呢往下面。
54:10
来给大家进行相关的介绍,当然后续呢,你在使用这个mango DV的时候呢,通常呢,会去干嘛呢?搭建我们的嘛,搭建我们的mango DB的集群,那你搭建集群的时候,Mango DB它有两种集群实现方式,一种实现方式呢,是你可去搭建mango DB的什么复制集,那复制集呢是mango DB集群它所实现的什么第一种方式,它还有第二种实间方式,你能够去搭建什么mango DB的什么分片集群,那什么叫复制,什么叫分片呢?简单的什么解释一下复制集因就是mango DB的什么主从复制啊,那么好写一下复制集就是mango DB的什么主从复主从复制,那主从复制集群本质上就是一种备份。
55:10
我从主库上面写入数据以后,通过mango DB的什么op logo日证它能够同步到重库上,那么就相当于呢,我把主库数据备份到了什么重库上,因此呢,这个呢是整个mango DB集群实现的第一种方式,复制集本质呢就是我们的什么主从复正或者叫主备都可以啊,而我们在mango DB里面呢,集群实现的第二种方式就是呢,你能够去搭建它的什么分片集群,通过使用mango d什么分片集群呢,能够去实现数据的什么分布式存储,既然它能够去实现分布式存储呢,我们通过使用mango DB的什么分布式存储的分片,我们咱们呢,就能够适合存储我们我们的大数据,因为呢,你在整个的什么大数据的体系当中都是采用分布。
56:10
是存储,或者说采用分布式的计算来来去什么来去解决大数据的存储问题,包括呢,大数据的什么计算问题,因此呢,这个思想跟你的大数据是不是就密切相关了,因此呢,我们就可以把我们的什么no c控都划归到我们的大数据的什么体系当中,因此呢,赵老师呢,再重复一遍,如果说大家后续你要去系统的去学习有关大数据的知识,那么需要去学习我们的low c口L数据库,通过今天晚上学习,你至少看到了我们在mango DB里面是不是也支持我们的map produceduce啊,而map produceduce呢,是整个大数据体系里面分布式计算了什么,他的思想来源,正因为有了我们的马Du,才有了后续的什么,才有了后续的我们的18g,有了后续的什么,这个弗林克因此呢。
57:10
那大家后续如果说你还想去继续思入学习的话,还是需要呢,好好学习一下,到底什么什么我们的麻烦丢失,当然了,因为直播课呢,毕竟呢只有一个小时,不可能讲的很深入,如果说大家要系统学习的话,孩子呢,需要去学习我们的系统课程啊,系统课程好,因此呢,讲到这个地方的时候呢,呃,基本上呢,咱们线的时间是晚上的,什么10:28,基本上呢,今天晚上由赵老师要给大家分享的知识呢,大概就是这么多啊好,我们赵老师呢,10点什么35分下播啊,10:35啊下播好。
我来说两句