TLDR: Используйте Neo4j или OrientDB для хранения данных и networkx
для их обработки (если вам нужны сложные алгоритмы).Это будет лучшим решением.
Я настоятельно не рекомендую использовать GraphDB для ваших целей.GraphDB основан на RDF , который используется для семантической сети и общего хранения знаний.Он не должен использоваться с такими проблемами, как ваша.Есть много графических баз данных, которые подойдут вам намного лучше.Я могу порекомендовать Neo4j (самая популярная графическая база данных, как вы можете видеть; бесплатная, но не с открытым исходным кодом) или OrientDB (самая популярная графическая база данных с открытым исходным кодом).
Я использовал базу данных графиков, когда у меня возникла похожая проблема (но я использовал HP UCMDB , то есть корпоративное программное обеспечение, которое не является бесплатным).Это было НАМНОГО лучше, чем средние реляционные БД.Таким образом, идея использования базы данных графа хороша, и она естественно подходит для такого рода проблем.
Я не уверен, что вам действительно нужно networkx
для анализа графа (вы можете использовать языки запросов графа к нему),но если вы хотите, вы можете загрузить данные из вашей БД в networkx
с помощью GraphML или некоторыми другими методами (OrientDB аналогичен), чтобы обработать их, используя networkx
.
.Небольшой вопрос-ответ в конце:
Насколько я понимаю, NetworkX может сыграть важную роль в анализе топологии графа
Абсолютно верно.
, тогда как GraphDB в основном используется для запроса данных, хранящихся в БД.
Это - база данных.И, да, он в основном используется для запроса данных.
В любом случае они перекрываются?
Они оба о графиках.Конечно, они перекрываются:)
Могут ли они использоваться вместе?
Да, могут.Нет, они не должны использоваться вместе для вашей проблемы.