MongoDB(基于文档),HBase(基于列)和Neo4j(对象图)的优缺点是什么?
我特别想知道每个数据库的典型用例。
是否有任何Slideshare或Scribd上值得一看的演示文稿?
MongoDB(基于文档),HBase(基于列)和Neo4j(对象图)的优缺点是什么?
我特别想知道每个数据库的典型用例。
是否有任何Slideshare或Scribd上值得一看的演示文稿?
MongoDB
可扩展性:高可用性和一致性,但不擅长处理关系和分布式写入。其主要优势在于存储和索引无模式文档。文档大小限制为4mb,并且仅对有限深度的索引有意义。详见http://www.paperplanes.de/2010/2/25/notes_on_mongodb.html
最适用于:有限深度树结构
用例:多样化类型层次结构、生物系统学、图书馆目录
Neo4j
可扩展性:高可用性但不分布式。具有强大的节点空间高速遍历的遍历框架。限于数十亿个节点/关系的图形周围。详见http://highscalability.com/neo4j-graph-database-kicks-buttox
最适用于:深度无限、循环加权连接的图形
用例:社交网络、拓扑分析、语义Web数据、推理
HBase
可扩展性:在PB及以上的可靠一致存储,支持大量具有少量稀疏属性的对象。与Hadoop协作进行大型数据处理任务。http://www.ibm.com/developerworks/opensource/library/os-hbase/index.html
最适用于:有向无环图
用例:日志分析、语义Web数据、机器学习
我知道这可能看起来是一个奇怪的指向,但是Heroku最近疯狂地推出了他们的noSQL产品,并且对许多当前项目有一个不错的概述。虽然这不是Slideshare的宣传,但它会帮助你开始比较过程:
看一下这个非关系型数据库的概览比较:
MongoDB:
MongoDB是一种文档数据库,不同于关系型数据库。该文档存储半结构化数据,如JSON对象(无模式)。
主要特点:
何时使用:
何时不使用:
HBASE:
HBase是一种开源的、非关系型的、分布式列族数据库。
主要特点:
它提供了一种容错的方式来存储大量的稀疏数据(少量信息被包含在大量空或不重要的数据中,例如在20亿条记录中找到50个最大项,或者在庞大的集合中找到表示不到0.1%的非零项)。支持每行不同的可变模式。可以作为MapReduce作业的输入和输出。每列都可以进行压缩、内存操作和Bloom过滤(一种旨在快速且占用内存较少地告诉您一个元素是否存在于集合中的数据结构)。 何时使用HBase: 1. 如果您按键加载数据、按键(或范围)搜索数据、按键提供数据、按键查询数据;Neo4j:
Neo4j是一种使用属性图数据模型的图形数据库(数据以图形和具有属性的节点和关系的形式存储)。
主要特点:
何时使用:
何时不使用:
在这篇文章中查看各种NoSQL技术的比较。
来源: