tinkerpop - tinkerpop 驱动程序 - janusgraph 丢失数据 - 未存储新顶点
问题描述
我尝试将数据添加到 cassandra 存储上的现有 janusdb。
我使用 tinkerpop 驱动程序。
通过这种方式,我创建了一个遍历:
g = traversal().withRemote(DriverRemoteConnection.using(host,port,"g"));
并以这种方式添加用户
g.addV("User").properties("name",name).hasNext();
然后我尝试从数据库中恢复用户
g.V().has("name",user).values("name")
但是找不到用户
来自 gremlin 控制台的相同结果
graph.addVertex(label, 'User', 'name', 'ciro2')
如果我在同一会话中搜索用户,我会找到它。如果我关闭会话并重新启动控制台,我找不到用户。
好的,使用 commit 命令后,数据会保留在数据库中,但只能来自控制台。
graph.tx().commit();
解决方案
嵌入式解决方案
graph = JanusGraphFactory.open(cassandraConfigPath);
g = graph.traversal();
cassandraConfigPath 指向文件的位置
janusgraph-cassandra-es.properties
及其内容:
storage.backend=cql
storage.hostname=127.0.0.1
cache.db-cache = true
cache.db-cache-clean-wait = 20
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
最后,我可以使用以下代码添加一个顶点:
g.addV("User").property("name", f).next();
g.getGraph().tx().commit();
编辑:
感谢 Florian Hockmann 的评论,我也为远程服务器找到了解决方案。当我问这个问题时,我确实使用了 3.4.4 版的 tinkerpop 驱动程序。这无法加载 conf/remote-objects.yaml 文件。当我将库更新到 3.4.6 时,一切正常。
远程解决方案
g = traversal().withRemote(gremlinServerConfigPath);
graph = g.getGraph();
其中 gremlinServerConfigPath 是 file:///full.qualified.name.properties
和内容
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=conf/remote-objects.yaml
gremlin.remote.driver.sourceName=g
conf/remote-objects.yaml(在资源文件夹下)
hosts: [localhost]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
在这种情况下,不需要提交
推荐阅读
- reactjs - useEffect 操纵次要值
- javascript - JS 无法发布或获取元素
- jakarta-ee - 在自由上替换 websphere jar 文件
- angular8 - 在服务器给出的角度 8 中设置 href 字符串
- python-3.x - 如何从“旧式”类实现“新式”Python AsyncIO 迭代器函数?
- ios - 无法在 Swift 中使用来自 Firebase 的数据立即加载 UIImageView 和 UILabel
- python - 你如何删除编码的字符
- javascript - React/Redux 变量在生产中返回 HTML
- r - R从先知的每周季节性分析中删除周六和周日
- batch-file - 批处理多个 m3u 文件