Шаблоны архитектуры данных NoSQL
Шаблон архитектуры - это логический способ категоризации данных, которые будут храниться в базе данных. 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
4. Графические базы данных:
Очевидно, что этот шаблон архитектуры имеет дело с хранением данных в графах и управлением ими. Графы - это в основном структуры, которые изображают связи между двумя или более объектами в некоторых данных. Объекты или сущности называются узлами и соединяются вместе отношениями, называемыми ребрами. Каждое ребро имеет уникальный идентификатор. Каждый узел служит точкой соприкосновения для графа. Этот шаблон очень часто используется в социальных сетях, где существует большое количество объектов, и каждый объект имеет одну или несколько характеристик, связанных ребрами. В шаблоне реляционной базы данных есть таблицы, которые слабо связаны, тогда как графы часто бывают очень сильными и жесткими по своей природе.
Преимущества:
- Самый быстрый обход из-за подключений.
- Пространственные данные легко обрабатываются.
Ограничения:
Неправильные соединения могут привести к бесконечным петлям.
Примеры:
- Neo4J
- FlockDB (используется Twitter)