我目前正在为电子商务公司构建知识图,它主要包括产品类别层次结构,属性和它们之间的关系。除了常见的关系查询,我们非常关注以下几点:
主从群集支持。此图表数据库将用于在线搜索查询处理,因此高可用性对我们至关重要。数据量不会像数百万个节点那么大,所以我们不需要可以跨多台机器跨越数据的分布式集群,而是我们可能需要同时读取多台机器,而且服务不会去即使其中一台机器处于离线状态,也会停机。
快速在线查询效果。关系的推理可以离线完成,因此性能并不重要。但我们需要做很多在线查询,比如“查找属性P等于V值的节点”,因此我们需要在线查询处理的良好性能。该数据库将是读取密集型的,并且在初始化后不会发生太大变化。
社区和文档。由于我们的团队对图形数据库领域并不陌生,因此我们希望有一个用户友好的部署和开发文档,以及用于解决问题的活跃社区。
根据上述要求,我调查了一些候选人:
OrientDB。 OrientDB就像是市场上第二大受欢迎的产品,而似乎在其社区版中支持群集。我使用“似乎”这个词,因为它的网站上没有明确说明。任何人都可以清除这个吗? 此外,我发现了一篇关于OrientDB的非常负面的文章让我非常犹豫:http://orientdbleaks.blogspot.jp/2015/06/the-orientdb-issues-that-made-us-give-up.html
Titan。 Titan也很棒但是由于其最初的公司已经被收购,并且它的原始开发商正在开发不同的产品,它的未来发展和维护是有疑问的。
至于文档和社区,我真的不知道,因为这些是你开始做之后才会知道的事情。
总而言之,根据我的要求,我认为OrientDB和ArangoDB可能是我的候选人,但由于我上面提到的要点,我不知道选择哪一个。或者也许还有其他任何我缺席的优秀候选人?
感谢。
答案 0 :(得分:6)
Max在这里为ArangoDB工作。 ArangoDB不仅可以对图形进行在线查询,而且由于其多模型特性,您可以将图形查询与文档查询(使用二级索引),键查找和连接混合使用。它有一个复杂的查询引擎,带有一个完全了解ArangoDB集群结构的优化器,可以在所有实例中优化和分发查询执行。
在群集中,分片,同步复制和自我修复都是全自动的,具有可配置的参数。在Apache Mesos或DC / OS上部署ArangoDB集群特别简单(两次点击),但与其他编排框架相比也相对简单。 DC / OS上的ArangoDB还允许您通过图形用户界面或REST API调用进行向上和向下扩展,并自动替换失败的任务。
至于性能,我们所有的基准测试都表现出非常好的性能,刚刚发布的3.1版本甚至还有以顶点为中心的索引,这对于图形查询尤为重要。
我们会尽力提供您在https://www.arangodb.com/documentation/找到的大量文档。我们有一个用户手册,一个用于查询语言AQL的手册以及一个用于HTTP / REST API的手册。此外,我们还有教程,常见问题,标准任务的“Cookbook”,我们尝试及时回答StackOverflow和github问题。
所有这些都包含在Community Edition中,该版本随Apache 2.0开源许可证一起提供。
如果您有更多问题,请随时联系我们的团队或亲自与我联系。
答案 1 :(得分:3)
OrientDB Community Edition是一个免费的开源软件,由开发人员社区构建,并在不断改进。 OrientDB社区不会禁用水平扩展,容错,群集,分片和复制等功能。
有关群集的更多信息,请查看OrientDB官方指南:http://orientdb.com/docs/last/Tutorial-Clusters.html
希望它有所帮助。
此致
答案 2 :(得分:2)
Neo4j企业版可以在AGPL许可下使用。我很惊讶很多人都没有意识到这一点。如果您使用Neo4j Enterprise作为服务器并通过REST或bolt协议(Apache Licensed)与它通信,那么您不必担心在AGPL下发布连接到它的系统的代码。
如果您使用它嵌入式,那么您要遵守AGPL,但那么为什么在这种情况下您需要Neo4j企业?
如果您计划在AGPL下使用它,请记得从github克隆并编译Neo4j Enterprise,不要下载试用版。
Neo Technology提供了很好的支持,这正是您为企业订阅付出的代价。