Учебники

2) Учебник по NoSQL

Что такое NoSQL?

NoSQL – это нереляционная СУБД, которая не требует фиксированной схемы, избегает объединений и легко масштабируется. Цель использования базы данных NoSQL для распределенных хранилищ данных с огромными потребностями хранения данных. NoSQL используется для больших данных и веб-приложений в реальном времени. Например, такие компании, как Twitter, Facebook, Google, собирают терабайты пользовательских данных каждый день.

База данных NoSQL означает «Не только SQL» или «Не SQL». Хотя лучшим термином будет «NoREL», NoSQL завоевал популярность. Карл Строцц представил концепцию NoSQL в 1998 году.

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

В этом уроке вы узнаете

Почему NoSQL?

Концепция баз данных NoSQL стала популярной среди интернет-гигантов, таких как Google, Facebook, Amazon и т. Д., Которые работают с огромными объемами данных. Время отклика системы становится медленным, когда вы используете RDBMS для больших объемов данных.

Чтобы решить эту проблему, мы могли бы «масштабировать» наши системы путем обновления существующего оборудования. Этот процесс дорогой.

Альтернативой для этой проблемы является распределение нагрузки базы данных на несколько хостов при каждом увеличении нагрузки. Этот метод известен как «масштабирование».

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

Краткая история баз данных NoSQL

  • 1998 – Карло Строцци использует термин NoSQL для своей легкой реляционной базы данных с открытым исходным кодом.
  • 2000 – Запущена графическая база данных Neo4j
  • 2004 – Google BigTable запущен
  • 2005 – CouchDB запущен
  • 2007- Выпущена исследовательская статья об Amazon Dynamo
  • 2008 – Facebook открывают исходники проекта Cassandra
  • 2009 – термин NoSQL был вновь введен

Особенности NoSQL

Нереляционный

  • Базы данных NoSQL никогда не следуют реляционной модели
  • Никогда не предоставляйте таблицы с плоскими записями с фиксированными столбцами
  • Работа с автономными агрегатами или BLOB-объектами
  • Не требует объектно-реляционного отображения и нормализации данных
  • Нет сложных функций, таких как языки запросов, планировщики запросов,

    объединения ссылочной целостности, ACID

Схема свободной

  • Базы данных NoSQL не содержат схем или имеют упрощенные схемы.
  • Не требует какого-либо определения схемы данных
  • Предлагает гетерогенные структуры данных в одном домене

NoSQL не содержит схем

Простой API

  • Предлагает простые в использовании интерфейсы для хранения и запроса данных.
  • API позволяют низкоуровневые методы обработки и выбора данных
  • Текстовые протоколы, в основном используемые с HTTP REST с JSON
  • В основном используется не стандартный язык запросов
  • Веб-базы данных, работающие как интернет-сервисы

распределенный

  • Несколько баз данных NoSQL могут быть выполнены распределенным способом
  • Предоставляет возможности автоматического масштабирования и переключения при сбое
  • Часто концепцию ACID можно пожертвовать ради масштабируемости и пропускной способности.
  • В большинстве случаев отсутствует синхронная репликация между распределенными узлами. Асинхронная многоуровневая репликация, одноранговая репликация, репликация HDFS.
  • Только при условии возможной согласованности
  • Архитектура ничего не поделена. Это обеспечивает меньшую координацию и более высокое распределение.

NoSQL – это ничто.

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

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

Давайте посмотрим на всех из них:

  • На основе пары ключ-значение
  • Колонно-ориентированный график
  • Графики на основе
  • Документ-ориентированный

Основное значение пары на основе пары

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

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

Например, пара ключ-значение может содержать ключ типа «Веб-сайт», связанный со значением типа «Guru99».

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

Redis, Dynamo, Riak – некоторые примеры баз данных хранилищ ключей и значений. Все они основаны на бумаге Amazon Dynamo.

Колонка на основе

Колонно-ориентированные базы данных работают на столбцах и основаны на бумаге BigTable от Google. Каждый столбец обрабатывается отдельно. Значения одноколоночных баз данных хранятся непрерывно.

Колонковая база данных NoSQL

Они обеспечивают высокую производительность для запросов агрегации, таких как SUM, COUNT, AVG, MIN и т. Д., Поскольку данные легко доступны в столбце.

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

HBase, Cassandra, HBase, Hypertable являются примерами баз данных на основе столбцов.

Документ-ориентированный:

