欢迎投稿

今日深度:

MongoDB(一)NoSQL起源,mongodbnosql起源

MongoDB(一)NoSQL起源,mongodbnosql起源




为什么出现NoSQL

随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件。

最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分。不久之后,你就会发现被自己数月前的设计数据结构限制住了。

随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点。

1、对数据高并发读写的需求

2、对海量数据的高效率存储和访问的需求。

3、对数据库的高可扩展性和高可用性的需求。

4、数据库事务一致性需求。

5、数据库写实性和读写时性需求。

6、对复杂SQL的查询,特别是对关联查询的需求。

NoSQLNotonly SQL的缩写,NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常避免使用SQLjoin操作,一般有水平可扩展性的特征。

NoSQL历史?

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

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

3、2009年趋势高涨,被定为“非关系型的”数据存储,相对于关系型数据库运用,这一概念无疑是一种全新思维的注入。

  

SQLNoSql的区别?

     NoSQL具有如下几点
     优点:
     1、高并发读写
     2、海量数据存储
     3、高可扩展性
     4、高可用性
     缺点:
     5、缺乏事务一致性
     6、缺乏读写实时性

     7、不支持复杂查询


NoSQL数据库类型

Key-valuekeyValue的键值对,通常用hash table来实现

列式数据库:同一列数据存在一起

文档型数据库:Key-Value对应的键值对,Value为结构化数据产品:MongoDB

图结构数据库:以“图”为基本存储模型,产品:Neo4jInfoGridInfiniteGraph


NoSQL数据库开源软件

1Membase软件

2Hypertable

3ApacheCassandra

4MongoDB

在这里我们用的是MongoDB,下篇MongoDB简介,以及实例操作


想MongoDB这类NoSql,是不是只可以存储文本信息而不可以存储二进制信息?

MongoDB是文档存储型数据库。它的存储是给予操作系统中的文件存储系统的。所以只要是文件系统可以存的,mongodb都可以存。

如果要保存一些二进制的大数据文件,可以用GridFS数据结构。
 

NoSQL的主要特点及应用领域

特点:
它们可以处理超大量的数据。

  它们运行在便宜的PC服务器集群上。

  PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。

  它们击碎了性能瓶颈。
  NoSQL的支持者称,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度变得更快。
  “SQL并非适用于所有的程序代码,” 对于那些繁重的重复操作的数据,SQL值得花钱。但是当数据库结构非常简单时,SQL可能没有太大用处。

  没有过多的操作。
  虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。

  Bootstrap支持
  因为NoSQL项目都是开源的,因此它们缺乏供应商提供的正式支持。这一点它们与大多数开源项目一样,不得不从社区中寻求支持。

优点:
易扩展
  NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

大数据量,高性能
  NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的 Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。

灵活的数据模型
  NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。

高可用
  NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。

主要应用:
Apache HBase
这个大数据管理平台建立在谷歌强大的BigTable管理引擎基础上。作为具有开源、Java编码、分布式多个优势的数据库,Hbase最初被设计应用于Hadoop平台,而这一强大的数据管理工具,也被Facebook采用,用于管理消息平台的庞大数据。

Apache Storm
用于处理高速、大型数据流的分布式实时计算系统。Storm为Apache Hadoop添加了可靠的实时数据处理功能,同时还增加了低延迟的仪表板、安全警报,改进了原有的操作方式,帮助企业更有效率地捕获商业机会、发展新业务。

Apache Spark
该技术采用内存计算,从多迭代批量处理出发,允许将数据载入内存做反复查询,此外还融合数据仓库、流处理和图计算等多种计算范式,Spark用Scala语言实现,构建在HDFS上,能与Hadoop很好的结合,而且运行速度比MapReduce快100倍。

Apache Hadoop
该技术迅速成为了大数据管理标准之一。当它被用来管理大型数据集时,对于复杂的分布式应用,Hadoop体现出了非常好的性能,平台的灵活性使它可以运行在商用硬件系统,它还可以轻松地集成结构化、半结构化和甚至非结构化数据集。

Apache Drill
你有多大的数据集?其实无论你有多大的数据集,Drill都能轻松应对。通过支持HBase、Cassandra和MongoDB,Drill建......余下全文>>
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3962.html NewsArticle MongoDB(一)NoSQL起源,mongodbnosql起源 为什么出现 NoSQL ? 随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来...
评论暂时关闭