Шаблоны архитектуры данных NoSQL

Опубликовано: 16 Августа, 2021

Шаблон архитектуры - это логический способ категоризации данных, которые будут храниться в базе данных. NoSQL - это тип базы данных, который помогает выполнять операции с большими данными и хранить их в допустимом формате. Он широко используется благодаря своей гибкости и широкому спектру услуг.

Паттерны архитектуры NoSQL:
Данные хранятся в NoSQL в любом из следующих четырех шаблонов архитектуры данных.

 1. База данных хранилища ключей и значений
2. База данных Column Store
3. База данных документов
4. База данных графов

Это объясняется следующим образом.

1. База данных хранилища ключей и значений:
Эта модель является одной из самых базовых моделей баз данных NoSQL. Как следует из названия, данные хранятся в виде пар ключ-значение. Ключ обычно представляет собой последовательность строк, целых чисел или символов, но также может быть более сложным типом данных. Значение обычно связано с ключом или вместе с ним. Базы данных хранения пар ключ-значение обычно хранят данные в виде хэш-таблицы, где каждый ключ уникален. Значение может быть любого типа (JSON, BLOB (большой двоичный объект), строки и т. Д.). Этот тип шаблона обычно используется на веб-сайтах покупок или в приложениях электронной коммерции.

Преимущества:

  • Может обрабатывать большие объемы данных и большую нагрузку,
  • Легкий поиск данных по ключам.

Ограничения:

  • В сложных запросах может быть предпринята попытка задействовать несколько пар ключ-значение, что может снизить производительность.
  • Данные могут включать отношения "многие ко многим", которые могут противоречить друг другу.

Примеры:

  • DynamoDB
  • Berkeley DB

2. База данных хранилища столбцов:
Вместо того, чтобы хранить данные в реляционных кортежах, данные хранятся в отдельных ячейках, которые затем группируются в столбцы. Основанные на столбцах базы данных работают только со столбцами. Они вместе хранят большие объемы данных в столбцах. Формат и названия столбцов могут отличаться от одной строки к другой. Каждый столбец обрабатывается отдельно, но все же каждый отдельный столбец может содержать несколько других столбцов, как в традиционных базах данных.
По сути, столбцы - это способ хранения в этом типе.

Преимущества:

  • Данные легко доступны
  • Такие запросы, как SUM, AVERAGE, COUNT, можно легко выполнять по столбцам.

Примеры:

  • HBase
  • Bigtable от Google
  • Кассандра

3. База данных документов:
База данных документов выбирает и накапливает данные в виде пар ключ-значение, но здесь значения называются документами. Документ можно описать как сложную структуру данных. Документ здесь может быть в виде текста, массивов, строк, JSON, XML или любого другого такого формата. Также очень распространено использование вложенных документов. Это очень эффективно, поскольку большая часть создаваемых данных обычно находится в форме JSON и не структурирована.

Преимущества:

  • Этот тип формата очень полезен и подходит для полуструктурированных данных.
  • Поиск в хранилище и управление документами очень просты.

Ограничения:

  • Работа с несколькими документами - сложная задача
  • Операции агрегирования могут работать некорректно.

Примеры:

  • MongoDB
  • CouchDB

Рисунок - Модель хранилища документов в форме документов JSON

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

Преимущества:

  • Самый быстрый обход из-за подключений.
  • Пространственные данные легко обрабатываются.

Ограничения:
Неправильные соединения могут привести к бесконечным петлям.

Примеры:

  • Neo4J
  • FlockDB (используется Twitter)

Рисунок - Формат графической модели баз данных NoSQL