Java中的图数据库(除了Neo4J)

44

问候,
除了Neo4J之外,还有哪些开源图形数据库可用?

注意:为什么不使用Neo4J?
Neo4J是开源的,但会计算基本元素(节点,关系和属性的数量)。如果您将其用于商业用途,则需要支付费用。官方网站上没有明确的定价信息,因此可能存在潜在的供应商锁定问题(尽管我刚刚创立了自己的公司,也没有预算花费软件)。所以这不是一个选项。

此致敬礼,


6
为了明确起见,这个问题的前提条件(“为什么不使用Neo4j?”)已经失效,因为Neo4j社区现在采用GPL许可证,而不是AGPL许可证,使其成为初创公司等的不错选择。如果您需要支持、监控或高可用性,则需要支付相应的费用。 - Matt Luongo
4
我不知道有哪些初创公司会把整个业务寄托在没有高可用性或支持的数据库上。 - marknuzz
1
@Nuzzolilo,那么稳定的企业/公司应该将他们的业务放在新型数据库上而不是初创公司吗?我正在进行实验、原型制作一个产品,这不是初创公司最初要做的吗?你有没有在生产中使用过Neo4J?你怎么知道Neo4J没有高可用性? - Nachiket
高可用性在Neo4j中已经存在了相当长的时间:http://docs.neo4j.org/chunked/stable/ha.html - nawroth
3
Neo4J的价格:http://www.neotechnology.com/price-list/ 如果您需要高可用性或集群等专业功能,每个实例和年份的价格为24000欧元。哇! - angelcervera
8个回答

30

4
OrientDB(http://www.orientechnologies.com)原生地处理图形,速度非常快,并且支持Blueprints(https://github.com/tinkerpop/blueprints/wiki),就像Neo4J一样接近图形数据库的标准。因此,您可以运行所有的Tinkerpop(http://www.tinkerpop.com)堆栈:Gremlin语言(https://github.com/tinkerpop/gremlin/wiki),Rexster(https://github.com/tinkerpop/rexster/wiki)通过HTTP / RESTful调用进行访问等。但是,由于采用Apache 2许可证,OrientDB商业友好:任何使用都是免费的。 - Lvca
1
根据我的阅读,如果您想在OrientDB中实现高可用性,您需要使用Hazelcast进行实现,而它也有不同的许可证和支持模型。 - rayseaward
@rayseaward,您能简要说明Hazelcast引入了哪些许可证/许可证方面的问题吗? - Tuukka Mustonen
1
实际上,Hazelcast和OrientDB具有相同的许可证:Apache2,因此在这方面没有问题。 - Lvca

12

12

正如RobV所说,如果你的图表可以用任何自定义格式(例如RDFDOT语言)表示,那么你很幸运!下面是你可以选择的各种选项:

  • RDF:Jena - 被认为是Java中RDF的事实标准实现,但它有一些奇怪的地方,比如大量使用迭代器。
  • RDF:Protégé - 如果你不使用Jena(甚至如果你使用Jena),但想使用RDF,Protégé就是你的工具。它基本上是一个非常好的本体编辑器,使处理图形数据变得轻松。它还使用类似于Eclipse的插件层次结构,有很多可用的插件,因此您可以轻松地添加像OWL本体之类的插件。
  • DOT:GraphViz - 另一个非常流行的工具,GraphViz可以从DOT语言生成图形。非常强大,有点棘手,但也可能是你需要的一切。

当然,如果这符合你公司的要求,你可以开发自己的产品并开始销售。


谢谢提供信息和将其作为产品销售的建议, 顺便说一句,向软件从业者销售软件/技术很难。 :) 与其销售,最好开始一个开放源代码项目。 - Nachiket
1
我不认为RDF算作自定义格式,因为它是W3C标准!你会把HTML称为自定义格式吗?;-) - RobV
2
@RobV:这个答案已经一年了,在当前环境下,我敢说这个答案已经不太相关了,因为NoSQL运动已经重新定义了整个问题。当然,“图形”这个术语在这里通常也是具有误导性的,因为它既可以是大多数人所认为的绘画,也可以是NoSQL所关注的那种数学理论。 :) 无论如何,我敢说HTML是一种自定义格式。虽然不是很好,但仍然... :) - Esko

9
我建议您使用tinkerpop的Blueprints,它们允许您使用自己选择的图形数据库(也可以使用Neo4j和OrientDB)。并且它们还提供了一个扩展,可以将数据库用作rdf存储库(使用Sesame Sail)。

7
Neo4j是一个开源项目,社区版采用GPLv3许可证,高级和企业版采用AGPL许可证。更多信息请参考http://neo4j.org/licensing-guide/。Peter Neubauer是Neo4j团队的一员。

2
嗨Peter,感谢您详细的回复。 我已经使用Neo4J创建了原型应用程序,并且我很喜欢它,这就是为什么我正在寻找Neo4J的替代品的原因。 :)我面临的唯一障碍是许可证问题。因为,我的服务/产品可能会非常快地获得1M个节点(我将所有内容存储在Neo4J Db中),但我的收入可能还没有开始。因此,请发送给我价格清单以供审查。当我不得不联系销售人员时,我会感到害怕,这就是为什么我没有尝试过,因为Neo4J定价联系方式说=“销售人员”:)) - Nachiket
顺便说一下,我的电子邮件是nachiket[at]logicwind(dot)com。 - Nachiket
3
顺便提一下,数据限制不再适用于 Neo 商业版本,现在仅基于功能而非数据,即使是商业使用,第一个实例也是免费的。这应该更加有利于初创公司,详情请见 http://neotechnology.com/price-list /peter neubauer - Peter Neubauer
1
@user83490 - 彼得,我正想着修改关于你的评论的回答,但我意识到你也在Neo4j团队上 - 你能不能激励你的同事修复他的帖子呢?在这方面,我建议更新您的用户名,这将使您在这个伟大的开源项目中披露您的从业情况更加容易和可信(请参见faq 的“我可以宣传我在这里所从事的产品或网站吗?”部分);更不用说改善双方的沟通体验了 ;) - Steffen Opel
很想阅读Neo4j许可指南,但您在此答案中提供的链接指向404页面,能否提供一个新的链接?我在Neo4j网站上找不到它。 - Mikle Garin
显示剩余2条评论

5
如果您的图表可以表示为RDF图表,则可以使用Jena,因为它完全免费且开源。 http://jena.sourceforge.net 无论这对您是否有用,取决于您需要图形数据库的原因以及您需要在其中存储哪种类型的图表。

实际上,我正在为社交网站工作,负责用户关系(朋友、朋友的朋友和推荐,例如“你可能认识他”)。 - Nachiket
1
如果您还不了解FOAF http://www.foaf-project.org/和SIOC http://sioc-project.org,那么您应该看一看它们 - 这些都是两个流行的RDF词汇表。 FOAF描述人及其关系,而SIOC用于描述各种在线社区内容。 FOAF已经被像LiveJournal这样的主要网站使用。 - RobV

2

还可以看看ArrangoDB,这是一个可爱的多模型数据库。

https://www.arangodb.com/

编辑:必须说我越来越爱Arrango了 :)


1

我知道已经有一段时间了,但是今天我问自己同样的问题,然后我发现 OhmDB 看起来是为轻量级目的而设计的。


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