当前课程知识点:互联网大规模数据分析技术 >  第五章 大数据平台与技术 >  第13讲 NoSQL数据库 >  第13讲 NoSQL数据库

返回《互联网大规模数据分析技术》慕课在线视频课程列表

第13讲 NoSQL数据库在线视频

下一节:第14讲 Web信息检索简介

返回《互联网大规模数据分析技术》慕课在线视频列表

第13讲 NoSQL数据库课程教案、知识点、字幕

欢迎来到

互联网大规模数据分析技术

的课堂

我是今天的主讲教师李琳

来自武汉理工大学

今天我们进行第十三讲

关于NoSQL数据库的学习

在今天的课程当中

我们将从以下四个方面

和大家一起来进行探讨

NoSQL

是什么意思

NoSQL的意思不是不用SQL查询

而是Not only SQL

不仅仅是结构化的查询

所以NoSQL数据库

具有以下几个特点

灵活的可扩展性

灵活的数据模式

与云计算紧密融合

那么目前有哪些公司

使用了NoSQL数据库呢

像大家耳熟能详的

谷歌、Facebook、Adobe、LinkedIn

像这样一些大公司工作

我们国内的百度、腾讯、阿里

新浪和华为

都使用了NoSQL数据库

我们看一下NoSQL兴起的原因

大家都用过Excel

在Web编程上面的大家也许用过

MySQL和SQL Server

这样一些数据库

那么这些数据库

都是属于关系数据库

关系数据库发展到今天

已经无法满足Web2.0的需要

大家可以看到在前面的课程当中

我给大家讲解了Web1.0时代

2.0时代和3.0时代的

一些主要特点

这里面我们有一个简单的例子

大家来看一下

在Web2.0时代一分钟内

新浪发送2万条微博

苹果可以下载4.7万次应用

淘宝卖出6万件商品

人人网产生30万次的访问

百度产生了90万次的查询需求

大家可以看到

数据是非常海量

而传统的关系数据库

无法满足海量数据的管理

另外

数据的高并发性

在这里得到了体现

同时有90万次的查询下

向百度的服务器提出了搜索要求

另外呢

还有一些高扩展性

我们的Web应用千变万化

可能对字段的需求在不断地增加

而传统的数据库是无法对字段

进行简单的扩展

所以这样一些问题都导致了

我们必须要有新的数据管理模式

第二点,“One size fits all”

也就是用一个数据库

在我们的例子当中

就是用一个数据库来解决

所有的业务场景已经是不可能的

那么关系数据库作为一个

统一的数据模型

既被用数据分析

也被用于在线业务

在这样的模型下

就会产生一个问题

数据分析强调的是高吞吐量

我要产生大量的计算结果

而在线业务需要低延时

这个意思就是说

你要快速告诉我答案我等不及

所以这种不同的数据要求

导致我们需要采用

不同的数据管理模式

前面我们讲的Hadoop平台

大数据分析平台以及它所包含的

文件系统适合对数据的分析

对于在线业务

我们可以采用MongoDB

这样的非关系数据库

来解决低延时的问题

第三

关系数据的关键属性

与2.0相比呢

web2.0网站通常不要求

严格的数据库事务

等会儿我们会通过表的对比

来跟大家做进一步的讲解

而且Web2.0

不要求严格的读写实时性

同时Web2.0不包含

大量复杂的结构化查询

大家用过搜索

只需要简单的

把一些关键字放到搜索框里面

你就会得到一些查询的结果

不需要大家去指定是用户名呢

还是作者呢

还是时间呢

去掉了复杂的

这样一种结构化查询

这里我们有一张表

大家一起来一下

当然我从这表中

选取若干个问题

跟大家一起来进行探讨

第一个,标准

我们有一个原理

学过我们关系数据库的人

都知道

我们的关系数据库

是以关系代数作为理论的

它有理论的支撑

那么NoSQL呢

没有

目前没有统一的理论基础

我们几届图灵奖的获得者

都是关系数据库的领头人

数据规模呢

我们看一下现在是大数据

传统的关系数据库只能说大

而NoSQL呢

我们可以说超大

传统的关系数据库很难做什么

横向的扩展

什么叫横向

就是表的列的个数

也就是我们在关系数据库当中

所说的字段

你想添加字段

对于关系数据库来说

对于后续的编程来说

会带来很大的麻烦

所以在关系数据库的设计当中

大家一开始

要做好数据库的需求分析

定好字段

你会跟客户说我定好了

不用再改了

因为一改

你的代码会做相应地很大的变化

而这样一种方式并不适合Web

我们NoSQL数据库

很容易通过添加字段

因为实际上它并没有字段

通过添加一些列来达到

水平扩展这样一个目的

我们看模式

