networkx - 海王星-Gremlin-Python |扩展网络分析和服务用例(如实时推荐)的最佳实践

标签 networkx graph-databases amazon-neptune network-analysis gremlinpython

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

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

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

另外将来我可能想使用更复杂的图计算技术,如图聚类、分区、不同类型中心性的计算。在 Neptune+Gremlin 的框架内所有/任何这些都是可能的。

在上述背景下,我正在寻求答案的问题:

  • 数据科学团队使用图形数据来构建用户推荐等解决方案的常用技术堆栈是什么?我所说的数据科学技术堆栈是指帮助的技术 查询、分析、可视化、计算和服务 .
  • Neptune + Gremlin 能否替代 NetworkX 等 Python 包进行网络分析和中心性测量?
  • Neptune DB 仅作为数据存储的理想选择 是否也能支持复杂的网络分析和推荐服务?

  • 任何有关这方面的见解/资源都会非常有帮助!

    最佳答案

    绝对可以在 Gremlin 中进行三元闭包。我还看到数据科学家通过在 Jupyter Notebook 中运行 gremlin-python 客户端来同时使用 NetworkX 和 Gremlin。由于此问题非常针对 Amazon Neptune,您可能希望在 [1] 的 Neptune 支持论坛上发帖。在 [2] 中还有一些有用的 Gremlin 食谱

    如果您在支持论坛上发帖,我相信有人会回复。

  • [1] https://forums.aws.amazon.com/forum.jspa?forumID=253&start=0
  • [2] http://tinkerpop.apache.org/docs/current/recipes/
  • 关于networkx - 海王星-Gremlin-Python |扩展网络分析和服务用例(如实时推荐)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60865712/

    相关文章:

    sparql - 如何在 sparql 中检索数据时保持顺序

    r - 如何使用 R 找到重叠的社区结构?

    python - 将图边列表转换为 JSON 树

    python - 有没有一种简单的方法来修剪 NetworkX 图中断开连接的网络?

    neo4j - 在Cypher中,如果关系不存在,如何创建?如果有则更新属性

    Gremlin:在 AWS Neptune 中执行文本搜索

    gremlin - 在 AWS Neptune Gremlin Python 中正确处理顶点删除

    python - 以 newick 格式保存 NetworkX 树

    neo4j - Cypher:按关系属性对同一级别的节点进行排序

    sql-server - 无需循环遍历和获取图中的节点