Графовые базы данных

Светлана Комарова

Светлана Комарова

Автор статьи. Системный администратор, Oracle DBA. Информационные технологии, интернет, телеком. Подробнее.

Графовые базы данных - обзор, плюсыСистема управления графовыми базами данных (далее графовые базы данных) поддерживает методы создания (Create), чтения (Read), изменения (Update) и удаления (Delete) (CRUD), основан­ные на графовой модели данных. Графовые базы данных, как прави­ло, поддерживают систему транзакций реального времени (OLTP). Соответственно, они оптимизированы для выполнения транзакций и спроектированы с учетом транзакционной целостности и опера­тивности.

Имеются две особенности графовых баз данных, которые необхо­димо учитывать при рассмотрении применяемой ими технологии:


Оглавление статьи[Показать]


Важно отметить, что принципы специализированного хране­ния графов и специализированной обработки графов не хороши и не плохи - они просто являются классическими инженерными компромиссами. Преимущество специализированного хранения графов - в том, что оно предусматривает стек, специально раз­работанный для повышения производительности и масштабируе­мости. Преимуществом неспециализированного хранения графов является использование зрелых неграфовых интерфейсов (на­пример, MySQL), особенности которых хорошо знакомы разработ­чикам. Специализированная обработка графов (смежность без индексов) демонстрирует лучшую производительность обхода, но некоторые запросы приводят к использованию больших объемов памяти.

Взаимосвязи в графовой модели данных являются гражданами первого сорта. Здесь к ним относятся не так, как в других системах управления базами данных, где для отображения взаимосвязей при­меняются такие механизмы, как внешние ключи или внешние опера­ции, например MapReduce. Собирая абстракции узлов и взаимосвя­зей в связанные структуры, графовая база данных позволяет строить модели любой сложности, лучше всего отражающие предметную об­ласть. Полученные модели проще и в то же время нагляднее, чем те, что создаются с помощью традиционных реляционных баз данных или других NOSQL-хранилищ.

На рис. 1 приведен графический обзор некоторых графовых баз данных из представленных сегодня на рынке, основанных на разных моделях хранения и обработки.

Обзор графовых баз данных

Рис. 1. Обзор графовых баз данных

 

Механизмы вычисления графов

Механизмы вычисления графов позволяют выполнять глобальные графовые вычислительные алгоритмы для больших наборов дан­ных. Они предназначены для решения таких задач, как идентифи­кация кластеров данных или получение ответов на такие вопросы, как: «Сколько всего взаимосвязей, сколько их в среднем, полна ли социальная сеть?»

Из-за своей направленности на глобальные запросы механизмы вычисления графов, как правило, оптимизированы для сканирования и пакетной обработки больших объемов информации, и в этом отно­шении они похожи на другие технологии пакетного анализа, такие как интеллектуальный анализ данных (data mining) или аналитиче­ская обработка в реальном времени (OLAP), используемые в реля­ционном мире. Некоторые механизмы вычисления включают в себя и средства хранения графов, а другие (большинство) заботятся толь­ко об обработке данных, получаемых из внешнего источника, а затем возвращают результаты для сохранения в другом месте.

Рисунок 2 иллюстрирует типовую архитектуру развертывания механизмов вычисления графов. Она включает в себя систему записи (System of Record, SOR) базы данных со свойствами OLTP (напри­мер, MySQL, Oracle или Neo4j), которая обслуживает запросы и от­вечает на запросы, поступающие от приложений (и в конечном счете от пользователей). Периодически задания на извлечение, преобразо­вание и загрузку данных (Extract, Transform, Load, ETL) перемещают данные из системы записи базы данных в механизм вычисления гра­фов для выполнения автономных запросов и анализа.

Укрупненная схема типичной среды движков расчетов графов

Рис. 2. Укрупненная схема типичной среды движков расчетов графов

Существуют разные типы механизмов вычисления графов. Наи­более известными из них являются одномашинные (in-memory/single machin), такие как Cassovary, и распределенные, такие как Pegasus и Giraph. В основе большинства распре­деленных механизмов вычисления графов лежит идея, изложенная в статье «Pregel: a system for large-scale graph processing», опублико­ванной на сайте Google, ко­торая описывает движок Google для классификации страниц.

 

