NoSQL入门
NoSQL入门
NoSQL 入门
NoSQL 概述
NoSQL 是一项全新的数据库革命性运动,虽然它的历史可以追溯到 1998 年,但是 NoSQL 真正深入人心并得到广泛的应用是在进入大数据时候以后,业界普遍认为 NoSQL 是更适合大数据存储的技术方案,这才使得 NoSQL 的发展达到了前所未有的高度。2012 年《纽约时报》的一篇专栏中写到,大数据时代已经降临,在商业、经济及其他领域中,决策将不再基于经验和直觉而是基于数据和分析而作出。事实上,在天文学、气象学、基因组学、生物学、社会学、互联网搜索引擎、金融、医疗、社交网络、电子商务等诸多领域,由于数据过于密集和庞大,在数据的分析和处理上也遇到了前所未有的限制和阻碍,这一切都使得对大数据处理技术的研究被提升到了新的高度,也使得各种 NoSQL 的技术方案进入到了公众的视野。
NoSQL 数据库按照其存储类型可以大致分为以下几类:
类型 | 部分代表 | 特点 |
---|---|---|
列族数据库 | HBase Cassandra Hypertable | 顾名思义是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的 I/O 优势,适合于批量数据处理和即时查询。 |
文档数据库 | MongoDB CouchDB ElasticSearch | 文档数据库一般用类 JSON 格式存储数据,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能,但不提供对参照完整性和分布事务的支持。 |
KV 数据库 | DynamoDB Redis LevelDB | 可以通过 key 快速查询到其 value,有基于内存和基于磁盘两种实现方案。 |
图数据库 | Neo4J FlockDB JanusGraph | 使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。图数据库从设计上,就可以简单快速的检索难以在关系系统中建模的复杂层次结构。 |
对象数据库 | db4o Versant | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
说明:想了解更多的 NoSQL 数据库,可以访问http://nosql-database.org/。
本文由作者按照 CC BY 4.0 进行授权