关于将 Neptune DB 用作网络数据库及其扩展复杂计算能力的最佳实践,我有一个一般性问题。我想开发一个用户推荐系统,在该系统中,平台上的传入用户会被提示他们可能关注的其他用户,以发展网络。
为了实现像 Triadic Closure 这样的简单技术,我应该在网络数据库(在我的例子中是 AWS Neptune)上使用 gremlin 查询来生成建议吗?我相信在这种情况下,我将不得不创建 python 脚本来并行化多个节点的查询并为每个节点大规模生成推荐。
或者是将网络数据以节点、边及其属性的形式存储到关系数据库中,然后通过运行 SQL 查询将网络数据加载到 python 中,然后使用包来执行计算,这是一种更常见的做法吗?就像 NetworkX 一样。在这种情况下,我不必担心批量计算,因为像 Redshift 这样的关系数据库会处理它。但是,我将编写 python 逻辑来实现诸如三元闭包之类的技术。
此外,在未来,我可能想使用更复杂的图计算技术,如图聚类、分区、计算不同类型的中心性。在 Neptune+Gremlin 的框架内,所有这些/任何这些都是可能的。
以下是我正在寻求答案的问题:
数据科学团队使用图形数据构建解决方案(例如用户推荐)时常用的技术堆栈是什么?我所说的数据科学技术堆栈是指帮助查询、分析、可视化、计算和服务的技术。
Neptune + Gremlin 能否替代 NetworkX 等 python 包进行网络分析和中心度测量?
Neptune DB 仅作为数据存储是理想的,还是它还可以支持复杂的网络分析和推荐服务?
任何对此的见解/资源都会非常有帮助!