如何使用python在neo4j中有效构建依赖图?

问题描述

  1. 数据位于 npm 公共注册 中。给定一个 JavaScript 包 name,转到 https://registry.npmjs.org/name,我可以获得它的信息,包括它的依赖项。

  2. 现在我想将此信息导入到neo4j 数据库中,构建包的依赖关系图。给定添加到队列中的包名称 express,我的步骤如下:

    • 通过https://registry.npmjs.org/pkg_name获取队列中前端包的JSON文件返回
    • 解析文件并使用 Neo4j Python Driver 在 neo4j 中存储 express 及其依赖项之间的基本信息和关系。
    • 对于每个依赖项,使用 set 检查它是否已添加到队列中。如果没有,则检查它的依赖图是否已在neo4j中构建。如果也没有,请将其添加到队列中。
    • 重复直到 queue 为空。然后构建express的依赖图。
  3. 结果是这样的:the dependency graph os JavaScript package of express。事情是在我的机器上单个包的整个过程大约需要50秒,太长了,更不用说npm上的所有包,大约100万个。

  4. 我能想到的一些原因:

    • 使用 set 搜索所有包的成本为 O(nlogn)。
    • 查询节点的时间消耗(检查包的依赖图是否在neo4j中)。
    • 创建节点和关系的时间消耗(因为我似乎不使用批量插入)。

谁能给我一些建议来加速依赖图的构建?

真诚的感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...