Aks*_*hay 4 neo4j tinkerpop tinkerpop3 gremlin-server janusgraph
摘要
我正在开发一个能够跨越tinkerpop支持的多个图形数据库的应用程序
细节
根据我的研究,相同版本的tinkerpop库(gremlin-python)不能与所有图形数据库的最新版本一起使用.这种情况的最佳方法是什么?我打算测试的数据库是
我仍在尝试集成更多数据库,如orientDB和Amazon Neptune,你知道他们将支持哪个版本.
这个问题可能有点棘手,特别是对于没有明确发布版本和功能支持的非开源系统.对于开源系统,您通常可以通过查看项目的pom.xml找到它们支持特定版本的TinkerPop版本.对于OrientDB,这意味着找到你想要的版本(在本例中为3.2.3.0),然后寻找gremlin-core依赖:
https://github.com/orientechnologies/orientdb-gremlin/blob/3.2.3.0/driver/pom.xml#L47
版本指向一个属性,所以进一步检查pom,你会看到上面定义的数字:
https://github.com/orientechnologies/orientdb-gremlin/blob/3.2.3.0/driver/pom.xml#L14
所以OrientDB 3.2.3.0支持TinkerPop 3.2.3.随着闭源系统,直到你找到你想找的答案,或者直接询问供应商我猜你只能四处搜寻 - 我已经看到了海王星是3.3.x,但我不知道是什么版本的"x"的.
仅仅因为所有这些系统都支持不同版本的TinkerPop,一般建议使用匹配的TinkerPop版本连接到它们并不意味着你不能让3.3.x驱动程序连接到基于3.2.x的服务器.你可能没有最好的经验,你需要知道一些事情,但我认为可以做到.
从驱动程序的角度来看,这样做的关键是确保为要连接的图形提供正确的序列化配置.无论您是否尝试连接到同一版本系统,都是如此.默认情况下,TinkerPop确保同一版本中的这些配置对齐,以便它们开箱即用.这就是为什么我们倾向于建议您尽可能使用相同的版本.如果不可能,您需要手动进行这些对齐.
例如,如果您在此链接中向下滚动一点到"序列化"部分,您将找到海王星支持的格式:
https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html
只要您将驱动程序配置为匹配其中一种格式,它就适合您.同样可以说JanusGraph,与Neptune相比,不支持Gryo或GraphSON 3.0,因为它绑定到3.2.x线.序列化器的配置可以在JanusGraph的Gremlin Server包装中找到:
至于如何配置python驱动程序进行序列化?不可否认,关于这方面的内容并不多.关键是设置message_serializer配置时Client(从gremlinpython 3.3.2):
您可以看到默认设置为GraphSON 3.0.所以,这对海王星来说是完美的,但不是JanusGraph.对于尚不支持GraphSON 3.0的JanusGraph,您只需更改配置即可使用GraphSON 2.0序列化程序:
所以,这只是让连接工作 - 那么还有其他事情需要考虑:
math()3.3.x客户端中的步骤,因为它赢了在3.2.x服务器上工作)Tree一些东西,也许还有一些扩展类型.您可以随时看GraphSON类型的完整列表在这里,如果你遇到麻烦公布版本之间进行比较.| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |