Min*_*iMe 4 graph networkx graphdb
我试图了解我是否应该为我的项目使用 GraphDB。我正在映射计算机网络并使用 NetworkX。这些关系是物理或逻辑邻接(L2 和 L3)。在当前的化身中,我的程序扫描网络并将邻接信息转储到 Postgress RDB 中。从那里我使用 Python 使用 NetworkX 构建我的图形。
我试图了解我是否应该改变我的方法,以及将信息存储在 GaphDB 中是否有任何好处。Postgress 有 AgensGraph,它似乎建立在 Postgress 之上,作为 GraphDB 覆盖或插件。我还不知道把它安装在上面是否会让我的生活更轻松。我几乎没有从 SQLite 迁移到 Postgress :-) 和 SQLAlchemy,所以现在不到 3 个月,我就在尽可能地重新考虑事情(迁移尚未完成)
我可以选择使用混合,但我不确定使用 GraphDB 是否有意义。据我了解,这些具有不需要模式的优点(这对像我这样的数据库新手有很大帮助)
我还想知道 NetworkX (Python librayr) 和 GraphDB 是否有任何重叠。据我了解,NetworkX 可以帮助分析图的拓扑结构,而 GraphDB 主要用于查询存储在数据库中的数据。它们有重叠吗?它们可以一起使用吗?
TLDR:使用 Neo4j 或 OrientDB 来存储和networkx处理数据(如果您需要复杂的算法)。这将是最好的解决方案。
我强烈不建议您将 GraphDB 用于您的目的。GraphDB 基于RDF,用于语义网络和公共知识存储。它不应该用于处理像您这样的问题。有许多图形数据库更适合您。我可以推荐Neo4j(最流行的图形数据库,如您所见;免费,但非开源)或OrientDB(最流行的开源图形数据库)。
我在遇到类似问题时使用了图形数据库(但我使用了HP UCMDB,这是企业软件,不是免费的)。它确实比一般的关系数据库好得多。所以图数据库的使用思路很好,自然适合这类问题。
我不确定您是否真的需要networkx分析图形(您可以使用图形查询语言),但是如果您愿意,您可以networkx使用 GraphML 或其他一些方法(OrientDB 类似)将数据从数据库加载到处理它使用networkx.
以及最后的小问答:
据我了解,NetworkX 可能有助于分析图的拓扑结构
绝对正确。
而GraphDB主要用于查询DB中存储的数据。
它是一个数据库。而且,是的,它主要用于查询数据。
它们有重叠吗?
它们都是关于图形的。当然它们重叠:)
它们可以一起使用吗?
是的他们可以。不,它们不应该一起用于解决您的问题。
| 归档时间: |
|
| 查看次数: |
2752 次 |
| 最近记录: |