如何存储图表?

use*_*820 6 python graph

假设我已经定义了一个Graph类.

graph iowa = {.....nodes:{edges.......}}
Run Code Online (Sandbox Code Playgroud)

和类似的图簇.

一旦脚本在对象中运行其全部.

但是如何存储图形信息(包括其属性的定义)?你把它保存在db表中,csv?

可能不满意的查询: 在Neo4J中存储多个图形 (它表示newo4j一个实例一次支持一个图形,如果要运行多个图形,则支持一个图形下的子图形)

如何在数据库中存储图形数据?

*****更新*****:Alexanders在下面回答可用的Graph DBs,我想知道是否有人知道VertexDB可能的分支,他们已经将这个高性能的lib导入任何其他语言,最好是NodeJS还是Python?

http://www.dekorte.com/projects/opensource/vertexdb/docs/manual.html

有没有人有使用AllegroGraph vs Neo4j的经验?

Ale*_*kov 9

NetworkX Python库提供了几个方法来存储图形数据:

  1. 将图表序列化为JSON
  2. 泡菜图
  3. gml格式存储图表(链接)
  4. 将图形写入.dot文件(链接).

由于数据的复杂性,图形查询的复杂性,在SQL中难以编写以及这些查询的性能,因此在关系数据库中存储图形当然是一个不好的选择. 图形数据库,NOSQL和Neo4j文章详细描述了这个问题.

但是,我认为,您应该考虑使用Neo4j.我希望经过一些调查,你会找到一种方法来适应你的需求.毕竟,Neo4j 有很多替代品.

数据库引擎是一个很好的访问资源.有很多有用的信息,特别是,您可以将任何数据库与另一个数据库进行比较,找到最适合您的数据库.

此外,你可以参考这个美丽的答案.

更新:

由于您使用的结构类似于JSON,因此您可以考虑使用面向JSON的数据库,例如CouchDBMongoDB.与Neo4j相比,它们具有良好的性能和规模.