问题标签 [janusgraph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cassandra - Cassandra Titan/JanusGraph 原子性
我们计划使用 Cassandra 和 Titan/JanusGraph db 的组合作为我们其中一个项目的后端。作为其中的一部分,我有以下要求。
Record/Vertex A 和 Record/Vertex B 应该以原子方式写入后端,即要么两条记录都写入,要么都不写入。本质上,我需要多行原子写入。但是,从下面列出的 Titan 和 Cassandra 的文档中,这就是我发现的。
泰坦数据库
Titan 事务不一定是 ACID。它们可以在 BerkleyDB 上进行如此配置,但在 Cassandra 或 HBase 上通常不会如此,因为底层存储系统不提供可序列化的隔离或多行原子写入,并且模拟这些属性的成本会很高
卡桑德拉 2.0
在 Cassandra 中,写入在分区级别是原子的,这意味着在一行中插入或更新列被视为一次写入操作。
卡桑德拉 3.0
在 Cassandra 中,写入操作在分区级别是原子的,这意味着同一分区中两行或多行的插入或更新被视为一次写入操作。
我有以下问题。
1) 我们将 Titan DB 与 Cassandra 2.1.X 一起使用。如果我想实现多行原子性,我该怎么做?有什么解决方案可以实现这一目标吗?
2) 我看到 Cassandra 批处理操作为多个操作提供了原子性?但我在 Titan DB 中没有看到相应的操作来使用此功能。我在这里遗漏了一些东西还是有什么方法可以使用它?
3)由于 Cassandra 在各种应用程序中大量使用,我很确定人们有需要多行原子操作的用例。人们如何解决这个问题?
4) 我看到 Cassandra 3.0 有这个支持。那么当 JanusGraph 开始支持 Casandra 3.0 时(目前它只支持 2.1.x),我应该期待 JanusGraph 的这种支持吗?
java - JanusGraph 输出子图为 GraphSON 错误
我正在尝试使用 JanusGraph 在 Gremlin shell 中将子图输出为 GraphSON。
TinkerPop 文档供参考: http ://tinkerpop.apache.org/docs/current/reference/#graphson-reader-writer
但是,当我编写完整的图表时,它可以正常工作,但是,当我想编写使用这些命令查询过的子图表时:
我使用相同的写入命令:
我收到此错误:
(是 java.lang.IllegalStateException)(通过引用链:org.janusgraph.graphdb.relations.RelationIdentifier["inVertexId"])
环顾四周,我发现另一个线程说我需要导入一个包才能正确执行此操作(对于 TitanGraph,但我认为它也适用于 JanusGraph):Import package in gremlin
但是,每当我尝试导入时:
我收到此错误:
无效的导入定义:'com.thinkaurelius.titan.graphdb.tinkerpop.io.graphson.TitanGraphSONModule';原因:启动失败:script1494618250861805544050.groovy:1:无法解析类 com.thinkaurelius.titan.graphdb.tinkerpop.io.graphson.TitanGraphSONModule @ 第 1 行,第 1 列。导入 com.thinkaurelius.titan.graphdb.tinkerpop.io。 graphson.TitanGraphSON模块 ^
1 个错误
如何使用 JanusGraph 在 Gremlin shell 中将子图输出为 GraphSON?
cassandra - cassandra 是否无法存储跨分区大小限制的关系?
我注意到由于其 100MB 分区限制,关系无法正确存储在 C* 中,非规范化在这种情况下无济于事,而且 C* 每个分区可以有 2B 单元,因为只有 Longs 的那些 2B 单元有 16GB ?!?!? 这不是超过 100MB 分区大小限制吗?
这是我一般不明白的,C* 宣称它可以有 2B 个单元,但分区大小不应该超过 100MB ???
这样做的惯用方法是什么?人们说这是 TitanDB 或 JanusDB 的理想用例,可以很好地扩展数十亿个节点和边缘。这些在后台使用 C* 的数据库如何对它进行数据建模?
我的用例在这里描述https://groups.google.com/forum/#!topic/janusgraph-users/kF2amGxBDCM
请注意,我完全清楚这个问题的答案是“使用额外的分区键来减小分区大小”,但老实说,我们当中谁有这种可能性?特别是在建模关系中......我对特定时间发生的关系不感兴趣......
hadoop - Janusgraph 火花番石榴版
这是我的问题:
我们使用 cloudera 5.7.0 和 java 1.8.0_74,我们有 spark 1.6.0、janusgraph 0.1.1、hbase 1.2.0。
我在 gremlin shell 中运行以下代码:
它开始执行 spark 作业,第一阶段运行顺利,但是在第二阶段我得到一个异常:
我认为这是一个番石榴版本问题
这是我启动 gremlin shell 的方法
这是我的 conf/hadoop-graph/hadoop-call-script.properties 文件:
如果我将“spark.master=yarn-client”行更改为“spark.master=local[*]”,那么它会完美运行并将数据加载到 janusgraph,不会引发异常。但是我需要使用纱线,这对我来说是必须的。因此,我将 guava-18.0.jar 添加到 hdfs 并将行“spark.executor.extraClassPath=hdfs:///user/me/guava-18.0.jar”添加到 hadoop-call-script.properties。它没有解决问题。
目前我没有想法和无助,任何帮助表示赞赏。
不是:我知道 mvn 着色与此问题有关,但是在这种情况下,由于我使用 janusgraph 代码创建火花作业,我无法干预和着色番石榴包。
提前谢谢,阿里
cassandra - janusgraph键空间下的cassandra中缺少vertex_ids表?
Titan 图与 cassandra 一起使用时会在“titan”键空间下创建一个表“vertex_ids”。但是在使用 janus 时,我似乎无法在“janusgrpah”键空间下找到“vertex_ids”表。我还阅读了文档,其中描述了值的存储方式,但没有说明在哪些表下。
neo4j - 我应该使用 TitanDB 吗?
我正在考虑使用 TitanDB。它似乎真的符合我们的需求(我们可以完全控制存储引擎,并且可以在 DynamoDB 之上构建它)。但是,我担心该项目不再维护并且创建了一个分支 JanusGraph 来继续该项目。使用 TitanDB 仍然安全吗?我应该改用 JanusGraph(它是否已准备好投入生产,是否可以使用 DynamoDB 将其部署在 AWS 上)?
performance - 在不迭代顶点的情况下访问边
我目前正在 hadoop 环境中使用 janusGraph。我已经在图中加载了更多的顶点(大约一百万)并获得了主键运行的索引。迭代每个顶点大约需要 3 分钟。我的图中目前有 0 条边。
为了加载我的图形边缘,我正在读出一个包含数据的 csv 文件。由于我有时会面临超时(由于环境),我一直在寻找顶点数,然后跳到 csv 中的正确行,重新开始加载。
但是,要求对我的 edge-csv 文件执行相同操作的边数大约需要 4 分钟,并且会为我的 tinkerpopserver 产生超时。
有没有办法在不迭代每个顶点的情况下获得图中边的总数?
添加边本身可以正常工作,因为顶点的复合索引非常快。
java - 泛化 DynamoDB + JanusGraph Factory:锁和架构问题
我正在从 AWS 推广 DynamoDB + JanusGraph 教程,这样,给定具有标准约定的标准 .txt 文件,程序可以摄取数据(作为三元组)并创建顶点、属性和边。通常我不会发布这么长的问题,但似乎这些都与我创建的同一个类 ObjectCreationCommand 中的 4-5 行有关。
Triple 的示例如下所示:"name:Jim Henson \t isCreatorOf \t televisionshow:The Muppets"
- 左对象:吉姆汉森
- 左对象属性:名称
- 关系:isCreatorOf
- 正确的对象:布偶
- 正确的对象属性:电视节目
尽管程序编译并运行,但我得到了几个异常,这些异常阻止了图形被填充。当我运行 Factory 程序时,它会读取我所有的三元组并将它们放入一个哈希集中,但随后会出现以下错误(10 次,但这只是 1 个示例):
接下来,抛出一个类似的异常:
然后抛出与模式相关的异常:
最后,抛出了一个我真的不明白的异常:
因为最终事务是 Null,所以会抛出 NullPointerException 并且永远不会提交事务;因此,我的图表已初始化但为空。
通常我不会发布这么长的问题,但似乎这些都与我创建的同一个类 ObjectCreationCommand 中的 4-5 行有关。
ObjectCreationCommand.java
上面的异常表明所有错误都来自该类的第 47、55 或 59 行:
谁能帮助确定我在这门课上做错了什么?无论我在做什么都是锁定表并创建模式问题。
sbt - 如何通过 SBT 使用 DynamoDB Janusgraph 存储后端?
我开始了一个使用 JanusGraph 作为库依赖项的 Scala 项目:
"org.janusgraph" % "janusgraph-core" % "0.1.1",
该项目当前使用inmemory
存储后端。但是我想使用 DynamoDB 来持久化我的图表并最终在 AWS 上部署应用程序。
我找到了 JanusGraph 的 DynamoDB 插件https://github.com/awslabs/dynamodb-janusgraph-storage-backend并按照指南运行 Marvel Universe 示例。但是,当我尝试将库添加到我的build.sbt
文件时:
"com.amazonaws" % "dynamodb-janusgraph-storage-backend" % "1.1.0"
它说找不到库。