Преимущества графовых баз данных

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

 

Производительность

Одной из веских причин выбора графовой базы данных является большой прирост производительности при работе со взаимосвя­занными данными, по сравнению с реляционными базами данных и NOSQL-хранилищами. В отличие от реляционных баз данных, где учет взаимосвязей интенсивно ухудшает производительность запро­сов на больших наборах данных, производительность графовых баз данных остается неизменной с увеличением объема хранимых дан­ных. Это связано с тем, что запросы локализуются в определенной части графа. В результате время выполнения каждого запроса зави­сит от размера части графа, которую требуется обойти для удовле­творения запроса, а не от общего размера графа.

 

Гибкость

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

Присущая графам возможность расширения означает, что мож­но добавлять новые виды взаимосвязей, новые узлы, новые метки и новые подграфы в существующую структуру, не нарушив при этом существующих запросов и функционала приложения. Это положи­тельно влияет на производительность разработки и снижает риски для проекта. Благодаря гибкости графовой модели не требуется предварительно моделировать задачу в мельчайших подробностях, что очень неудобно из-за быстро меняющихся бизнес-требований. Способность графов к расширению также позволяет уменьшить количество миграций, что снижает нагрузку при обслуживании данных и уменьшает риск потери данных.

 

Оперативность

Модель данных должна не отставать от прочих составных частей при­ложения и использовать технологии, соответствующие современным итерационным методам развертывания программного обеспечения. Современные графовые базы данных оснащены всем необходимым для разработки и системного обслуживания. В частности, встроенная графовая модель данных, лишенная схем, в сочетании со встроенным программным интерфейсом (API) и языком запросов позволяет эф­фективно вести разработку приложений.

В то же время благодаря отсутствию схемы графовые базы данных не предполагают наличия ориентированных на схемы механизмов контроля данных, которые широко применяются в реляционном мире. Но в этом нет ничего страшного, здесь они заменены гораздо более удобными и действенными видами контроля. Как мы увидим в главе 4, контроль выполняется в программной форме, с помощью тестов для моделей данных и запросов, а также с помощью определения бизнес­правил, основанных на графе. Сейчас такая методика уже не вызывает сомнений: разработка с помощью графовых баз данных полностью соответствует современным методикам гибкой и надежной разработ­ки программного обеспечения, что позволяет разработке приложений с использованием графовых баз данных не отставать от бизнес-среды.

 

Итоги

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

В следующем моем блоге мы сравним несколько различных технологий обработки взаимосвязанных данных, начнем с реляционных баз дан­ных, затем перейдем к агрегированным NOSQL-хранилищам и за­кончим графовыми базами данных. Обсудив их, мы узнаем, почему графы и графовые базы данных являются лучшим средством для мо­делирования, хранения и выборки взаимосвязанных данных. Затем, в последующих главах, будут описаны проектирование и реализация решений, основывающихся на графовых базах данных.

Вас заинтересует / Intresting for you:

Что такое базы данных? Назначе...
Что такое базы данных? Назначе... 12809 просмотров Ирина Светлова Mon, 28 Oct 2019, 05:41:34
Модели данных и языки запросов
Модели данных и языки запросов 1350 просмотров Дэн Wed, 06 Mar 2019, 16:11:35
Модели данных и концептуальное...
Модели данных и концептуальное... 2997 просмотров Ирина Светлова Thu, 11 Feb 2021, 14:18:45
Первичные и прочие ключи в баз...
Первичные и прочие ключи в баз... 23020 просмотров MashaSvetlova Sun, 09 Sep 2018, 11:32:06
Печать
Войдите чтобы комментировать

Oracle_Admin аватар
Oracle_Admin ответил в теме #9859 3 года 1 мес. назад
Спасибо за статью. Понятно, что такое Графовая база данных и где ее применять!
ru7701 аватар
ru7701 ответил в теме #9324 5 года 3 мес. назад
Уважуха!! Аналитики про графовые БД мизер, а тут целый блог! Ждем, ждем продолжения.