标签: amazon-neptune

AWS Neptune上的Gremlin OLAP查询

在AWS Neptune文档中,它表示它与Apache TinkerPop Gremlin兼容,但它仅涉及在线事务处理(OLTP)类型的图遍历查询.我还没有看到任何关于长期运行的在线分析处理(OLAP)GraphComputer查询.

是否可以对存储在AWS Neptune图数据库服务中的图形执行OLAP查询?

olap graph amazon-web-services gremlin amazon-neptune

6
推荐指数
1
解决办法
565
查看次数

将 AWS Appsync 与 AWS Neptune 结合使用

我目前正在将 Aws Appsync、Aws Lambda 和 Aws Neptune 用于应用程序。我的 Lambda 函数使用 NodeJS 12。现在我的问题是当我进行突变并最终进行查询(我想确保突变是先工作)。例如:

  1. 这是我的graphql 模式的Post类型,它的正上方有addPost突变: Post schema
  2. addPost突变映射到该解析器:帖子突变解析器
  3. 然后运行这段代码:Lambda Code

当我运行此测试查询以添加帖子时,出现以下数据为空的错误:addPost测试查询和结果

在 gremlin 中添加顶点是否返回数据/对象?如果是这样,我如何为我的 appsync graphql api 获取适当的 JSON 格式?我一直在阅读实用小精灵并在网上搜索,但没有运气。先感谢您。

amazon-web-services aws-lambda graphql aws-appsync amazon-neptune

6
推荐指数
1
解决办法
792
查看次数

Gremlin Javascript 遍历永远无法解决

我正在尝试使用 gremlin npm 模块并连接到 Neptune 数据库。在测试期间,我尝试让 gremlin 连接到非活动端点和无效 url,以使系统更具弹性。我预计会抛出某种错误。但是,对于无效/不活动的 url,图形遍历不会在没有消息传递的情况下解决。

        const traversal = gremlin.process.AnonymousTraversalSource.traversal;
        const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
        const dc = new DriverRemoteConnection('wss://localhost:80');
        const g = traversal().withRemote(dc);
        const data = await g.V().limit(1).toList();
        console.log(data);
Run Code Online (Sandbox Code Playgroud)

我希望g.V().limit(1).toList()在使用无效的远程连接时抛出错误。同样,promise 永远不会解决,console.log(data)下一行的 永远不会运行。

对此的任何帮助将不胜感激!我需要某种系统来检测数据库连接是否有效,如果无效则记录错误。

graph-databases gremlin amazon-neptune

6
推荐指数
1
解决办法
191
查看次数

在 AWS Neptune 中定义图形架构以防止数据重复

使用 TinkerPop/JanusGraph 时,我可以定义 VertexLabels 和属性键,然后可以使用它们来创建复合索引。我在 Neptune 文档的某处读到索引不是必需的(或支持的)。

我的问题是,在将数据加载到数据库时如何防止重复?我在 AWS 文档中找到的唯一示例涉及加载已为每条记录提供唯一 ID 的数据,对我来说,这似乎需要首先从 RDBMS 中提取数据,以便在我之前获得所有 ID 及其关系。可以加载它。

我的理解是否正确,如果不正确我该如何解决这个问题?

tinkerpop3 amazon-neptune

5
推荐指数
1
解决办法
2424
查看次数

用于存储嵌套评论的图形数据库

我正在为嵌套评论系统设计一个数据模型。就像 Reddit 一样。

我在互联网上阅读了很多博客,我找到的所有解决方案都是尝试使用邻接列表、路径枚举、闭包表或嵌套集等设计在关系数据库中构建分层数据结构。由于缺乏 SQL 支持,所有这些解决方案都有不同的优点和缺点。MongoDB 似乎是另一个很好的 NoSQL 解决方案,具有 100 个嵌套级别和 16MB 大小限制。

我正在寻找的解决方案需要快速读取(50 RPS)。慢速插入和删除还可以。我期望通过排名来过滤和排序评论。

我可以使用 Neo4j、AWS Neptune 等图形数据库来满足此要求吗?它适合还是过度设计?

hierarchical-data neo4j graph-databases amazon-neptune

5
推荐指数
0
解决办法
520
查看次数

aws neptune 因大图下降而超时 ()

已经有一些关于这个主题的话题了..特别是这个

