标签: gremlin-server

如何更新Gremlin服务器中的顶点值(Titan 1.0)

我有一个带有以下细节的顶点:

HTTP://本地主机:8182 /的gremlin = GV(4192)

{

"requestId": "6ce01f3b-f623-41f6-bb03-dd56014e0701",
"status": 

{

"message": "",
"code": ?200,
"attributes": { }

},
"result": 
{

"data": 

[

{

"id": ?4192,
"label": "person",
"type": "vertex",
"properties": 

{

"name": 

[

{
    "id": "170-38g-sl",
    "value": "marko2"
}

],
"age": 
[

                    {
                        "id": "1l8-38g-28lh",
                        "value": ?29
                    }
                ]
            }
        }
    ],
    "meta": { }
}

}
Run Code Online (Sandbox Code Playgroud)

我想更新顶点的名称:

我试过以下查询:

GV(4192).setProperty( '名', '威廉')

但它没有更新,它给出了错误

{

 "message": "Error encountered evaluating script: g.V(4192).setProperty('name','William')"

}
Run Code Online (Sandbox Code Playgroud)

graph gremlin titan tinkerpop3 gremlin-server

5
推荐指数
2
解决办法
5762
查看次数

如何从 Java 获取 JanusGraphManagement

我无法理解如何从使用ConfiguredGraphFactory 创建的图表中获取JanusGraphManagement 实例。

我尝试做这样的事情:

        JanusGraphFactory.Builder config = JanusGraphFactory.build();
        config.set("storage.hostname", storageHostname);
        config.set("storage.port", storagePort);
        config.set("storage.backend", STORAGE_BACKEND);
        config.set("index.search.backend", SEARCH_BACKEND);
        config.set("index.search.hostname", indexHostname);
        config.set("index.search.port", indexPort);
        config.set("graph.graphname", graphName);

        JanusGraph graph = config.open();
        JanusGraphManagement mgmt = graph.openManagement();
Run Code Online (Sandbox Code Playgroud)

但它会产生以下异常:

java.lang.NullPointerException:必须将 Gremlin 服务器配置为使用 JanusGraphManager。

gremlin-server 因以下配置而崩溃:

host: 0.0.0.0
port: 8182
scriptEvaluationTimeout: 180000
# channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
channelizer: org.janusgraph.channelizers.JanusGraphWebSocketChannelizer
graphManager: org.janusgraph.graphdb.management.JanusGraphManager
graphs: {
  #graph: conf/gremlin-server/janusgraph-cql-es-server.properties,
  ConfigurationManagementGraph: conf/gremlin-server/janusgraph-cql-es-server-configured.properties
}
.....
Run Code Online (Sandbox Code Playgroud)

JanusGraph 的一个是这样的:

gremlin.graph=org.janusgraph.core.ConfiguredGraphFactory
graph.graphname=ConfigurationManagementGraph
storage.backend=cql
storage.hostname=127.0.0.1
storage.cql.keyspace=janusgraph
cache.db-cache = true
cache.db-cache-time = 180000
cache.db-cache-size = 0.25
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
index.search.elasticsearch.client-only=true
Run Code Online (Sandbox Code Playgroud)

我想做的是直接从Java代码定义图形模式,这就是为什么我需要管理实例并且遍历源是不够的

java gremlin-server janusgraph

5
推荐指数
1
解决办法
393
查看次数

Gremlin 到 AWS Neptune 的 403 禁止错误

非常感谢您提前的帮助

我尝试按照https://docs.aws.amazon.com/neptune/latest/userguide/get-started.html中的说明设置我的 AWS Neptune 环境。设置似乎很好,我可以使用 Neptune Notebook 安装来检查状态。状态消息为:

