Как правильно выбрать базу данных NoSQL

Выбираем NOSQL базу данныхБазы данных NoSQL обеспечивают высокую скорость работы и большую гибкость для разработчиков программного обеспечения и других пользователей по сравнению с традиционными табличными (или SQL) базами данных.

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



Как правильно выбрать базу данных NoSQL: ключевые факторы

Имея более двух десятков свободно распространяемых и коммерческих баз данных NoSQL на рынке, как вы выбрать нужный продукт или облачный сервис?

Один из важных факторов – четко сформулировать цель, которую вы хотите достичь поместить данные в такую БД.

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

  • В целом, хранилища типа «ключ-значение» (key-value stores) лучше всего подходят для постоянного совместного использования данных несколькими процессами или микросервисами в приложении.
  • Если вы планируете провести глубокий анализ отношений для расчета взаимосвязей, обнаружения мошенничества или оценки ассоциативной структуры, лучше всего будет использовать графовую базу данных графа.
  • Если вам нужно собирать данные очень быстро и на больших объемах для аналитики, посмотрите в сторону широкий колоночных баз данных или, как их еще называют), базы данных с широким значением столбца (wide column store). Такие базы данных NoSQL также предлагают поддержку документов и графов.

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

В ближайшей перспективе основное внимание должно быть сосредоточено на производительности, масштабируемости, безопасности, поддержке различных рабочих нагрузок (включая транзакционные, операционные и аналитические), интеграции с существующими экосистемами, усилиях по администрированию, поддержке облачных вычислений и типах поддерживаемых вариантов использования БД. Из всех этих факторов очень важна безопасность. Базы данных NoSQL, имеющие сертификаты безопасности, должны быть рассмотрены в первую очередь. Ищите такие функции, как шифрование данных в состоянии покоя (data at rest) и шифрования данных на лету (data in motion) для защиты конфиденциальной информации.

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

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

 

Выбор базы данных NoSQL: что рассмотерть в первую очередь

Вот базы данных NoSQL, которые вы должны рассмотреть в первую очередь.

 

MongoDB

MongoDB - самая популярная база данных NoSQL. Свободная и открытая, кросс-платформенная, ориентированная на документы база данных. MongoDB использует JSON-подобные документы со схемами. Платформа поддерживается сообществом MongoDB Inc. и распространается в рамках общей публичной лицензии Gnu Affero и лицензии Apache.

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

Основные функции и возможности этой NoSQL базы данных включают полностью управляемое резервное копирование, непрерывное резервное копирование, восстановление на момент в прошлом (point-in-time recovery), запрашиваемые снимки (queryable snapshots), автоматически создаваемые диаграммы, панель производительности в режиме реального времени и настраиваемые оповещения. Пользователи могут импортировать данные в реальном времени в Atlas MongoDB с минимальным воздействием на приложения, используя встроенную службу Live Migration.

База данных оптимальна для естественного хранения, обработки и доступа к документам и другим типам наборов данных, и она популярна среди разработчиков, поскольку она проста в использовании, масштабируется для удовлетворения рескрсоемких приложений и предлагает комплексную экосистему инструментов и мастеров. Типичные области использования MongoDB включают персонализацию, аналитику в реальном времени, интернет вещей (IoT), большие данные (Big Data), каталоги продуктов / активов, системы обнаружение вторжения и мошенничества, мобильные приложения, концентраторы данных, управление контентом и приложения для общения и совместной работы.

 

Amazon DynamoDB

Amazon DynamoDB - еще одна популярная база данных NoSQL на базе облачных вычислений. Amazon DynamoDB - полностью управляемая платформа NoSQL, которая использует твердотельные накопители (SSD) для хранения, обработки и доступа к данным для поддержки высокопроизводительных и масштабируемых приложений.

Критерии выбора NOSQL базы данных

Amazon DynamoDB автоматически распрелеляет данные по серверам на основе требований к пропускной способности и балансировке рабочей нагрузки, и поэтому эта СУБД способна обслуживать крупные высокоресурсные проекты.

Пользователи могут масштабировать, контролировать и управлять своими таблицами как через интерфейсы прикладного программирования (API), так и с помощью Amazon Web Services Management Console. DynamoDB тесно интегрирован с Amazon EMR (управляемая инфраструктура для Apache Hadoop, Apache Spark и HBase), которая предлагает возможность запускать запросы, которые охватывают несколько источников данных.

Платформа поддерживает как  модель «ключ-значение», так и модели документов, а также имеет библиотеку для геопространственной индексации. Типичными вариантами использования DynamoDB включают рекламные кампании, приложения для социальных сетей, отслеживание игровой информации, сбор и анализ данных датчиков и журналов, а также электронную коммерцию.

 

DataStax и DataStax Enterprise Platform

