Какие решения для графовых баз данных, совместимые с .NET, хорошо зарекомендовали себя?

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

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

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

Что я посмотрел:

  • Trinity - это сделано Microsoft, и в литературе это звучит великолепно, но я не удалось найти ссылку для загрузки, а на странице выпуска указано: «Пакет Trinity в настоящее время предназначен только для доступа в интрасеть».

  • db4o - это объектно-ориентированная БД с встроенной поддержкой как .NET, так и Java. Кажется, что он продается как графическая БД, но я не уверен, являются ли структура / операции «граф» неявными или явными (или если она предлагает больше, чем любой другой документ 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 и выполнения этой беготни самостоятельно, но, опять же, я бы предпочел проверенное решение, которое экономит мне больше всего времени.


person smartcaveman    schedule 02.07.2012    source источник


Ответы (6)


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

/Питер

person Peter Neubauer    schedule 03.07.2012

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

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

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

Сервер Neo4j (http://neo4j.org) в паре с .NET-клиентом Romiko и Татама (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 Server очень похож на Rexster от TinkerPop.

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

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

ОБНОВЛЕНИЕ: есть также Blueprints.NET - https://github.com/Vanaheimr/Blueprints.NET

person espeed    schedule 07.07.2012
comment
У вас есть ссылки на какие-либо проекты, которые успешно использовали этот стек? - person smartcaveman; 12.07.2012

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

person bbqchickenrobot    schedule 20.08.2014

Trinity теперь доступна для всех - http://www.graphengine.io/

person ubaid    schedule 18.05.2015

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

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

person Neil    schedule 15.06.2017

Другой вариант - DEX от Sparsity Technologies, который предоставляет собственный .NET API:

http://www.sparsity-technologies.com/dex

что вы можете скачать с:

http://www.sparsity-technologies.com/dex_downloads

person Pere    schedule 07.02.2013