{
  "status": "healthy",
  "startTime": "Tue May 12 04:24:52 UTC 2020",
  "dbEngineVersion": "1.0.2.2.R2",
  "role": "writer",
  "gremlin": {
    "version": "tinkerpop-3.4.3"
  },
  "sparql": {
    "version": "sparql-1.1"
  },
  "labMode": {
    "ObjectIndex": "disabled",
    "ReadWriteConflictDetection": "enabled"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法通过 EC2 客户端实例中的 Gremlin 控制台连接到它,我收到 403 禁止错误,如下所示:


         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> :remote connect tinkerpop.server conf/neptune-remote.yaml
WARN  org.apache.tinkerpop.gremlin.driver.Cluster  - Using deprecated SSL trustCertChainFile support
ERROR org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler  - Could not …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services gremlin amazon-iam gremlin-server amazon-neptune

5
推荐指数
1
解决办法
3205
查看次数

Gremlin-Server添加具有多个属性的顶点(Titan 1.0.0)

我正在创建一个Titan图(由Dynamodb支持); 我正在使用Titan 1.0.0并运行Gremlin-Server 3(在TinkerPop3上).

我正在尝试将一个顶点添加到我的图表中,并在一行中添加标签和多个属性.我能够添加一个带有标签和单个属性的顶点,并且我可以在创建顶点后为顶点添加多个属性,但似乎我无法一次完成所有操作.

为了测试我在gremlin shell中运行命令,但最终用例是通过REST api与它进行交互(已经正常工作).

作为一个说明,我在每次交易后回滚,所以我有一个清白的板岩.

以下是我发起会话的方式:

gremlin> graph = TitanFactory.open('conf/gremlin-server/dynamodb.properties')
==>standardtitangraph[com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager:[127.0.0.1]]
gremlin> g = graph.traversal()
==>graphtraversalsource[standardtitangraph[com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager:[127.0.0.1]], standard]
Run Code Online (Sandbox Code Playgroud)

我可以创建一个带有标签和单个属性的顶点,如下所示:

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01')
==>vp[date_of_birth->1949-01-01]
gremlin> g.V().hasLabel('date_of_birth').has('date_of_birth','1949-01-01').valueMap()
==>[date_of_birth:[1949-01-01]]
Run Code Online (Sandbox Code Playgroud)

我也可以创建一个顶点,然后在我刚刚创建的顶点开始遍历遍历许多属性:

gremlin> v1 = graph.addVertex('date_of_birth')
==>v[409608296]
gremlin> g.V(v1).property('date_of_birth','1949-01-01').property('year_of_birth',1949).property('date_of_birth','1949-01-01').property('day_of_birth',1).property('age',67).property('month_of_birth',1)
==>v[409608296]
gremlin> g.V(v1).valueMap()
==>[day_of_birth:[1], date_of_birth:[1949-01-01], month_of_birth:[1], age:[67], year_of_birth:[1949]]
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我试图避免进行2次调用来实现这个结果,所以我想一次创建具有所有这些属性的顶点.从本质上讲,我希望能够执行以下操作,但失败超过1 .property():

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01').property('year_of_birth',1949).property('date_of_birth','1949-01-01').property('day_of_birth',1).property('age',67).property('month_of_birth',1)
No signature of method: com.thinkaurelius.titan.graphdb.relations.SimpleTitanProperty.property() is applicable for argument types: (java.lang.String, java.lang.String) values: [date_of_birth, 1949-01-01]
Run Code Online (Sandbox Code Playgroud)

我也尝试使用.property()具有多个属性的1 (以及我能想到的所有其他语法变体),但它似乎只捕获第一个:

gremlin> graph.addVertex('date_of_birth').property('date_of_birth','1949-01-01','year_of_birth',1949,'date_of_birth','1949-01-01','day_of_birth',1,'age',67,'month_of_birth',1)
gremlin> g.V().hasLabel('date_of_birth').has('date_of_birth','1949-01-01').valueMap()
==>[date_of_birth:[1949-01-01]]
Run Code Online (Sandbox Code Playgroud)

我查看了所有可以从我找到的所有来源获得的文档,我找不到任何关于"一次性"的方法.有没有人以前做过这个或知道怎么做?

提前致谢!

amazon-dynamodb gremlin titan tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
1080
查看次数

如何使用gremlin python在gremlin服务器上提交更改

我正在编写一个脚本,使用gremlin-python库在gremlin-server上创建一个图形.我找不到任何关于图书馆的好文档.

这是我正在尝试的代码结构:

from    gremlin_python                                  import statics
from    gremlin_python.structure.graph                  import Graph
from    gremlin_python.process.graph_traversal          import __
from    gremlin_python.process.strategies               import *
from    gremlin_python.driver.driver_remote_connection  import DriverRemoteConnection

graph = Graph()

g = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','try1'))

# Drop all vertices in the graph to create a new one
g.V().drop().iterate()

a = g.addV('person').property('name', 'Tushar').property('pronoun', 'me')
b = g.addV('person').property('name', 'Avi').property('pronoun','you')

e1 = a.addE('knows').to(b).property('relation','self')

c = g.addV('subject').property('name','maths')

e2 = a.addE('studies').to(c)

e3 = b.addE('studies').to(c)
e3.next()

v = g.V().toList()
e = g.E().toList()

print(v)
print(e)
Run Code Online (Sandbox Code Playgroud)

这段代码只给我2个顶点和1个边.

我的一些尝试:

  • 当我尝试不使用代码时.next(),图表上没有提交数据.
  • 当我给e1一个.next() …

python gremlin tinkerpop gremlin-server

4
推荐指数
1
解决办法
1237
查看次数

Tinkerpop多个数据库的通用版本

摘要

我正在开发一个能够跨越tinkerpop支持的多个图形数据库的应用程序

细节

根据我的研究,相同版本的tinkerpop库(gremlin-python)不能与所有图形数据库的最新版本一起使用.这种情况的最佳方法是什么?我打算测试的数据库是

  1. JanusGraph 0.2.0支持gremlin-python 3.2.7
  2. NEO4J 3.3.3支持gremlin-python 3.3.2

我仍在尝试集成更多数据库,如orientDB和Amazon Neptune,你知道他们将支持哪个版本.

neo4j tinkerpop tinkerpop3 gremlin-server janusgraph

4
推荐指数
1
解决办法
286
查看次数

多个过滤器使用和/或的 TinkerPop 问题

我被过滤多个属性和提取的节点,因此,如果有多个filter接合用andor。2 工作正常,但从 3 开始它似乎崩溃了。

下面是错误的简化演示。

filter

gremlin> g.V().filter(has("name", "marko"))
==>v[1]

gremlin> g.V().filter(has("name", "marko")).and().filter(has("name", "marko"))
==>v[1]

gremlin> g.V().filter(has("name", "marko")).and().filter(has("name", "marko")).and().filter(has("name", "marko"))
java.util.ConcurrentModificationException
Type ':help' or ':h' for help.
Display stack trace? [yN]
Run Code Online (Sandbox Code Playgroud)

没有 filter

gremlin> g.V().has("name", "marko")
==>v[1]

gremlin> g.V().has("name", "marko").and().has("name", "marko")
==>v[1]

gremlin> g.V().has("name", "marko").and().has("name", "marko").and().has("name", "marko")
java.util.ConcurrentModificationException
Type ':help' or ':h' for help.
Display stack trace? [yN]
Run Code Online (Sandbox Code Playgroud)

dummy-name是不存在的东西。仍然因不同的错误而崩溃

gremlin> g.V().hasLabel("dummy-name").filter(has("name", "a").or().has("name", "b").or().has("name", "c"))
    java.lang.ArrayIndexOutOfBoundsException
    Type ':help' or ':h' for help. …
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
365
查看次数

如何列出正在运行的gremlin查询?如何取消慢速或长时间运行的查询?

大多数数据库为用户提供了列出正在运行的查询的机制,并在需要时取消它们 这对于终止花费大量时间的查询特别有用.例如,在MySQL中你会做这样的事情:

mysql>show processlist;
mysql> kill <pid>;
Run Code Online (Sandbox Code Playgroud)

我怎样才能在gremlin服务器上做类似的事情?到目前为止,唯一可用的旋钮是scriptEvaluationTimeoutyaml配置,它允许您在超时时终止请求.我对能够列出所有正在运行的查询的API以及可以让我按ID删除查询的API感兴趣.如果不支持,tinkerpop是否有计划在较新版本中支持它?就像是:

g.query()
g.query('123')
g.query('123').cancel()
Run Code Online (Sandbox Code Playgroud)

graph-databases gremlin tinkerpop tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
290
查看次数

将 Elastic 搜索数据从 5.6.4 迁移到 6.6.0

我正在使用 Docker 使用 Cassandra(3.11.1) 和 Elastic search(5.6.4) 运行 Janusgraph(0.3.1)。但是,现在我迁移到了最新版本,即(janusgraph:最新,Cassandra:3,弹性搜索:6.6.0)并且我正在运行多个图。这工作正常,但是,我无法使用旧数据。当我尝试挂载旧的 Cassandra 和 Elastic 搜索卷时,我在 Elastic 搜索方面遇到了一些问题。但是,当我使用最新版本和旧卷运行单个图形时,它运行良好。当我尝试使用多个图形时,Janusgraph 无法使用弹性搜索进行配置。

为此,我尝试使用陀螺仪格式(我已经从旧服务器导出)从图形中导入旧数据,而不是安装旧卷。但我也面临这个问题

我尝试了两种方式,但在这两种方式中,我都面临一些问题。任何帮助将不胜感激

这是我的 docker-compose.yml 文件

version: "3"

services:      
  janusgraph:
    image: janusgraph/janusgraph:latest
    container_name: jce-janusgraph
    environment:
      JANUS_PROPS_TEMPLATE: cassandra-es
      janusgraph.storage.backend: cql
      janusgraph.storage.hostname: jce-cassandra
      janusgraph.index.search.hostname: jce-elastic
    volumes:
     - /mnt/janusvol/janus/scripts:/opt/janusgraph/tmp/scripts
     - /mnt/janusvol/janus/conf/gremlin-server.yaml:/opt/janusgraph/conf/gremlin-server/gremlin-server.yaml
     - /mnt/janusvol/janus/conf/empty-sample.groovy:/opt/janusgraph/scripts/empty-sample.groovy
     - /mnt/janusvol/janus/conf/janusgraph-cql-es-server-geniegraph.properties:/opt/janusgraph/conf/gremlin-server/janusgraph-cql-es-server-geniegraph.properties
     - /mnt/janusvol/janus/conf/janusgraph-cql-es-server-aagraph.properties:/opt/janusgraph/conf/gremlin-server/janusgraph-cql-es-server-aagraph.properties
    ports:
      - "8182:8182"
    networks:
      - jce-network
    healthcheck:
      test: ["CMD", "bin/gremlin.sh", "-e", "scripts/remote-connect.groovy"]
      interval: 10s
      timeout: 30s
      retries: 3
    entrypoint:
      - bin/gremlin-server.sh
      - conf/gremlin-server/gremlin-server.yaml
    links:
      - cassandra
      - elasticsearch
  cassandra: …
Run Code Online (Sandbox Code Playgroud)

elasticsearch gremlin-server cassandra-3.0 janusgraph elasticsearch-6

4
推荐指数
1
解决办法
213
查看次数

winsows 错误“最重要的位..”的 Gremlin 控制台

似乎 Gremlin 控制台不适用于 Windows:我下载了最新的 Gremlin 控制台并运行 bin\gremlin.bat 文件。似乎在连接(如下面的命令)并运行一个简单的远程命令(gV(123).count())后,我收到一个错误:

The most significant bit should be set according to the format
Run Code Online (Sandbox Code Playgroud)

这是我运行的命令:

PS C:\Users\L836423\Downloads\apache-tinkerpop-gremlin-console-3.4.7-bin\apache-tinkerpop-gremlin-console-3.4.7\bin> .\gremlin.bat

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> :remote connect tinkerpop.server conf/remote.yaml
log4j:WARN No appenders could be found for logger (com.jcabi.manifests.Manifests).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
==>Configured my_gremlin_dns.com/55.222.88.111:8182
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - …
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
394
查看次数