如何学习及选择大数据非关系型数据库NoSQL

如何学习及选择大数据非关系型数据库NoSQL

大数据技术在近几年发展十分迅速,在互联网公司以及传统公司都得到了广泛的应用。传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库NoSQL则由于其本身的特点得到了非常迅速的发展,NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题NoSQL一直伴随着大数据技术的发展,各种NoSQL层出不穷,应该如何学习及选择NoSQL?我们通过几个问题来让大家全面了解NoSql,以便更好的学习。



一、大数据技术有哪些?它们和NoSQL的关系是什么?

大数据技术很多,占据主流地位的大数据技术有:Hadoop、Storm、Spark等,它们又是由很多更具体的技术所组成。比如组成Hadoop大数据平台的技术有:HDFS、YARN、MapReduce、Ambari、Avro、Cassandra、Chukwa、HBase、Hive、Mahout、Pig、Tez、ZooKeeper等。

大数据技术是对海量的结构化和非结构化的数据进行提取、管理、处理、分析、存储等的技术,所以大数据技术和NoSQL的关系是包含关系。NoSQL技术主要是面向结构化数据和非结构化数据进行存储和管理的技术。所以NoSQL只是大数据的一个方面,大数据技术中,涉及存储的还可以是关系数据库,以及分布式文件系统等。

二、NoSQL兴起的原因是什么?有哪些主要的类型?这些类型NoSQL的特点是什么?

主要是因为Web 2.0时代的到来,关系数据库越来越不能满足互联网应用的需求,导致了NoSQL的兴起。这些需求包括:

1)数据的高并发读写 2)数据的高可用性 3)海量数据存储 4)海量数据的实时分析

NoSQL的主要类型包括:

1)文档型数据库 特点:面向集合存储,模式自由,使用高效的二进制数据存储等。

2)键值存储数据库 特点:以键为索引的存储方式,访问速度极快。

3)图数据库 特点:以节点/关系/属性为基础存储数据,善于处理大量复杂、互连接、低结构化的数据。

4)列式数据库 特点:以列相关存储架构进行数据存储,适合于批量数据处理和即席查询。

5)内存数据库 特点:将数据放在内存中直接操作,数据处理速度比传统数据库的数据处理速度要快很多。

6)XML数据库 特点:高效存储XML数据,并支持XML内部查询语法。




三、每种NoSQL有什么代表性的开源系统?其主要适合什么样的场景?

1)文档型数据库

代表:MongoDB、CouchDB、CouchBase、MarkLogic、Clusterpoint

应用场景:适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。

2)键值存储数据库

代表:Dynamo、FoundationDB、MemcacheDB、Redis、Riak、Aerospike

应用场景:高读取、快速检索。

3)图数据库

代表:Neo4j、OrientDB、ArangoDB、MapGraph

应用场景:社会关系,公共交通网络,地图及网络拓谱。

4)列式数据库

代表:Cassandra、HBase、Accumulo、Druid、Vertica

应用场景:适合于批量数据处理和即席查询。

5)内存数据库

代表:Redis、Membase

应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。

四、如果需要自己构建一个NoSQL系统,主要需要考虑哪些核心问题?

首先确定适用的应用场景,功能大而全是不现实的。

其次根据应用场景确定存储方式。

选择存储引擎,是自行开发还是借用开源引擎。

再次是设计访问协议,一般是基于TCP基础上的自定义协议。

接着是开发管理系统,提供NoSQL数据库的基本管理功能。

再次是编写各种语言的驱动包。

最后是提供客户端GUI工具。



读完这篇文章,我相信大家对NoSQL应该有了一个全面的了解,NoSQL运用越来越普通,正在学习的小伙伴抓紧了,

编辑于 2017-08-21