В чем разница между графической базой данных Titan и Neo4j?

Я работал над реляционной базой данных; но теперь хочу узнать о базе данных графов. Я узнал, что эти два - база данных графов. В чем разница между этими двумя базами данных. Что мы должны предпочесть среди них?


person Akshay Gaikwad    schedule 27.07.2017    source источник
comment
db-engines.com/en/system/Neo4j%3BTitan   -  person Ashraful Islam    schedule 27.07.2017


Ответы (4)


Titan изначально поддерживался Aurelius, который был куплен DataStax в 2015 году. Этот шаг был разработан, чтобы дать DataStax толчок в мире Graph DB, поскольку теперь они предлагают собственное предприятие «DSE Graph». продукт. С тех пор Титан был разделен (как упоминалось ранее) на JanusGraph.

Преимущество Titan / Janus (IMO) в том, что он "подключаемый" к другим существующим серверным и поисковым технологиям. Таким образом, он будет «хорошо работать» с такими вещами, как Cassandra, HBase, Hadoop, Solr и ElasticSearch.

Недостатком является жесткая поддержка сообщества. Проект Titan был фактически убит, а Янус получил колоссальные 0,23 балла на DBEngines. Это делает его 16-м по популярности Graph DB (231-е место в целом), что довольно мало.

Neo4j поддерживается Neo Technology и считается лидером в сообществе Graph DB (сейчас 38,52 балла, 1-й график DB и 21-е место в целом). Это открытый исходный код, но он контролируется Neo Technologies, поэтому они могут определять разницу в наборе функций между открытым исходным кодом и предприятие.

Хорошая особенность Neo4j заключается в том, что у них есть множество руководств и учебных пособий, встроенных прямо в браузер Neo4j, который представляет собой приятный, удобный веб-интерфейс. Их документация первоклассная, ее легко читать и искать, и у них есть довольно хорошие подписчики здесь, в Stack Overflow.

Скриншот браузера Neo4j:

введите описание изображения здесь

Недостатком Neo4j является то, что некоторые функции (например, кластеризация) доступны только в корпоративной версии. Но если вы работаете в большой компании, которая не против выложить деньги за корпоративную лицензию, это может не иметь большого значения.

Согласованность: Титан / Янус является частью толпы «возможной согласованности», в то время как Neo4j стремится быть устойчивым (особенно в сценарии причинной кластеризации). Хотя согласованность можно настроить с помощью конфигурации в обоих, с помощью Titan / Janus, что может зависеть от вашего выбора подключаемого бэкэнда (например: обычно строго согласовано с HBase, но в конечном итоге согласовано с Cassandra).

Рекомендация:

Если вы только начинаете изучать графические базы данных и моделирование, вы не ошибетесь с Neo4j. Просто загрузите / установите версию сообщества, запустите ее и выполните :play movies в качестве первой команды (учебник, который проведет вас через загрузку, моделирование и запрос взаимосвязей фильмов).

Если у вас есть некоторый опыт работы с графиками, и вы не против устранения неполадок / поиска в Google, чтобы разобраться в вещах (например, как установить максимальный размер кадра для Thrift), то вы, вероятно, могли бы сделать некоторые действительно интересные вещи с Titan.

Попробуйте каждый из них и посмотрите, какой из них вам подходит.

person Aaron    schedule 27.07.2017

Один из подходов - просто попытаться выбрать одну базу данных над другой. Например, вы можете быстро поискать и обнаружить, что Titan был разделен на JanusGraph, где он более активно поддерживается. В своем исследовании вы можете обнаружить, что существуют и другие графические базы данных с открытым исходным кодом, такие как OrientDb, ChronoGraph или Sqlg, а также коммерческие альтернативы, такие как Microsoft CosmosDb, DSE Graph или IBM Graph. Как ты решаешь сейчас?

Существует структура графа, которая связывает воедино все эти графы, включая Neo4j / Titan (и другие, перечисленные здесь): Apache TinkerPop < / а>. TinkerPop обеспечивает абстракцию над различными базами данных графов и графовыми процессорами, позволяя использовать один и тот же код с разными настраиваемыми серверными модулями. Этот шаблон очень похож на тот, который вы найдете в SQL с JDBC, что помогает сделать ваш код независимым от поставщика кода.

Вы можете попробовать все различные поддерживаемые базы данных графов, прежде чем сделать выбор, и вы можете довольно быстро выполнить этот тип прототипирования / тестирования производительности с помощью Консоль Gremlin. Вы сможете сделать самостоятельный выбор относительно того, как лучше всего поступить для вашего проекта.

Когда я подхожу к концу этого поста, мне приходит в голову, что я не ответил прямо на ваш вопрос. Если вы только начинаете и просто хотите узнать о графических базах данных, я бы, вероятно, не рекомендовал начинать с Titan / JanusGraph, поскольку для начала требуется небольшая конфигурация (схемы, выбор серверной части и т. Д.). Начните с TinkerGraph или Neo4j, используя Консоль Gremlin, чтобы попробовать несколько простых обход графа и переходить оттуда.

