Что такое AWS Neptune?

Что такое AWS Neptune?

Источник · Перевод автора

База данных графов AWS Neptune предназначена для хранения широкого набора сложных отношений в виде масштабируемого сервиса. Он поддерживает ряд различных и развивающихся стандартов для представления знаний и сложных сетей в виде графиков и недавно добавил хуки для протокола хранилища графов, openCypher, Neptune ML и TinkerPop Gremlin в свой широкий спектр поддерживаемых API.

Работая в облаке AWS, он является важным новым участником постоянно растущей конкуренции в области графических баз данных. Примечательно, что Amazon фокусируется на интеграции процедур искусственного интеллекта из службы искусственного интеллекта SageMaker компании в AWS Neptune. Это предназначено для создания гибридного инструмента, который одновременно хранит и анализирует данные.

Базы данных Graph хранят большие коллекции отношений между объектами, людьми, идеями или любыми другими объектами, которые могут быть представлены в базе данных. В то время как реляционные базы данных хорошо справляются с записью полей данных и подключений типа «один ко многим», графовые базы данных оптимизированы для отслеживания отношений «многие ко многим», таких как социальные сети (кто знает кто) и концептуальные сети (какие идеи связаны с другими).

Вот некоторые из естественных вариантов использования графовых баз данных, таких как Neptune:

  • Обнаружение мошенничества – преступное поведение часто подпадает под предсказуемый образец, а графические базы данных полезны для поиска закономерностей, основанных на связях между событиями. Например, серия плохих событий с использованием одного и того же физического или IP-адреса может привести к тому, что будущие события будут отмечены с теми же адресами для проверки.
  • Механизмы рекомендаций – если график может связывать похожие элементы, простой алгоритм может предложить пользователям помощь в поиске новых друзей или потенциальных покупках, перейдя по этим ссылкам.
  • Графы знаний – один из наиболее сложных вариантов – создать сеть отношений между абстрактными идеями, мыслями и концепциями. Это может служить основой для более сложных алгоритмов поиска, языкового перевода или других форм искусственного интеллекта.
  • Наблюдатели за отмыванием денег – некоторые нормативные акты требуют от финансовых учреждений отслеживать потоки валюты, чтобы помочь предотвратить преступность. Графические базы данных – естественные варианты моделирования транзакций и определения чистых потоков.
  • Отслеживание контактов – эпидемиологи часто работают над контролем над распространением болезней, отслеживая, как и когда люди встречаются и взаимодействуют. Базы данных графов часто имеют алгоритмы для отслеживания потока через несколько переходов.

Neptune поддерживает две основные концептуальные модели обработки данных графа (граф свойств и RDF) и различные языки запросов для каждой из них. Пользователи могут выбрать конкретную модель при создании таблиц базы данных, но после создания их нелегко заменить.

У разработчиков есть несколько вариантов работы с Neptune. Данные могут быть вставлены или запрошены с помощью любого из этих протоколов:

  • Gremlin, для доступа к данным графа свойств, из проекта Apache TinkerPop
  • openCypher, еще один вариант запроса данных графа свойств из баз данных Neo4J
  • SPARQL, для поиска данных RDF, из W3C
  • Bolt, двоичная версия протокола openCypher от Neo4J

AWS Neptune также разработан, как и другие базы данных Amazon, чтобы скрыть большую часть сложности установки программного обеспечения или его эффективного масштабирования. Служба будет реплицировать данные для создания реплик чтения в центрах обработки данных и зонах доступности. Резервное копирование может запускаться автоматически в сегменты S3. Если какой-либо узел выйдет из строя, другие реплики могут принять его автоматически.

Цены на Neptune сильно зависят от использования. Счет включает в себя вычислительную мощность (0,098 доллара США за час виртуальной машины и более), объем хранилища (0,10 доллара США за гигабайт в месяц) и количество запросов (0,20 доллара США за 1 миллион запросов). Резервное копирование может быть дешевле (0,02 доллара США за ГБ в месяц на востоке США). Существует бесплатный объем передачи данных, но после первого терабайта он будет начинаться с 0,09 доллара США за ГБ и уменьшаться с увеличением объема.

Интеграция с Amazon SageMaker дает возможность инструменту машинного обучения классифицировать узлы и ребра графа в соответствии с их атрибутами и атрибутами узлов или ребер, связанных с ними. Он также может определять наиболее вероятные соединения на основе набора данных, что позволяет предлагать прогнозные пути.

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

Как конкурируют устоявшиеся фирмы?

Старые базы данных добавляют возможности графов к своим существующим базам данных в качестве еще одного типа таблиц. Решение Oracle также может моделировать граф свойств или данные RDF в рамках своей основной базы данных. Эти игроки добавили возможности поиска по графам в свой язык запросов и создали набор инструментов, таких как Graph Studio, которые упрощают расширение существующих наборов данных для использования возможностей графов.

Microsoft добавила возможности моделирования графов свойств в службу Azure Cosmos DB. С помощью Gremlin можно создавать запросы для поиска узлов, которые автоматически реплицируются. Компания также добавила в SQL Server объекты узлов и графов, что позволяет хранить информацию о графах вместе с другими реляционными данными.

IBM добавила платформу аналитики Apache TinkerPop в Db2, чтобы запросы, написанные на Gremlin, могли работать вместе с более стандартными запросами SQL.

Как соревнуются выскочки?

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

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

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

TigerGraph также предназначен для работы с большими наборами данных и может использоваться либо на локальном оборудовании, либо через подписку на сервис в TigerGraph Cloud. Он предназначен для обработки больших наборов данных с использованием некоторых из Apache Hadoop или Spark. Запросы написаны на GSQL.

Dgraph – это база данных распределенного графа, доступная либо с лицензией Apache, либо с набором проприетарных уровней корпоративного уровня для создания более крупных кластеров с несколькими машинами. Основной язык запросов – GraphQL, созданный Facebook.

JanusGraph – это проект Linux Foundation, поддерживаемый рядом компаний, в том числе Target. База данных предназначена для работы с некоторыми крупными базами данных NoSQL, такими как Apache HBase, Google Bigtable и Oracle BerkleyDB. Анализ данных может выполняться с помощью некоторых распределенных фреймворков MapReduce или Apache Spark.

Что-то не может сделать AWS Neptune?

Поддержка Property Graph и RDF дает Neptune широкую привлекательность для многих проектов, в том числе тех, которые будут использовать обе архитектуры. Но поддержка не является полной, и Neptune не предлагает всех функций в различных стандартах. Например, запросы вывода для данных RDF пока недоступны, как сообщается, потому, что они снижают производительность.

AWS Neptune, доступный исключительно как облачный сервис, также отличается от предложений AWS, таких как Aurora, тем, что основное программное обеспечение недоступно в виде дистрибутива с открытым исходным кодом, а разработчики не могут запускать локальные версии или отказываться от оборудования AWS.