gpt4 book ai didi

graph - NetworkX vs GraphDB : do they serve similar purposes? 何时使用其中一种,何时一起使用?

转载 作者:行者123 更新时间:2023-12-03 20:28:40 26 4
gpt4 key购买 nike

我正在尝试了解是否应该为我的项目使用 GraphDB。我正在映射一个计算机网络,我使用 NetworkX。这些关系是物理或逻辑邻接(L2 和 L3)。在当前版本中,我的程序扫描网络并将邻接信息转储到 Postgress RDB 中。从那里我使用 Python 使用 NetworkX 构建我的图表。

我正在尝试了解是否应该改变我的方法,以及将信息存储在 GaphDB 中是否有任何好处。 Postgress 有 AgnsGraph,它似乎是建立在 Postgress 之上的,作为 GraphDB 覆盖或插件。我还不知道把它安装在上面是否会让我的生活更轻松。我几乎没有从 SQLite 迁移到 Postgress :-) 和 SQLAlchemy,所以现在不到 3 个月,我正在尽可能地重新考虑事情(迁移尚未完成)

我可以选择使用混合,但我不确定使用 GraphDB 是否有意义。据我了解,这些具有不需要架构的优点(这对像我这样的数据库新手很有帮助)

我也想知道 NetworkX (Python librayr) 和 GraphDB 是否有任何重叠。据我了解,NetworkX 可能有助于分析图的拓扑,而 GraphDB 主要用于查询存储在数据库中的数据。它们是否重叠?可以一起用吗?

最佳答案

TLDR: 使用 Neo4j 或 OrientDB 存储数据并使用 networkx 进行处理(如果您需要复杂的算法)。这将是最好的解决方案。


我强烈不建议您将 GraphDB 用于您的目的。 GraphDB 基于 RDF用于语义网和公共(public)知识存储。它不应该用于像您这样的问题。有许多图形数据库更适合您。我可以推荐Neo4j (如您所见,最流行的图形数据库;免费,但非开源)或 OrientDB (最流行的开源图形数据库)。

当我遇到类似问题时,我使用了图形数据库(但我使用了 HP UCMDB,这是公司软件,不是免费的)。它确实比一般的关系数据库好得多。所以图数据库的使用思路很好,很自然的适合这类问题。

我不确定您是否真的需要 networkx 来分析图表(您可以使用图表查询语言),但如果您愿意,您可以将数据从数据库加载到 networkx 与 GraphML 或 some another methods (OrientDB 类似)使用 networkx 来处理它。

最后还有小问答:

As far as I understand these things NetworkX could be instrumental in analyzing the topology of the graph

完全正确。

while GraphDB is mainly used to query the data stored in the DB.

一个数据库。而且,是的,它主要用于查询数据。

Do they overlap in anyway?

它们都是关于图表的。当然它们重叠:)

Can they be used together?

是的,他们可以。不,它们不应该一起用于解决您的问题。

关于graph - NetworkX vs GraphDB : do they serve similar purposes? 何时使用其中一种,何时一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55324415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com