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数据,机器学习