但是除了批处理之外,还有什么推荐的解决方案可以删除大图吗?我尝试增加超时时间但不起作用

下面是例子..


gremlin> gV().count()

==>5230885

gremlin> gV().drop().iterate()

{“requestId”:“77c64369-45fa-462f-91d7-5712e3308497”,“detailedMessage”:“评估[RequestMessage{期间脚本内发生超时,requestId = 77c64369-45fa-462f-91d7-5712e3308497,op =' eval',processor='',args={gremlin=gV().drop().iterate(),bindings={},batchSize=64}}] - 考虑增加超时","code":"TimeLimitExceededException"输入 ':help' 或 ':h' 获取帮助。显示堆栈跟踪?[yN]N

gremlin> gE().count()

==>83330550

gremlin> :远程配置超时无

==>远程超时已禁用

gremlin> gE().drop().iterate()

{“requestId”:“d418fa03-72ce-4154-86d8-42225e4b9eca”,“detailedMessage”:“评估[RequestMessage{期间脚本内发生超时,requestId = d418fa03-72ce-4154-86d8-42225e4b9eca,op =' eval',processor='',args={gremlin=gE().drop().iterate(),bindings={},batchSize=64}}] - 考虑增加超时","code":"TimeLimitExceededException"输入 ':help' 或 ':h' 获取帮助。显示堆栈跟踪?[yN]N

gremlin amazon-neptune

5
推荐指数
1
解决办法
2687
查看次数

AWS Neptune 数据库中的多租户

我是海王星的新手。在 Neptune 数据库中支持多租户的最佳方式是什么?
要求:
1. 支持数据库中的数千个租户(一个集群)
2. 通过租户过滤避免查询变得过于复杂
3. 良好的性能(如果有一种方法可以使用数据分区来加快查询时间)
4. 安全 -很难犯错误,从而导致跨租户访问。

gremlin amazon-neptune

5
推荐指数
1
解决办法
2692
查看次数

合并 Gremlin 中多个查询的结果

假设我想从数据库中获取一些顶点:

g.V(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

然后我有另一组顶点:

g.V(4, 5, 6)
Run Code Online (Sandbox Code Playgroud)

想象一下,这不仅仅是g.V(),而是一些更复杂的遍历来获取我的顶点。但遍历必须从 开始V(),因为我想从所有节点中进行选择。

我们还假设我想多次这样做。所以我可能想合并 7 个不同的结果集。每一种方法都可以采用完全不同的方式来获得结果。


现在我想将这两个结果合并到一个结果集中。我的第一个想法是:

g.V(1, 2, 3).fold().as('x').V(4, 5, 6).fold().as('x').select(all, 'x').unfold()
Run Code Online (Sandbox Code Playgroud)

但这行不通。第二次调用fold将清除我的“局部变量”,因为这是一个障碍步骤。

我目前的尝试是这样的:

g.V(1, 2, 3).fold().union(identity(), V(4, 5, 6).fold()).unfold()
Run Code Online (Sandbox Code Playgroud)

这可行,但看起来有点太复杂了。如果我想重复 7 次,这将是一个非常复杂的查询。

有没有更好的方法来完成两个不同查询结果的简单合并?

gremlin tinkerpop tinkerpop3 amazon-neptune gremlinpython

5
推荐指数
1
解决办法
3148
查看次数

Gremlin 到 AWS Neptune 的 403 禁止错误

非常感谢您提前的帮助

我尝试按照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

5
推荐指数
1
解决办法
3205
查看次数

匿名遍历与正常遍历 gremlin

我已阅读有关匿名遍历的文档。我知道它们可以开始使用__,并且可以在步进调制器内使用。虽然我从概念上不理解它。为什么我们不能使用从步骤调制器内的图遍历源生成的正常遍历?例如,在下面的 gremlin 代码中创建一条边

        this.g
            .V(fromId) // get vertex of id given for the source
            .as("fromVertex") // label as fromVertex to be accessed later
            .V(toId) // get  vertex of id given for destination
            .coalesce( // evaluates the provided traversals in order and returns the first traversal that emits at least one element
                inE(label) // check incoming edge of label given
                    .where( // conditional check to check if edge exists
                        outV() // get destination vertex of the edge to check …
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop tinkerpop3 janusgraph amazon-neptune

5
推荐指数
1
解决办法
2819
查看次数