问题标签 [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.
graph-theory - gremlin javascript无法收集顶点的属性
在 amazon neptune 中插入一个顶点后,我得到了一个唯一的 id。如果我想打印出顶点的属性,我可以在 gremlin 控制台中轻松完成
但是在我的节点 js 应用程序中,如果我尝试做同样的事情,我将无法获得顶点的属性
这是我在 javascript 中所做的
然后,我打电话
输出是
我正在使用这个 库来连接 amazon neptune 。如何在键值对中获取顶点的属性,就像在 gremlin 控制台中获取它一样?
amazon-web-services - 获取所有相关顶点的最佳 gremlin 查询
我需要获取与起始顶点相关的任意数量关系的所有顶点。我有一个有效的查询,但是在几百条边和图形的复杂性之后它开始显着变慢。有没有更有效的方法来获取相关顶点?
对于具有 202 个顶点、259 条边的子图,我们注意到了性能崩溃的一个示例。运行配置文件后,它似乎发出了 1,444,439 次遍历,大约花费了 80 秒。
附加信息:这来自使用 AWS Neptune 1.0.1.0.200258.0 运行
amazon-web-services - 如何为通过 CSV 导入 AWS Neptune 的 Vertex 属性安排单基数?
Neptune 文档说他们仅在通过 CSV 导入的属性数据上支持“设置”属性基数,这意味着新到达的属性值无法覆盖同一属性上同一顶点上的旧属性值。
例如,如果第一个 CSV 导入
然后 Marko 有一个生日和第二个 CSV 导入
'Marko' 顶点 'age' 属性将包含两个年龄值,这似乎没有用。
AWS 表示这(折叠设置为单一基数属性(仅保留最后到达的值)需要通过 Gremlin 遍历进行后处理。
这是否意味着应该有一个遍历,连续扫描具有多个(设置)属性的顶点,并使用单基数再次设置属性,最后一个值可能?如果是这样,那么执行此操作的最佳 Gremlin 查询是什么?
在伪 Gremlin 中,我想像:
是否完全保证 Set-cardinality 属性始终按到达顺序列出?
或者我在这里完全走错了路。
任何帮助,将不胜感激。
更新:所以到目前为止我能想出的最好的东西还远不是一个完美的解决方案,但它仍然可能对我的鞋子有用。
在计划 A 中,如果我们碰巧知道属性名称并且到达顺序根本不重要(只需要这些道具上的单一基数),所有顶点的遍历可能类似于:
方案 B 是在同一顶点的临时属性名称下收集新的属性值(例如,以 _ 开头),并遍历具有此类临时属性名称的顶点,并将原始属性设置为具有单一基数的尾值:
C 计划,这将是最酷的,但不幸的是不起作用,是继续在专用顶点中收集属性值,以纪元时间戳作为属性名称,将属性值作为它们的值:
并对属性名称(键)进行排序,取最后一个,并使用它的值来保持主顶点属性值与最新值保持同步:
看起来 value() 步骤的参数必须是常量,它不能使用另一个遍历的结果作为参数,所以我无法让它工作。也许有更多 Gremlin 经验的人知道解决方法。
amazon-web-services - AWS Neptune 是否支持使用 Gremlin 进行文本搜索和排序?
我将 AWS Neptune 与 Gremlin 一起使用。有没有办法使用通配符进行搜索,如'% title %'并按asc / desc排序?
python - gremlin-python 在一个事务中删除多个顶点和边
我的背景:
- 小鬼蟒
- AWS 海王星
我的问题是:
1) 鉴于我拥有要删除的顶点和边的所有特定 ID,我可以在一个事务中递归删除顶点和边吗?目的是编写评估每条边的 python 函数,并确定是否需要删除它,并链接一个 gremlin 查询以删除它。
例如:
要删除的顶点 ID:
要删除的边缘 ID:
链接到 g 的 python 函数的示例如下:
我想作为一个事务执行的链式查询理想情况下看起来像:
以上不起作用......而且似乎我不能 .E('someid') 在我的 gremlin 查询中间。
稍微偏离主题,但我最好的尝试(非递归)如下所示:
非常感谢任何帮助!
amazon-web-services - 删除 aws neptune 中的所有数据
我有一个 aws neptune 集群,我使用 sparql http api 插入了许多 ntriples 和 nquads 数据。
curl -X POST --data-binary 'update=INSERT DATA { http://test.com/s http://test.com/p http://test.com/o。}' http://your-neptune-endpoint:8182/sparql
我想清理我插入的所有数据(不是实例)
我怎样才能做到这一点?
gremlin - 使用 Gremlin 在 Amazon Neptune 中的多个标签上进行匹配
Amazon Neptune 的 Gremlin 实施允许在顶点上使用多个标签(请参阅https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html)
但是如何通过多个标签查询顶点呢?
gV().hasLabel('label1').hasLabel('label2')
是我所期望的,但似乎没有奏效。
amazon-rds - AWS Neptune 读取器和写入器必须是相同的实例类型吗?
集群中的 AWS Neptune 读取器和写入器数据库实例的大小必须相同吗?
在控制台中,我注意到我可以将它们修改为不同的实例类型。如果 writer 很强大,大量数据写入 graph DB,但是 reader 是最小的实例类型,会发生什么?
我认为阅读器(只读副本)实例会落后,因为它无法快速复制?
似乎在引擎盖下,Neptune 使用了类似的 RDS 类型数据库实例,所以它可能与任何 RDS 复制数据库(如 Aurora)相同。
gremlin - 按顶点属性和边属性排序(如果存在)
考虑一个社交媒体网站,其中一个user
(顶点)可以share
(边缘)post
另一个(顶点)user
。
当您构建用户提要时,它看起来像这样:
到目前为止一切顺利,但我需要使用以下逻辑对这些帖子进行排序:
如果帖子有
share
来自用户 I 的传入边follow
,则按createdDate
该边的属性share
排序(按帖子的共享时间排序,而不是帖子的创建日期)。否则,按 的
createdDate
属性排序post
。
就像是:
问题是并非所有帖子都有share
优势,所以这会引发错误。
错误:GraphQL 错误:错误:错误:服务器错误:{"requestId":"53e7e66c-302e-4521-ac39-b672b4cb52e6","code":"InvalidParameterException","detailedMessage":"提供的遍历器未映射到值:v[c9b66e21-f8fc-48e5-bdcd-c580248b3f52]->[VertexStep(IN,[share],edge)@[shareEdge], EdgeVertexStep(OUT), VertexStep(IN,[follow],vertex), NeptuneHasStep( [~id.eq(f70a5a2d-f606-44b8-8fa6-1e359033223e)]), SelectOneStep(last,shareEdge), NoOpBarrierStep(2500), PropertiesStep([createdDate],property)]"} (499)
仅当边缘存在时,如何按边缘属性排序,然后回退到不存在的顶点属性排序?