26

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

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

图可以比其他方法更好地解决问题的好例子有哪些?

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

4

6 回答 6

50

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

于 2011-01-04T07:40:25.910 回答
4

签出此 NoSQL dbs 的一目了然比较:

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

于 2013-03-30T15:16:08.427 回答
4

我知道这似乎是一个奇怪的地方,但是,Heroku 最近对他们的 noSQL 产品发疯了,并且对许多当前项目有一个很好的概述。它绝不是 Slideshare 新闻,但它会帮助您开始比较过程:

http://blog.heroku.com/archives/2010/7/20/nosql/?utm_medium=email&utm_source=EmailBlast&utm_content=619506254&utm_campaign=HerokuSeptemberNewsletter-VersionB&utm_term=NoSQLHerokuandYou

于 2010-09-17T13:51:42.553 回答
0

您还可以评估多模型DBMS,作为第二代 NoSQL 产品。使用多模型,您不会只选择一种模型,而是选择一种以上的模型。

第一个多模型 NoSQL 是OrientDB

于 2014-11-20T20:58:26.077 回答
0

MongoDB:

MongoDB是与关系数据库不同的文档数据库。该文档存储半结构化数据,如 JSON 对象(无模式)

主要特征:

  1. 模式可以随着应用程序的演变而改变
  2. 全索引
  3. 负载均衡和数据分片
  4. 数据复制
  5. CAP 理论中的 Consistency & Partitioning (Consistency-Availability-Partitioning)

何时使用:

  1. 实时分析
  2. 高速测井
  3. 半结构化数据管理

何时不使用:

  1. 具有强 ACID 属性(原子性、一致性、隔离性和持久性)的高度事务性应用程序。在此用例中首选 RDBMS。
  2. 对涉及关系的数据集进行操作 - 外键等

HBASE:

HBase 是一个开源的、非关系的、分布式的列族数据库

主要特征:

  1. 它提供了一种容错方式来存储大量稀疏数据(在大量空或不重要数据中捕获的少量信息,例如在 20 亿条记录中查找 50 个最大的项目,或查找非零个项目代表不到一个庞大集合的 0.1%)
  2. 支持每行不同的可变模式
  3. 可以作为 MapReduce 作业的输入和输出
  4. 压缩、内存中操作和每列上的 Bloom 过滤器(一种数据结构,旨在快速且高效地告诉您一个元素是否存在于集合中) 5.Achieve CP on CAP

何时使用 HBase:

  1. 如果您正在按键加载数据,按键(或范围)搜索数据,按键提供数据,按键查询数据
  2. 按不符合模式(可变模式)的行存储数据

何时不使用 HBase:

  1. 对于关系分析
  2. 全表扫描
  3. 要聚合的数据,按行而不是按列分析

Neo4j:

Neo4j 是使用属性图数据模型的图数据库(数据存储为图和节点以及与属性的关系)

主要特征:

  1. 支持完整的 ACID(原子性、一致性、隔离性和持久性)规则
  2. 使用 Apache Lucence 支持索引
  3. 无模式、自下而上的数据模型设计
  4. 由于可用于图形的紧凑存储和内存缓存,实现了高可扩展性

何时使用:

  1. 主数据管理
  2. 网络和 IT 运营
  3. 实时推荐
  4. 欺诈识别
  5. 社交网络(如脸书)

何时不使用:

  1. 批量查询/扫描
  2. 如果您的应用程序需要对数据进行分区和分片

看看本文中各种 NoSQL 技术的比较

资料来源:

维基,幻灯片共享Cloudera教程点Neo4j

于 2015-11-11T17:07:00.233 回答
-1

关于 MongoDB 和 NoRM(MongoDB 的 .net 扩展)的相当不错的文章 http://lukencode.com/2010/07/09/getting-started-with-mongodb-and-norm/

于 2010-09-17T13:44:29.673 回答