海王星-Gremlin-Python |扩展网络分析和实时提供建议等用例的最佳实践

Neptune-Gremlin-Python | Best practises for scaling network analysis and serving use cases like recommendations in realtime

我有一个关于将 Neptune DB 用作网络数据库的最佳实践及其针对复杂计算进行扩展的能力的一般性问题。我想开发一个用户推荐系统,在这个系统中,平台上的新用户会收到他们可能关注的其他用户的提示,以扩大网络。

为了实现像 Triadic Closure 这样的简单技术,我应该在网络数据库(在我的例子中是 AWS Neptune)上使用 gremlin 查询来生成推荐吗?我相信在这种情况下,我必须创建 python 脚本来并行查询多个节点并为每个节点大规模生成建议。

OR 更常见的做法是将网络数据以节点、边及其属性的形式存储到关系数据库中,然后通过运行 SQL 查询将网络数据加载到 python,然后在此之上使用像 NetworkX 这样的包。在这种情况下,我不必担心批处理计算,因为像 Redshift 这样的关系数据库会处理它。但是,我会编写 python 逻辑来实现三元闭包等技术。

此外 将来我可能想使用更复杂的图计算技术,如图聚类、分区、计算不同类型的中心性。在 Neptune + Gremlin 的框架内,all/any 这些可能吗?

根据上述上下文,下面是我正在寻求答案的问题:

  1. 数据科学团队使用图形数据构建用户推荐等解决方案时常用的技术堆栈是什么?我所说的数据科学技术堆栈是指帮助 查询、分析、可视化、计算和服务 的技术。

  2. Neptune + Gremlin 能否替代 python 网络分析和中心性测量等 NetworkX 软件包?

  3. Neptune DB 仅作为数据存储是理想的吗或者它是否也支持复杂的网络分析和推荐服务?

关于此的任何 insight/resources 都将非常有帮助!

在 Gremlin 中做三元闭包是绝对可以的。我还看到数据科学家通过 运行 Jupyter Notebook 中的 gremlin-python 客户端同时使用 NetworkX 和 Gremlin。由于这个问题是针对 Amazon Neptune 的,因此您可能希望 post 到位于 [1] 的 Neptune 支持论坛。在 [2]

也有一些有用的 Gremlin 食谱

如果您 post 到支持论坛,我相信会有人回复。