Neo4j Tinkerpop多数据库通用版本
摘要 我正在开发一个应用程序,旨在跨tinkerpop支持的多个图形数据库工作 详细信息 根据我的研究,同一版本的tinkerpop库(gremlin python)不适用于所有图形数据库的最新版本。解决这种情况的最佳方法是什么。我打算测试的数据库是Neo4j Tinkerpop多数据库通用版本,neo4j,tinkerpop,tinkerpop3,janusgraph,gremlin-server,Neo4j,Tinkerpop,Tinkerpop3,Janusgraph,Gremlin Server,摘要 我正在开发一个应用程序,旨在跨tinkerpop支持的多个图形数据库工作 详细信息 根据我的研究,同一版本的tinkerpop库(gremlin python)不适用于所有图形数据库的最新版本。解决这种情况的最佳方法是什么。我打算测试的数据库是 JanusGraph 0.2.0支持gremlin python 3.2.7 NEO4J 3.3.3支持gremlin python 3.3.2 我仍在尝试集成更多的数据库,如orientDB和Amazon Neptune。您知道它们将支持什么版本
我仍在尝试集成更多的数据库,如orientDB和Amazon Neptune。您知道它们将支持什么版本吗。这个问题可能有点棘手,特别是对于没有明确发布版本和功能支持的非开源系统。对于开放源代码系统,您通常可以通过查看项目的pom.xml来找到特定版本支持的TinkerPop版本。对于OrientDB,这意味着找到您想要的版本(在本例中为3.2.3.0),然后查找gremlin核心依赖项: 版本指向一个属性,因此进一步检查pom,您将看到上面定义的数字: 因此OrientDB 3.2.3.0支持TinkerPop 3.2.3。对于封闭源代码系统,您只能四处搜索,直到找到您要寻找的答案,或者直接询问供应商,我猜-我已经看到Neptune在3.3.x上,但我不确定“x”的版本是什么 仅仅因为所有这些系统都支持不同版本的TinkerPop,并且一般建议使用匹配的TinkerPop版本来连接它们,并不意味着您无法使用3.3.x驱动程序来连接基于3.2.x的服务器。你可能没有这样做的最佳经验,在这样做的时候,你需要知道一些事情,但我认为这是可以做到的 从驱动程序的角度来看,这项工作的关键是确保您对所连接的图形具有正确的序列化配置。无论您是否尝试连接到同一版本系统,这都是正确的。默认情况下,TinkerPop确保同一版本中的这些配置是对齐的,以便它们能够开箱即用。这就是为什么我们倾向于建议您在可能的情况下使用相同的版本。如果不可能,则需要手动进行这些对齐 例如,如果您在此链接中向下滚动一点到“序列化”部分,您将找到Neptune支持的格式: 只要您将驱动程序配置为匹配其中一种格式,它就应该适合您。JanusGraph也可以这样说,它与海王星不同,不支持Gryo或GraphSON 3.0,因为它绑定到3.2.x线。序列化程序的配置可以在JanusGraph的Gremlin Server打包中找到: 至于如何为序列化配置python驱动程序?诚然,这方面的文章并不多。关键是在配置
客户端
时设置消息_序列化程序
(来自gremlinpython 3.3.2):
您可以看到,默认情况下,它设置为GraphSON 3.0。所以,这对海王星来说是完美的,但不是JanusGraph。对于尚不支持GraphSON 3.0的JanusGraph,您只需更改配置以使用GraphSON 2.0序列化程序:
因此,这只是让连接正常工作-然后还有其他需要考虑的事情:
math()
step,因为它在3.2.x服务器上无法工作)树的序列化中的某些东西,也许是一些扩展类型。如果遇到问题,您可以查看GraphSON类型的完整列表,并在发布的版本之间进行比较
是的,我会调查这个…很好的解释