Руководство для начинающих по NoSQL

Руководство для начинающих по NoSQL

Как говорится, знание — сила, а знание основано на данных. В настоящее время у нас есть средства для сбора данных всех типов. Чтобы извлечь из него знания, нам нужно уметь их хранить и анализировать.

До недавнего времени самыми популярными базами данных были реляционные базы данных, хранящие таблицы со структурированными данными. Однако, когда мы вступили в это тысячелетие, мы осознали потенциал хранения данных менее структурированным способом.

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

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

Минусы NoSQL: почему мы так долго ждали?

Размер

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

База знаний

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

Не соло игрок

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

Плюсы: Почему стоит выбрать NoSQL?

Думайте о NoSQL как о более молодом, спокойном и более современном коллеге SQL. Что вы получите с NoSQL:

Гибкость

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

Улучшенная производительность

База данных NoSQL не полагается на несколько взаимосвязанных таблиц, а хранит все в одном месте. Это ускоряет процесс запроса.

Горизонтальное масштабирование

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

Изменение данных

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

Типы баз данных NoSQL

В зависимости от моделей данных и форматов данных существует 4 основные категории баз данных NoSQL.

Это база данных документов, основанная на ключе-значении, на основе графа и ориентированная на столбцы.

Ключ-значение на основе

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

Одними из самых популярных баз данных этого типа являются Amazon DynamoDB, Apache Cassandra, Aerospike и др.

База данных документов

Документно-ориентированные базы данных NoSQL или просто хранилища документов аналогичны базам данных типа «ключ-значение», только значения которых хранятся в виде документа. Формат документа может быть JSON или XML.

Они часто используются для платформ для ведения блогов, CMS и магазинов электронной коммерции. Некоторые из наиболее распространенных — MongoDB, Simple DB, CouchDB и т. д.

Ориентирован на столбцы

Как вы можете предположить, эти базы данных хранят данные в наборах столбцов, также называемых семействами столбцов. Это позволяет выполнять запросы на основе небольшого количества столбцов, а не всей базы данных, что значительно повышает скорость и снижает потребление памяти. Базы данных, ориентированные на столбцы, основаны на бумажной концепции BigTable, созданной Google.

Некоторые из популярных баз данных этого типа — Cassandra, Hypertable и т. д.

на основе графика

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

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

Одними из самых популярных примеров таких баз данных являются Neo4j, Janus Graph, Giraph и т. д.

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

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