关系数据库

要严格遵循一些约束条件

NoSQL不存在数据库模式

它很灵活

同时对于查询来说

关系数据库

很快就能获得查询结果

但是它的查询复杂度比较高

而我们的NoSQL

它可以通过

MapReduce来加速查询

但是在复杂查询的方面

仍然不如关系数据库

实际上刚才放的幻灯片上

我们已经跟大家讲了

在Web2.0时代实际上

我们很少有复杂的关系查询

这后面还有很多问题

我们在这里选一个

比如说这个一致性问题

我们关系数据库是强一致性

NoSQL是弱

也就是强弱之分

并不代表

非关系数据库没有一致性

大家看一下

大家在采用关系数据库的时候

都知道

当你的事务被中断的时候

你要被滚回的

回复到事务执行之前的状态

而对于NoSQL数据库

我们没有这样的要求

只要最终一致就行了

也就是经过某一个时间间隔之后

你能够达到一致

我并不要求实时性的一致

大家可以看到

对于一致性的条件

非关系型数据库是进行了放松的

同时也就增加了它的灵活性

还有一些对比

大家可以在课后

做一个仔细的阅读

另外标准化这个方面呢

也是我们关注的

关系数据库已经标准化了

我们已经有了结构化查询语言

而NoSQL没有行业标准

不同的NoSQL数据库

都有自己的查询语言

这个StoneBraker

图灵奖的获得者就讲了

NoSQL缺乏统一的查询语言

将会拖慢NoSQL的发展

当然这个需要我们后续的学者

和工作者去进一步地努力

通过刚才这样

一个表的分析

我们进行一个总结

关系数据库有它的优点和缺点

NoSQL数据库

也有它的优点和缺点

在这里我们列出来了

比如说优势

关系数据库呢

是以完善的关系代数理论

作为基础

有严格的标准

支持事物的四性

借助索引机制

可以实现高效的查询

技术成熟

有理论有标准

复杂性的查询又能够获得

但它的劣势是什么

大家讲到了

它的水平扩展性和垂直扩展性

都比较差

对于海量数据的存储和管理

它显得过于死板

非关系数据库的出现

可以支持超大规模数据的管理

灵活的数据模型

可以更好地支持Web2.0的应用

扩展性比较好

但是没有理论基础

对于复杂查询性能又不高

大多不实现强一致性

所以数据的完整性

不一定能够保障

技术还不大成熟

同学们会问

老师让我在选择

一个应用开发的时候

我到底是选择关系数据库

还是选择非关系数据库呢

其实这些都没有问题

你可以去混合使用

我们可以看到

关系数据库和NoSQL的

非关系数据库各有优缺点

无法取代

关系数据库

主要应用的场景有哪些呢

电信银行领域的关键业务数据

需要保证数据的一致性

大家可以看到

银行里的存款

必须实时地保持一致

不能说

我这个时间段我存的是五块钱

下一个时间段我看的是六块钱

最后变成再下一个时间段

你又回到五块钱

所以对于银行这样的业务

一定要保持强一致性

NoSQL数据库应用的场景呢

互联网企业

互联网企业的一些数据分析技术

所以一般的公司

在大规模数据分析的时候

都会采用一些混合的架构

比如说亚马逊公司

就使用不同类型的数据库

来支撑它的电子商务应用

它对于“购物篮”购物车

这样的临时的数据

采用非关系数据库

对于产品和订单信息

放在关系数据库里面

对于历史订单信息呢

文字比较多的呢

它放到

MongoDB这样的文档数据库里面

大家看到了没有

是一种混合的架构

刚才

我们对NoSQL数据库呢

做了一个简要的介绍

了解了它的优缺点

比关系数据库做了一个对比

我们简单地看一下

NoSQL数据库有哪些类型

大家需要在这里记住的是

键值数据库

Key_Value

大家是不是觉得很熟悉

在前面MapReduce的课程当中

大家还记不记得

计数的那个操作

Key是单词

value是什么呢

这个单词出现的次数

我们还有列族数据库

大家在这里可以看到列族

我们英文叫什么呢

Column-family

也就是这样一些

列组成的一个家族

这样一些列组成的一个家族

我们简单地可以说

这样一种列族

可能对应着某一种应用

这样一个列族

可能对应着另外一种应用

我们把不同的应用

根据不同的key呢

组合到一起

如果你还有新的应用

你可以直接在后面进行添加即可

水平地扩展

我们还有

文档数据库和图形数据库

大家看一下

文档数据库

Document_id对应的Document

每一个文档都有自己的编号

图形数据库就是这样

一种图的结构

那么这是

我们NoSQL数据库的四大类型

针对这四大类型我们都有相应的

一些产品供大家使用

图数据库

文档数据库

列族数据库

Key_Value数据库

大家可以根据自己的应用

去选择相应的数据库类型

来完成自己的应用开发

我们有键值数据库

我们把它详细地列出来

大家可以看到非常熟悉的名字

谁在用键值数据库呢

百度云

大家是不是经常使用啊

那么在这样一个数据库当中呢

我们既有关系数据库看到没有

我们也有这样一个键值数据库

那么键值数据库

成为一个缓冲的方案啊

因为首先是从关系数据库中

获取数据

保存到键值数据库里面

然后再从键值数据库获取数据

去在浏览器进行响应

对于列族数据库

大家熟悉的有哪些呢

大家可以已经看到了Facebook

已经看到了Twitter

还看到了什么呢

Ebay

对于文档数据库

这里我们举了一个例子

在文档数据库当中

如果你要存学生的

学号、姓名、性别、年龄、系

这样一些

在关系数据库当中

你必须逐一定义好

并且告诉关系数据库

学号是什么类型的

姓名是字符串类型的

年龄可能是数值类型的

我们可以看到

在文档数据库当中

所有的数据类型

都以双引号的形式来进行存储

把它当做字符串

在具体的应用当中

你把这个字符串读取出来

再去进行相应的处理即可

文档数据库的产品有哪些呢

同样

百度云也用到了文档数据库

我们的MongoDB

它用的就是MongoDB

以及NBC News

图计算是目前比较研究

比较热门的一个场景

我们的谷歌的排序算法

后面就可以看到

就是一个典型的图计算

图计算当中有哪些呢

网络公司Cisco

Adobe这个文档公司

以及T-Mobile

它们都是有了图数据库的支持

介绍了

NoSQL数据库的四个类型之后

我们对今天的课程做一个小结

我们介绍了

NoSQL数据库的相关知识

我们知道NoSQL数据库

满足了大数据时代

各种非结构化数据的存储需求

得到越来越广泛的应用

传统的关系数据库

和NoSQL数据库各有所长

不存在一方取代另外一方

两者共存

差异化的需求满足应用程序

我们对NoSQL数据库的主要的

四种类型的不同产品

以及不同的应用场合

进行了一定的了解

今天的课程就到这里

感谢同学们的观看

互联网大规模数据分析技术课程列表:

第一章 大数据与数据挖掘概述

-第1讲 大数据与数据挖掘概述

--第1讲 大数据与数据挖掘概述

第二章 关联规则

-第2讲 频繁项集和关联规则的基本概念

--第2讲 频繁项集和关联规则的基本概念

-第3讲 Apriori算法

--第3讲 Apriori算法

-第4讲 Apriori算法的改进与兴趣度度量

--第4讲 Apriori算法的改进与兴趣度度量

第三章 分类算法

-第5讲 分类的基本概念

--第5讲 分类的基本概念

-第6讲 决策树

--第6讲 决策树

-第7讲 简单贝叶斯分类

--第7讲 简单贝叶斯分类

第四章 聚类算法

-第8讲 聚类的基本概念

--第8讲 聚类的基本概念

-第9讲 K-Means & K-Medoids Clustering

--第9讲 K-Means & K-Medoids Clustering

-第四章 聚类算法--习题

第五章 大数据平台与技术

-第10讲 大数据处理平台Hadoop

--第10讲 大数据处理平台Hadoop

-第11讲 MapReduce编程

--第11讲 MapReduce编程

-第12讲 大数据处理平台Spark

--第12讲 大数据处理平台Spark

-第13讲 NoSQL数据库

--第13讲 NoSQL数据库

第六章 信息检索

-第14讲 Web信息检索简介

--第14讲 Web信息检索简介

-第15讲 信息检索之倒排索引

--第15讲 信息检索之倒排索引

-第16讲 信息检索之TFIDF

--Video

-第17讲 信息检索之相似度排序

--第16讲 信息检索之TFIDF

第七章 Web链接分析

-第18讲 Web搜索之链接分析

--第18讲 Web搜索之链接分析

-第19讲 Web搜索之PageRank

--第19讲 Web搜索之PageRank

-第20讲 Lucene信息检索平台

--第20讲 Lucene信息检索平台

-第七章 Web链接分析--习题

第八章 推荐系统

-第21讲 推荐系统简介

--第21讲 推荐系统简介

-第22讲 推荐系统之协同过滤

--第22讲 推荐系统之协同过滤

-第23讲 Mahout数据挖掘平台

--第23讲 Mahout数据挖掘平台

-第24讲 信息过滤评价体系

--第24讲 信息过滤评价体系

-第八章 推荐系统--习题一

-第八章 推荐系统--习题二

自我提升练习

-综合编程题

第13讲 NoSQL数据库笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。