Документно-ориентированная NoSQL DB хранит и извлекает данные в виде пары ключ-значение, но часть значения сохраняется в виде документа. Документ хранится в формате JSON или XML. Значение понимается БД и может быть запрошено.

Отношение против Документ

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

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

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB – популярные системы СУБД, созданные на основе документов.

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

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

По сравнению с реляционной базой данных, в которой таблицы слабо связаны, база данных Graph имеет мультиреляционный характер. Проходные отношения быстрые, поскольку они уже записаны в БД, и нет необходимости их вычислять.

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

Neo4J, Infinite Graph, OrientDB, FlockDB – некоторые популярные базы данных на основе графов.

Инструменты механизма запросов для NoSQL

Наиболее распространенный механизм поиска данных – это поиск значения на основе REST по его ключу / идентификатору с помощью ресурса GET.

База данных хранилища документов предлагает более сложные запросы, поскольку они понимают значение в паре ключ-значение. Например, CouchDB позволяет определять виды с помощью MapReduce

Что такое теорема CAP?

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

  1. консистенция
  2. Доступность
  3. Допуск раздела

Последовательность:

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

Доступность:

База данных всегда должна быть доступна и отзывчива. У этого не должно быть никакого простоя.

Допуск раздела:

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

Возможная последовательность

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

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

БАЗА: В asically модели ширина, S часто состояние, Е ventual консистенции

  • По сути, доступность означает, что БД доступна постоянно согласно теореме CAP
  • Мягкое состояние означает даже без ввода; состояние системы может измениться
  • Окончательная согласованность означает, что система со временем станет согласованной

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

  • Может использоваться в качестве первичного или аналитического источника данных
  • Возможность больших данных
  • Нет единой точки отказа
  • Простая репликация
  • Нет необходимости в отдельном слое кэширования
  • Это обеспечивает высокую производительность и горизонтальную масштабируемость.
  • Может обрабатывать структурированные, полуструктурированные и неструктурированные данные с одинаковым эффектом
  • Объектно-ориентированное программирование, простое в использовании и гибкое
  • Базы данных NoSQL не нуждаются в выделенном высокопроизводительном сервере
  • Поддержка ключевых языков и платформ для разработчиков
  • Простота реализации, чем использование СУБД
  • Он может служить основным источником данных для онлайн-приложений.
  • Обрабатывает большие данные, которые управляют скоростью, разнообразием, объемом и сложностью данных
  • Превосходно работает с распределенной базой данных и несколькими центрами обработки данных.
  • Устраняет необходимость в специальном уровне кэширования для хранения данных.
  • Предлагает гибкую конструкцию схемы, которая может быть легко изменена без простоя или нарушения работы

Недостатки NoSQL

  • Нет правил стандартизации
  • Ограниченные возможности запросов
  • СУБД базы данных и инструменты сравнительно зрелые
  • Он не предлагает никаких традиционных возможностей базы данных, таких как согласованность, когда несколько транзакций выполняются одновременно.
  • Когда объем данных увеличивается, трудно поддерживать уникальные значения, так как ключи становятся сложными
  • Не работает с реляционными данными
  • Кривая обучения жесткая для новых разработчиков
  • Варианты с открытым исходным кодом, поэтому не так популярны для предприятий.

Резюме

  • NoSQL – это нереляционная DMS, которая не требует фиксированной схемы, избегает объединений и легко масштабируется
  • Концепция баз данных NoSQL стала популярной среди интернет-гигантов, таких как Google, Facebook, Amazon и др., Которые работают с огромными объемами данных.
  • В 1998 году Карло Строцци использовал термин NoSQL для своей легкой реляционной базы данных с открытым исходным кодом.
  • Базы данных NoSQL никогда не следуют реляционной модели: они не содержат схем или имеют упрощенные схемы.
  • Четыре типа базы данных NoSQL: 1) .Клавишное значение на основе пар 2). Граф, ориентированный на столбцы 3). Графики на основе 4). Документ-ориентированные
  • NOSQL может обрабатывать структурированные, полуструктурированные и неструктурированные данные с одинаковым эффектом
  • Теорема CAP состоит из трех слов: согласованность, доступность и допуск раздела
  • БАЗА обозначает B asically модели шириной, S часто состояние, Е ventual консистенции
  • Термин «возможная согласованность» означает наличие копий данных на нескольких компьютерах для обеспечения высокой доступности и масштабируемости.
  • NOSQL предлагает ограниченные возможности запросов