Вопрос или проблема
Мы изучаем язык Gremlin для наших требований по обходу графов.
Какую графовую базу данных я могу установить, которую можно будет обходить с помощью Gremlin?
Я должен разработать графовый слой с использованием Gremlin и сохранить его независимым от используемой графовой базы данных.
Когда я углубился в документацию TinkerPop, я обнаружил, что они поддерживают множество систем графовых баз данных. Поэтому я считаю, что Gremlin действительно поддержит Neo4J, если мы решим перейти на Neo4J или другую графовую базу данных.
Ответ или решение
Чтобы обеспечить совместимость с языком Gremlin для вашей задачи графового обхода, важно выбрать соответствующую базу данных, которая поддерживает Apache TinkerPop, аркитектуру графов, на которой основан Gremlin. Apache TinkerPop предоставляет единый интерфейс для различных графовых баз данных, что позволяет реализовать вашу задачу, оставаясь независимыми от выбранного движка графовой базы данных. Это соответствует вашему требованию сохранить агностичность относительно подлежащей графовой БД.
Вот некоторые из ключевых графовых баз данных, которые поддерживают Gremlin и могут рассматриваться для установки:
-
JanusGraph: Эта распределённая и настраиваемая графовая база данных специально разработана для обработки обширных данных. Она отлично подходит для сложных аналитических задач и легко масштабируется.
-
Apache TinkerGraph: Это встроенный граф, который служит эталоном для других Gremlin-совместимых графовых баз данных. Он идеально подходит для разработки и тестов, а также для простых сценариев использования.
-
OrientDB: Данная мульти-модельная база данных поддерживает как документальный, так и графовый доступ к данным, что делает её гибким инструментом, а также предоставляет полную интеграцию с Gremlin.
-
InfiniteGraph: Эта платформа хорошо подходит для анализа связей и социальной аналитической обработки данных, поддерживая сложные графовые вычисления.
-
Neo4j (через Gremlin Server или с использованием плагинов): Несмотря на то, что Neo4j имеет собственный язык запросов Cypher, существует возможность использовать Gremlin, если интеграция будет осуществляться через Gremlin Server.
-
Amazon Neptune: Этот управляемый сервис от Amazon Web Services предлагает полную поддержку Gremlin, что делает его отличным выбором для развертывания в облачной среде.
-
Azure Cosmos DB: Также предоставляет региональную поддержку и полную совместимость с Gremlin, подходящую для облачных приложений.
Учитывая вышеописанное и требования вашей архитектурной схемы, любую из упомянутых графовых баз данных можно интегрировать с Gremlin, оставаясь при этом гибким в выборе основного движка. Это даёт возможность в будущем переключиться с одной БД на другую, минимально вмешиваясь в кодовую базу, что является заметным преимуществом.
Если вам требуется больше информации о конкретной базе данных или помощи в её интеграции, рекомендую изучить официальную документацию на сайте TinkerPop и выбрать решение, которое наилучшим образом соответствует вашим потребностям в производительности и масштабируемости.