我有一个带有以下细节的顶点:
{
"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) 我无法理解如何从使用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代码定义图形模式,这就是为什么我需要管理实例并且遍历源是不够的
非常感谢您提前的帮助
我尝试按照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
我正在创建一个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)
我查看了所有可以从我找到的所有来源获得的文档,我找不到任何关于"一次性"的方法.有没有人以前做过这个或知道怎么做?
提前致谢!
我正在编写一个脚本,使用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() …摘要
我正在开发一个能够跨越tinkerpop支持的多个图形数据库的应用程序
细节
根据我的研究,相同版本的tinkerpop库(gremlin-python)不能与所有图形数据库的最新版本一起使用.这种情况的最佳方法是什么?我打算测试的数据库是
我仍在尝试集成更多数据库,如orientDB和Amazon Neptune,你知道他们将支持哪个版本.
我被过滤多个属性和提取的节点,因此,如果有多个filter接合用and和or。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) 大多数数据库为用户提供了列出正在运行的查询的机制,并在需要时取消它们 这对于终止花费大量时间的查询特别有用.例如,在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) 我正在使用 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
似乎 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-server ×10
gremlin ×7
tinkerpop3 ×6
janusgraph ×3
tinkerpop ×3
titan ×2
amazon-iam ×1
graph ×1
java ×1
neo4j ×1
python ×1