我正在寻找在项目中使用的图形数据库的选项。我希望每天有~100000次写入(vertix + edge)。读取少得多(每小时几次)。最常见的查询需要2个边缘深度跟踪,我希望返回~10-20个结果节点。 我没有图形数据库的经验,并希望与gremlin一起工作,以便能够在需要时切换到另一个图形数据库。现在我考虑两种可能性:neo4j和Titan。
正如我所看到的,Neo4j有足够的社区,信息和工具,所以我更愿意从它开始。它们的容量数量应足以满足我们的需求(约340亿个节点,约340亿个边缘)。但我不确定在这种情况下我将面临哪些硬件要求。此外,我没有看到他们的查询的任何并行化选项。
另一方面,Titan专为水平可扩展性而设计,并与火花等集中并行工具集成。所以我可以预期硬件需求可以线性扩展。但是泰坦的信息/社区/工具要少得多。
我很高兴听到您的建议
答案 0 :(得分:2)
Sebastian Good做了精彩的演讲,比较了几个数据库。您可以在here中查看他的结果。
对于具有不同数据集,不同节点大小和缓存的每个图数据库的基准测试,请通过socialsensor查看此Github repository。只是为了让您知道,回购中的结果与演示文稿中的结果略有不同。
我个人的建议是:
如果你的口袋很厚,可去Neo4j。通过技术支持和简单的CIPHER,事情将会非常迅速。
如果您支持开源(并且耐心等待其开发周期),请使用Amazon Dynamo DB后端使用Titan DB。这将为您提供EC2机器和Dynamo表的“无限”可扩展性和良好性能。有关详细信息,请查看here for docs和here for their code。