Подтвердить что ты не робот

Какие .NET-совместимые решения для графических баз данных имеют проверенную репутацию?

Я ищу решение общей базы данных графов, имеющее существующую .NET-совместимую инфраструктуру и проверенную репутацию.

Я нашел ссылки на несколько вариантов в Google и SO, но не так много информации о существующих реализациях и обычаях в реальных приложениях.

Я также рассмотрел использование гибрида между DB документа (например RavenDB или MongoDB), а также выделенный трехмерный магазин или RDBMS (например, SQL) и увеличение хранилища данных для поддержки требуемой функциональности. Однако это, вероятно, довольно много работы, и я надеюсь, что кто-то еще это сделал уже.

На что я смотрел:

  • Trinity - Это сделано Microsoft, и литература делает это здорово, но я не мог найти ссылку для загрузки, и На странице Release говорится: "Пакет Trinity теперь доступен только для доступа к интрасети".

  • db4o - это объектно-ориентированная БД с собственной поддержкой как .NET, так и Java. Кажется, он продается в виде графического DB, но я не уверен, что структура/операции "graph" неявные или явные (или если он предлагает больше, чем любой другой документ db).

  • TinkerPop - Этот проект похож на то, что я ищу, но источники github, похоже, только на Java. В этом слайдшоу из graph-database.org обсуждаются версии .NET, но я не смог их найти.

  • CloudGraph - Звучит здорово, но, похоже, не существует.

  • GiraffeDB - "GiraffeDB - мощная система баз данных графов для .NET framework 4.0, способная эффективно и доступно представлять сложную семантику" в настоящее время проходит планирование".

  • AllegroGraph 4.7 - Это выглядит довольно зрелым (поддерживающим SPARQL и Prolog с несколькими клиентскими интерфейсами), но закрытым исходным кодом. Я, очевидно, буду скептически относиться к проекту с закрытым исходным кодом, о котором я ничего не слышал.

Есть также несколько проектов Java, которые выглядят довольно многообещающими (HyperGraphDB и Neo4j, но я тоже не видел никакой интеграции .NET. Я не совсем против того, чтобы использовать Java-решение и сам заниматься этой работой, но я бы предпочел, чтобы проверенное решение сэкономило мне больше всего времени.

4b9b3361

Ответ 1

существует несколько поддерживающих .NET клиентских библиотек для www.neo4j.org, см. http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html, которые позволяют вам получить доступ к нему изнутри., Вы можете задать дополнительные вопросы по groups.google.com/group/neo4j/

/питер

Ответ 2

Попытка реализовать базу данных графа в Монго - это кроличья дыра, которая была опробована раньше.

См. это сообщение от группы пользователей TinkerPop:

Граф Microsoft Trinity - это внутренний проект, недоступный для загрузки:

Сервер Neo4j (http://neo4j.org) в паре с клиентом Romiko и Tatham.NET(http://hg.readify.net/neo4jclient/wiki/Home) - популярная комбинация.

Neo4j масштабируется до более чем 32 миллиардов узлов (http://blog.neo4j.org/2011/03/neo4j-13-abisko-lampa-m04-size-really.html), и у него есть активная группа пользователей (https://groups.google.com/forum/?fromgroups#!forum/neo4j).

И сервер Neo4j очень похож на TinkerPop Rexster.

На самом деле Питер Нойбауэр является одним из соучредителей как Neo4j, так и TinkerPop, и оба проекта имеют очень похожие API. Поэтому, если TinkerPop именно то, что вы хотите, за исключением Java, затем зайдите с Neo4j Server и одним из своих клиентов .NET:

Вы даже можете запустить TinkerPop Gremlin на сервере Neo4j через встроенный плагин Gremlin:

UPDATE: есть также Blueprints.NET - https://github.com/Vanaheimr/Blueprints.NET

Ответ 3

Новое/недавнее/неявное обнаружение: VelocityDB, который является родной .net-реализацией!

Ответ 5

2017 обновление: База данных Cosmos теперь обеспечивает хорошее решение для базы данных гибридных графов в Azure. База данных Cosmos DB называлась Document DB до конференции Build в апреле 2017 года, когда Microsoft объявила о графике и других возможностях. Таким образом, вы можете использовать его в качестве классической базы данных документов, и теперь вы можете хранить свои данные в виде графика и запрашивать его с помощью TinkerPop/Gremlin. Из .NET вы можете запросить его с помощью API Microsoft.Azure.Graphs.

Если вам нужно запустить за пределами Azure, вам нужно посмотреть другие параметры, такие как Neo4j.