问题标签 [amazon-neptune]
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.
python - 使用 gremlinpython 按属性查找 Gremlin/Neptune 顶点
使用图遍历对象g
,我可以按 ID 查找顶点:
按“类别”查找也有效:
但是通过另一个属性查找不会产生任何结果:
可能有什么不同?这些值是带有破折号的简单大写字母,所以我怀疑是否有任何转义/取消转义。
(财产名称已更改以保护无辜者)
sparql - 从 s3 到 Neptune 的 Turtle 文件数据处理
我已curl post
按照 AWS 文档中的建议通过方法命令将海龟文件从 s3 复制到 Neptune。curl
命令执行,作业成功完成。发布作业执行,我检查了作业 id 状态以了解负载状态的详细信息;我的工作显示整体状态已完成,但记录数为零。我在 S3 中的海龟文件有很多记录。为什么我的curl post
方法没有将一条记录从 S3 传输到 Neptune?如果您已成功将海龟文件从 S3 移动到 Neptune,请有人帮忙。
neo4j - gremlin 克隆一个节点及其边缘
gremlin 是否提供克隆顶点的能力,例如
v1->v2, v1->v3, v1->v4
,我如何简单有效地创建一个新顶点v5
,该顶点也具有指向v2, v3, v4
(边缘指向的相同位置v1's
)的边,而无需显式设置它们,而是说类似g.createV(v1).clone(v2)
.
请注意,我使用的是 AWS Neptune 版本的 gremlin,解决方案必须与之兼容。
node.js - AWS Neptune、JS、Gremlin:添加带有可选 Edge 的 Vertex
有时需要创建带有可选边的顶点。
edgeIsNeeded
这个遍历有效,我只是在 JS 中注入带有变量的布尔值。
有没有更好的方法在单次遍历中做到这一点,例如,基于先前的属性edge_is_needed
值?
gremlin - 搜索最近添加的节点
我正在将具有特定标签的顶点添加到图形中(目前使用 gremlin-python 而不是 gremlinv3.3)。我正在手动向这些节点添加“时间戳”属性。我希望能够找到最近添加的带有此标签的顶点,以便我可以从那里沿着链向后检索一定数量的顶点。在每次添加时添加一组从第二新到最新顶点的“下一个”类型边将允许我在找到最新顶点后执行向后搜索。
我希望能够在亚线性时间(理想情况下为 O(1) 时间)中找到最近添加的顶点。以下是一些如何做到这一点的想法:
- 我可以手动维护一个“最新”类型的节点,它指向这种类型的最新顶点,然后搜索它。
- 当我添加它们时,我可以在这些顶点上创建索引顶点的二叉树,以便向上搜索树并从这些顶点中的任何一个向下搜索将我带到 O(log(n)) 时间内的最新节点。
- 也可能是我可以利用时间戳属性进行有效搜索,但我不清楚如何。
问题是,我不太了解图形搜索是如何在后台实现的,无法知道这些策略中的哪一个是最好的。任何人都可以帮忙吗?我创建的东西也有可能被重新部署到亚马逊海王星实例中,而且我也不清楚这是否会改变最佳策略。
neo4j - 在微服务之间共享图形数据库
有没有办法在微服务之间共享 neo4j/aws Neptune 图形数据库,同时将对图形数据库特定部分的访问限制为仅特定微服务?这样做会不会对性能产生任何影响?
tinkerpop3 - 打印与路径关联的边缘
我能够使用以下命令获取图形的路径,
gV('v6').repeat(out().simplePath()).until(hasId('v8')).path().limit(1)
给,
我想打印与路径关联的边缘。尝试了几种方法都无法打印。
gremlin - Gremlin 从多个顶点到单个顶点的所有最短路径
以下堆栈溢出问题
展示了如何找到从具有 id 的单个起始顶点到具有 id687
的结束顶点的最短路径,并通过使用、和1343
确保没有重复路径来有效地做到这一点store
without
aggregate
g.V(687).store('x').repeat(out().where(without('x')).aggregate('x')).until(hasId(1343)).limit(1).path()
我想以相同的效率执行相同的查询,但是我需要从具有相同标签的多个起始顶点到相同结束顶点的所有最短路径,例如它看起来像这样(尽管这不是工作)
g.V().hasLabel('label').store('x').repeat(out().where(without('x')).aggregate('x')).until(hasId(1343)).limit(1).path()
我在语句中尝试了多个具有两次重复的构造,但无法store('x')
为每个起始顶点获得独立的。我也在使用AWS Neptune
平台,因此它限制了 Gremlin 在不允许循环/脚本的情况下的使用。所有 gremlin 查询必须以g.
与.
https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html
performance - Neptune Graph Database Performance Cost to List Edges of a Type
图数据库的用例是通过喜欢、收藏和报告关系(边)链接用户和内容(顶点)。我遇到的问题是我有时需要显示报告的内容(来自任何用户)。由于这不是标准的图遍历,我担心这会对性能产生很大影响。
是否可以对“报告”类型的边缘进行索引以快速获取所有已报告内容的列表?有一个更好的方法吗?
gremlin - AWS Neptune 事务支持
Neptune 目前只支持 OLTP 类型的图遍历查询?
但是从文档中:
事务 Neptune 在每次 Gremlin 遍历开始时打开一个新事务,并在成功完成遍历后关闭事务。出现错误时事务回滚。
由分号 (;) 或换行符 (\n) 分隔的多个语句包含在单个事务中。除了最后一个语句之外的每个语句都必须以要执行的 next() 步骤结束。只返回最终的遍历数据。
不支持使用 tx.commit() 和 tx.rollback() 的手动事务逻辑。
由分号或换行符分隔的多个语句在单个事务中执行。那么,您可以在每个事务中执行多个查询吗?例如,单个脚本中的多个 .drop() 查询?
通过上面的尝试,只执行了最后一个查询(只删除了 id='2' 的顶点)。
但是对于添加顶点,它可以工作:
两个顶点都被添加。
是否支持单个事务中的多个删除查询?