OrientDB与Neo4j的使用体验对比

48

我正在寻找适合项目的图形数据库。 我尝试了Neo4j并且很喜欢它。 但是AGPL许可证问题让我有点犹豫 (您可以在此阅读相关信息)。

然后我发现了一些文章声称OrientDB实际上要快得多。 但它们并不是最新的。 您可以在这里找到它们这里这里。 它的许可证是Apache 2,这很好。

所以我只想问stack overflow社区的伟大人民您的意见。

  • 可扩展性很重要,OrientDB声称在这方面更好(这里)
  • 许可证应该是开放的
  • 我有一个复杂的顶点/边模型,并且需要检索多达3级的关系
  • OrientDB提供的文档图形混合似乎是一个优点

谢谢您的反馈!


9
有人可以解释一下,为什么这个问题被踩和投票关闭吗?严肃的问题,我做错了什么吗? - Ole Spaarmann
2
我认为总的来说,SO格式是用于提问和获取答案的。例如,“你能推荐最好的X吗?”或“X和Y哪个更好?”这样的问题往往会引起人们的反感,因为它们吸引了非常主观的回答。而你的问题并没有特定的数据集或查询相关联。如果你重新构思你的问题,询问哪些功能对于你的问题来说更好,那么回答这个问题就会更容易,而不仅仅是陈述意见,“嗯,我更喜欢这个...” - FrobberOfBits
你应该使用Neo4j,我最初尝试使用OrientDB,但它的所谓SQL存在许多错误,而Neo4j解决了我所有的问题。 - Ravinder Payal
1个回答

35
注意:我是OrientDB团队的成员,我的观点肯定是有偏见的。在回复中我也用了非常随意的语调。
关于您提到的几个问题:
1)关于集群部署,目前来说根本无法比较。Neo4j是主从复制,他们自己都说它通常只适用于单位数字节点部署,并且整个图必须属于一台机器。你可以直接从他们这里听到:http://www.infoq.com/interviews/ian-robinson-neo4j?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1 OrientDB具有完全能力进行多主复制(每个节点都可以接受读写),能够分片数据,智能地使用集群分布数据并自动完成分布式查询和事务。我们的CEO最近为hazelcast做了一个出色的网络研讨会,展示了我们在这方面的设置:http://hazelcast.com/resources/orientdb-hazelcast-memory-distributed-graph-database/ 2)Apache 2.0是我们的社区许可证,它非常自由。您甚至可以免费嵌入OrientDB社区版。(A)GPL让一些人担心他们的闭源代码会被污染。这可能是一个威胁,也可能不是一个威胁,但有时很难确定。我们的社区许可证非常功能丰富,包括完全分布式、多主复制和分片。
3)遍历关系是图数据库的重点。因此,Neo4j或OrientDB都将非常适合您在这方面进行2000个深度的操作,性能仍然表现良好。
4)文档-图形能力非常出色,但你肯定已经知道了。我们构建的产品是一个生产级系统,旨在成为一个完整的数据库,而不是作为RDBMS或其他数据存储的补充。

我在这里表现得很强硬,但我有充分的理由。在过去的3周里,一支来自世界领先科技公司的完整开发团队一直在将OrientDB和Neo4j进行比较测试。对于他们非常苛刻的使用情境而言,出于多种原因考虑,我们是更好的选择。钱不是问题,我们的技术赢得了业务。

根据我的经验,一旦你开始使用OrientDB,就再也不会回头了。如果您需要任何帮助,请告诉我们!


2
Hazelcast的链接很棒。我们正在工作中迁移到Hazelcast,我正在努力让我们采用OrientDB。 - CodeShaman
2
@Greg McCarvell,OrientDB的主要问题在于(扩展)SQL查询。即使在关系型数据库中,它也不适合,甚至有些混乱,但使用它作为设计用途非常不同的数据库管理系统还是有点不方便。查询语言使得OrientDB变得不太易接近,尽管它写道由于事先熟悉SQL而降低了学习曲线。由于图形思维与表格和连接思维不同,以及建模各种数据的方式也不同,因此声称查询也应该如此是非常直观的。但是今天查询OrientDB并不直观。 - sçuçu
1
@Greg先生,这里的问题在于像PHP和许多其他常用的Web开发语言一样,没有稳定的驱动程序。 - Ravinder Payal
3
@RavinderPayal 我完全同意。OrientDB已发布了两个版本,却没有测试他们的“官方”Python驱动程序以确保其正常工作。作为一个新用户,我怎么会是唯一一个注意到这个问题的人呢? - jwogrady
1
我知道“类SQL”的查询语言应该是OrientDB的优势,但这是一个错误的工具用于错误的工作。为了保持它的SQL风格,需要进行各种各样的修改,已经几乎无法被识别,而且肯定不比学习Neo4j的Cypher更容易。在我看来,这是一团糟。然而,我确实喜欢它相对于Neo4j的文档存储功能。我的公司需要在Neo4j和OrientDB之间做出选择,而Neo4j的学习曲线要小得多(即使许可证价格曲线更陡峭)。 - Michael Oryl
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接