mongodb - 如何决定使用哪种 NoSQL 技术?

标签 mongodb neo4j hbase graph-databases nosql

MongoDB(基于文档)、HBase(基于列)和 Neo4j(对象图)的优缺点是什么?

我特别有兴趣了解每种应用的一些典型用例。

What are good examples of problems that graphs can solve better than the alternative?

也许任何 Slideshare 或 Scribd 值得演示?

最佳答案

MongoDB

可扩展性: 高度可用且一致,但在关系和许多分布式写入方面很糟糕。它的主要好处是存储和索引无模式文档。文档大小上限为 4mb,索引仅对有限的深度有意义。见 http://www.paperplanes.de/2010/2/25/notes_on_mongodb.html

最适合:深度有限的树结构

用例:不同类型层次结构、生物系统学、图书馆目录

Neo4j

可扩展性: 高度可用但不分布式。强大的遍历框架,用于节点空间中的高速遍历。仅限于数十亿个节点/关系的图表。见 http://highscalability.com/neo4j-graph-database-kicks-buttox

最适合:具有无限深度和周期性加权连接的深度图

用例:社交网络、拓扑分析、语义网数据、推理

HBase

可扩展性: PB 级及以上的可靠、一致的存储。支持具有一组有限稀疏属性的大量对象。与 Hadoop 协同工作以进行大型数据处理作业。 http://www.ibm.com/developerworks/opensource/library/os-hbase/index.html

最适合:有向无环图

用例:日志分析、语义网数据、机器学习

关于mongodb - 如何决定使用哪种 NoSQL 技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735784/

相关文章:

mongodb - 当按数组中的子字段排序时,sort() 在 MongoDB 中做了什么?

neo4j - 在 Bulbs 中更新边缘的正确方法(neo4j 或 titan)

hadoop - Oozie Java Action 在使用 HCat 摄取期间失败?

ruby-on-rails - URL 缩短器如何大规模工作(例如 t.co 在 Twitter 的情况下)

mongodb - 在 MongoDB 中存储非常大的文档

java - 如何使用 Java API 在 Neo4j 中的节点/关系上添加用户定义的约束

hadoop - 使用 pig 或 hive 将 CSV 数据加载到 HBase

java - HBase 中的原子比较和增量

javascript - KeystoneJS,在模型 AdminUI 中显示多对多关系

database - 图数据库中的二阶关系