使用图数据库的Python graph-tool库

2 投票
1 回答
1282 浏览
提问于 2025-04-18 06:17

我想用一些graph-tool的功能来处理图数据库里的数据(比如neo4j,不过任何支持Blueprints的图数据库都可以,具体可以看看Tinkerpop项目)。

我知道(并且尝试过一些)py2neo,并且想了解一下Bulbs,看看它能否作为访问数据库的一种方式,还有像pyBlueprints这样的项目。

我想问的是:如何在图数据库(比如neo4j)中使用graph-tool的功能,而不需要把整个图导出为graphML(或者其他graph-tool支持的格式)呢?

我希望这个过程比运行查询,找到图的一部分,导出,使用graph-tool处理,再把数据放回图中要更灵活一些。

我知道Blueprints提供了一个“到GraphML的读写器”,这是否就是解决方案呢?

1 个回答

3

我觉得你提到的工作流程可能是你能用的最好也是唯一的选择。用TinkerPop的术语来说,我会更具体地描述这个工作流程:

  1. 运行查询 - 使用Gremlin控制台
  2. 找到图的一部分 - 在控制台中写下你的遍历(查询),然后把结果放到一个子图中。使用内存中的TinkerGraph来存储这个子图 - 更多信息可以查看这里
  3. 导出 - 在你的子图实例上调用saveGraphML
  4. 用graph-tool处理 - 将GraphML导入graph-tool,然后进行你需要的操作。
  5. 把数据放回图中 - 我对graph-tool及其功能不太了解,但Gremlin控制台让你可以用多种方式处理数据,这样就很容易把数据移动到不同的地方 - 更多信息可以查看这里

撰写回答