SQL类似于Apache TinkerPop的查询语言

时间:2018-02-22 03:05:28

标签: gremlin tinkerpop tinkerpop3

背景:到目前为止,我一直在使用conditional types及其NEO4J,我希望转移到Cypher Query以支持多个图形数据库。

Apache TinkerPop我找到我的朋友,我会写这个查询。

MATCH (you {name:"You"})-[:FRIEND]->(yourFriends)
RETURN you, yourFriends

现在我正在寻找一种类似于我的代码中已编码的查询语言,以便与Gremlin一起使用

从我看来,Gremlin有一个像“ gv(12).outE('knows')。inV ”的脚本,但这与SQL语法不相似,这就是我我正在寻找。

  

注意:我不是在寻找SQL连接,我只是在寻找   SQL LIKE脚本

1 个答案:

答案 0 :(得分:3)

TLDR;

对您的问题的简短回答是,对于启用Tinkerpop的数据库,您需要在Gremlin中编写查询,目前还没有类似SQL的语言。

详细

Gremlin在很多方面与SQL和Cypher不同,但重要的是Gremlin是一种声明性语言,而SQL / Cypher是命令式语言。在Gremlin中,您可以定义遍历图形的方式,在SQL / Cypher中定义所需内容,引擎可以为您优化遍历。

例如,您在上面的Cypher查询将以Gremlin编写为:

g.V().has('name', 'You')
   .as('you').out('friend')
   .as('yourFriends')
   .select ('you', 'yourFriends')

目前,您需要将您的Cypher查询转换为Gremlin,以对抗任意数量的TP数据库,包括JanusGraph,CosmosDB,DSE Graph,AWS Neptune ....所有当前提供商都可以在此处找到:Tinkerpop Providers

Daniel Kuppitz撰写了一篇文章,教你如何从繁琐的SQL查询迁移到编写gremlin,并在此处提供:SQL2Gremlin