大数据MongoDB之NoSQL是什么?为什么使用NoSQL?


1. 什么是NoSQL?

1.1 NoSql简介

NoSQL,指的是非关系型的数据库。NoSQL有时也称作 Not Only SQL ,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式无需多余操作就可以横向扩展。

1.1 NoSql历史

NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。

2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。

2009年在亚特兰大举行的"no:sql(east)“讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;”。因此,对NoSQL最普遍的解释是"非关联型的",强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。


2. 为什么使用NoSQL?

2.1 数据量呈现出指数级增长的趋势

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。
在这里插入图片描述

2.2 非结构化类型的数据量呈现出指数级增长的趋势

我们如果要对这些用户数据进行挖掘,就会发现,Structured Data(结构型数据)量增长缓慢,而Semi-Structured Data(半结构化数据)与Unstructured Data(非结构化数据)却呈指数级别增长的趋势。
在这里插入图片描述
SQL数据库已经不那么适合这些数据了, NoSQL数据库的发展却能很好的处理这些数据