DataStax использует Apache Cassandra для распределения по центрам обработки данных. Большим достоинством DataStax NoSQL является ее глобальная распределенная архитектурой. DataStax распространяет, развивает и поддерживает коммерческую версию Apache Cassandra, проект с открытым исходным кодом. Cassandra - это широкоформатная база данных, основанная на базе Google Bigtable.

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

 

DataStax Enterprise поддерживает различные типы бизнес-приложений, включая транзакционную, аналитическую, прогнозирующую аналитику и смешанные рабочие нагрузки. Он предлагает более широкие возможности с несколькими моделями с поддержкой графиков и данных JSON. Самые популярные варианты использования включают обнаружение мошенничества, каталоги продуктов, персонализацию потребителей, механизмы рекомендаций и IoT (интернет вещей).

 

Couchbase

Couchbase - это платформа базы данных поддержки документов JSON, распространяемая компанией Couchbase Inc. Эта NoSQL СУБД с открытым исходным кодом поддерживает широкие варианты использования.

Couchbase Server – это база данных NoSQL с открытым исходным кодом и база данных документов со встроенным кешем, которая подойдет компаниям, которым нужна база данных, которая может обеспечить производительность, мульти модели, масштабирование и автоматизацию.

Организации используют Couchbase для поддержки социальных и мобильных приложений, хранилищ контента и метаданных, транзакций электронной коммерции и онлайн-игр. Couchbase обеспечивает полную поддержку документов, гибкую модель данных, индексирование, полнотекстовый поиск и MapReduce для аналитики в режиме реального времени.

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

 

Redis Enterprise

Платформа с открытым исходным кодом Redis Enterprise, спонсируемая Redis Labs, является одной из самых распространенных key-value NSQ баз данных.

Redis предлагает высокопроизводительную базу данных в памяти (in-memory), которая поддерживает как модель со слабой, так и сильной согласованностью, гибкую schemaless-модель (база данных с отсутствующей схемой), высокую доступность и простоту развертывания.

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

Модель данных поддерживает «ключ-значение» архитектуру, а также множество структур данных, таких как списки, наборы, растровые изображения и хэши, и ряд моделей через подключаемые модули, такие как поиск, графы, JSON и XML. Redis поддерживает множество вариантов использования, включая аналитику в реальном времени, транзакции, прием данных, социальные сети, управление заданиями, организацию очередей сообщений и кеширование (например, в таких популярных CMS, как Joomal и WordPress).

 

MarkLogic

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

MarkLogic обеспечивает высокую доступность и функции безопасности на уровне данных, включая соответствие ACID, безопасность на уровне элементов, анонимность, редактирование и расширенное шифрование. По этим причинам данная СУБД подходит для предприятий, которые хотят обеспечить доступ к огромным массивам конфиденциальной информации. MarkLogic также является единственной базой данных NoSQL с сертификатом Common Criteria.

Другие ключевые функции направлены на улучшение пользовательского опыта (user experience) путем создания единого унифицированного представления данных, которые доступны для поиска, и могут быть проверены в любое время с использованием метаданных. Эти функции включают в себя bitemporal, semantics, способность обрабатывать как структурированные, так и неструктурированные данные (собственное хранилище для JSON, XML, RDF, геопространственных и больших двоичных файлов) и «спроси что угодно» (“ask anything”) Universal Index.

Операционный центр данных, который помогает решать вопросы управления и корпоративного соответствия, делает MarkLogic полезным для крупных предприятий с хранилищами данных, а также тем компаниям, которые сталкивается с вопросами регулирования (регламентации) угроз кибербезопасности и повышает уровень защиты от них.

 

Другие базы данных NoSQL

Другие предложения с открытым исходным кодом и коммерческих предложений NoSQL включают:

  • База данных Oracle NoSQL от Oracle
  • Google Bigtable от  Google
  • Microsoft Azure Cosmos DB от Microsoft
  • База данных Oracle NoSQL от Oracle
  • Helium от  Levyx
  • Neo4j от Neo4j
  • ThingSpan от Objectivity

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

Что такое база данных  и СУБД?
Что такое база данных и СУБД? 9051 просмотров Светлана Mon, 21 Oct 2019, 17:58:45
База данных как объект правово...
База данных как объект правово... 1567 просмотров Денис Wed, 27 Mar 2019, 03:16:24
Перенос корпоративных баз данн...
Перенос корпоративных баз данн... 2775 просмотров Дэн Fri, 27 Sep 2019, 07:52:18
Агрегированные модели и NoSQL ...
Агрегированные модели и NoSQL ... 9393 просмотров Денис Fri, 05 Feb 2021, 16:17:09
Войдите чтобы комментировать

apv аватар
apv ответил в теме #9895 3 года 1 мес. назад
Великолепные рекомендации по выбору NoSQL базы данных. Все по теме. Полезная статья!