person stephen mallette    schedule 27.07.2017
comment
Tinkerpop не похож на протокол JDBC, но больше похож на ORM (например, Hibernate), который говорит / реализует Gremlin с большинством графовых баз данных (и каждая база данных Graph не ориентирована на Gremlin). - person logisima; 28.07.2017
comment
Аналогия с JDBC вполне приемлема, чтобы помочь передать идею о том, что TinkerPop помогает продвигать независимый от поставщика способ разработки графических приложений. Я не имел в виду, что TinkerPop был стандартом, и, просто упомянув JDBC как аналогию, я не уверен, как вы пришли к такому выводу. Вам нужно будет объяснить свои рассуждения о том, что TinkerPop похож на ORM .... Я не вижу связи. - person stephen mallette; 05.08.2017

Графовых баз данных гораздо больше, чем две - их десятки. При этом есть два с реальной долей рынка: Neo4j и Titan / JanusGraph. Но есть десятки других наборов данных графов, каждый из которых обладает интересными сильными сторонами для различных конкретных областей применения. При этом я бы не стал вникать во всех нишевых игроков для начала - изучение базовой идеи графовых баз данных может быть выполнено с одним из двух ведущих игроков.

Neo4j является наиболее зрелым, с наиболее хорошо упакованной установкой и документацией, тоннами справочного кода и поддержкой широкого круга партнеров.

Следующим по популярности является Titan / JanusGraph, поскольку он бесплатный / открытый и имеет очень сильную поддержку (например, IBM, Google, Hortonworks, AWS, ...). В последнее время возникла сложность в том, что лидеры проекта Титан были приобретены, заморозив проект Титан. Но сообщество разветвило проект на JanusGraph. Итак, хотя JanusGraph - новый проект, это буквально тот же код Titan, с даже более широкой отраслевой поддержкой, чем у Titan.

С ними связан язык, используемый для работы с графиками. Neo4j использует собственный язык Cypher, в то время как почти все остальные используют Gremlin и набор инструментов с открытым исходным кодом TinkerPop (который является частью набора проектов с открытым исходным кодом Apache). Почти все графические базы данных, включая Neo4j, поддерживают Gremlin и TinkerPop. Так, например, вы можете использовать Cypher или Gremlin для запроса Neo4j, хотя Neo (и некоторые другие поставщики проприетарных графовых баз данных) поддерживают Gremlin как гражданина второго сорта, так сказать. Например, вы можете подключиться к Neo с помощью Gremlin из (внешней) консоли Gremlin, но вы не можете использовать Gremlin в (очень красивой) консоли Neo4j.

Обратите внимание, что существует множество баз данных графов, которые поддерживают Gremlin, кроме Titan / JanusGraph. Одним из очень интересных новичков является Microsoft Azure Cosmos DB, база данных с управляемым графом, которая «дешево и просто», если вы уже используете Azure. И есть несколько поставщиков, которые предоставляют управляемый JanusGraph.

Для личного обучения я бы сказал, что Neo4j проще всего настроить и изучить - вы загружаете и запускаете его, а также открываете веб-браузер на своей веб-консоли, что занимает всего несколько минут. При этом, если вам удобно работать с командной строкой, JanusGraph потребовалось всего полчаса для установки и запуска для меня, так что это не слишком сложно.

Для изучения концепций отлично подходит Neo4j. Язык запросов Neo4j, Cypher, и язык запросов JanusGraph, Gremlin, семантически идентичны, просто пишутся по-разному, так что вы узнаете концепции в любом случае.

Для построения реальной системы любой из них может работать (и многие успешно используют оба подхода).

Что касается того, что вы выберете, вам нужно будет подумать о том, хотите ли вы быть стратегически привязанными к одному поставщику (Neo4j) или к более широкому сообществу, основанному на стандартах. Есть уровень комфорта в выборе лидера рынка с наиболее зрелым продуктом - Neo4j. И есть уровень комфорта при выборе открытых стандартов с сильной отраслевой поддержкой - JanusGraph. Так что, IMO, нет "неправильного" ответа - люди, использующие любой из них, счастливы и успешны. Но поскольку вам нужно выбирать, вам нужно подумать о том, что вам удобнее в долгосрочной перспективе.

person Laird Popkin    schedule 18.08.2017

Neo4j использует собственную графическую технологию.

  • Технология нативных графов обеспечивает эффективное хранение данных за счет записи узлов и связей, близких друг к другу.
  • Оптимизирует граф БД.
  • Благодаря встроенной технологии графов обработка становится быстрее, так как в ней используется безиндексная корректировка. Это означает, что каждый узел напрямую ссылается на свои смежные узлы.

Titan (теперь JanusGraph) использует неродную технологию графов.

  • В неродных мы используем разные серверы хранения, такие как Cassandra, HBase.
  • С неродной обработкой становится медленнее по сравнению с нативной, потому что база данных использует много типов индексов для связывания узлов вместе.
person Shrikant Awachar    schedule 27.05.2020