Skip to main content

Обзор баз данных NoSQL

Как работают NoSQL базы: документ-ориентированные типа MongoDB (Май 2024)

Как работают NoSQL базы: документ-ориентированные типа MongoDB (Май 2024)
Anonim

Сокращение NoSQL было придумано в 1998 году. Многие люди считают, что NoSQL - это уничижительный термин, созданный для того, чтобы совать на SQL. В действительности термин означает не только SQL. Идея состоит в том, что обе технологии могут сосуществовать, и каждая из них имеет свое место. Движения NoSQL были в новостях за последние несколько лет, так как многие из лидеров Web 2.0 приняли технологию NoSQL. Такие компании, как Facebook, Twitter, Digg, Amazon, LinkedIn и Google, все используют NoSQL так или иначе. Давайте разложим NoSQL, чтобы вы могли объяснить это своему ИТ-директору или даже вашим сотрудникам.

NoSQL возник из-за необходимости

Хранилище данных: Сохраненные цифровые данные в мире измеряются в экзабайтах. Экзабайт равен одному миллиарду гигабайт (ГБ) данных. Согласно Internet.com, количество сохраненных данных, добавленных в 2006 году, составило 161 экзабайт. Всего через 4 года в 2010 году объем данных будет составлять почти 1000 ExaBytes, что составляет более 500%. Другими словами, в мире хранится много данных, и он просто продолжает расти.

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

Сложная структура данных: NoSQL может легко обрабатывать иерархические структуры вложенных данных. Чтобы выполнить то же самое в SQL, вам понадобится несколько реляционных таблиц со всеми типами ключей. Кроме того, существует связь между производительностью и сложностью данных. Производительность может ухудшаться в традиционной РСУБД, поскольку мы храним огромное количество данных, необходимых в социальных сетях и семантической сети.

Что такое NoSQL?

Я предполагаю, что одним из способов определения NoSQL является рассмотрение того, что это не так. Это не SQL, а не реляционная. Как следует из названия, это не замена для РСУБД, а комплимент. NoSQL предназначен для распределенных хранилищ данных для очень больших потребностей в данных. Подумайте о Facebook с 500 000 000 пользователей или Twitter, которые накапливают Terabits данных каждый день.

В базе данных NoSQL нет фиксированной схемы и нет объединений. СУРБД «масштабируется», получая все быстрее и быстрее аппаратное обеспечение и добавляя память. С другой стороны, NoSQL может воспользоваться «масштабированием». Масштабирование относится к распределению нагрузки по многим товарным системам. Это компонент NoSQL, который делает его недорогим решением для больших наборов данных.

Категории NoSQL

Текущий мир NoSQL вписывается в 4 основные категории.

  1. Магазины ключей основаны главным образом на «Динамо-бумаге» Amazon, которая была написана в 2007 году. Основная идея - наличие хэш-таблицы, в которой есть уникальный ключ и указатель на определенный элемент данных. Эти сопоставления обычно сопровождаются механизмами кэширования, чтобы максимизировать производительность.
    1. Столбцы Семейные магазины были созданы для хранения и обработки очень больших объемов данных, распространяемых на многих машинах. Есть еще ключи, но они указывают на несколько столбцов. В случае BigTable (модель NoSQL семейства столбцов Google) строки идентифицируются ключом строки с данными, отсортированными и сохраненными этим ключом. Столбцы упорядочены по семейству столбцов.
  2. База данных документовбыли вдохновлены Lotus Notes и похожи на магазины с ключевыми значениями. Модель - это, в основном, документы с версией, которые являются коллекциями других коллекций ключевого значения. Полуструктурированные документы хранятся в форматах, таких как JSON.
  3. Диаграмма базы данныхs строятся с узлами, отношениями между нотами и свойствами узлов. Вместо таблиц строк и столбцов и жесткой структуры SQL используется гибкая модель графа, которая может масштабироваться на многих машинах.

Основные игроки NoSQL

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

  • Динамо: Динамо было создано Amazon.com и является самой важной базой данных KeySquared NoSQL. Amazon нуждалась в масштабируемой распределенной платформе для своих предприятий электронной коммерции, чтобы они разработали Dynamo. Amazon S3 использует Dynamo в качестве механизма хранения.
  • Cassandra: Кассандра была открыта Facebook и представляет собой базу данных NoSQL, ориентированную на столбцы.
  • Большой стол: BigTable - это собственная база данных, ориентированная на колонку Google. Google позволяет использовать BigTable, но только для Google App Engine.
  • SimpleDB: SimpleDB - это еще одна база данных Amazon. Используется для Amazon EC2 и S3, он является частью Amazon Web Services, который взимает плату в зависимости от использования.
  • CouchDB: CouchDB вместе с MongoDB представляют собой базы данных NoSQL с открытым исходным кодом.
  • Neo4j: Neo4j - это база данных с открытым исходным кодом.

Запрос NoSQL

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

Многие платформы NoSQL позволяют использовать интерфейсы RESTful для данных. Другие API запросов предложений. Существует несколько разработанных инструментов запросов, которые пытаются запросить несколько баз данных NoSQL. Эти инструменты обычно работают в одной категории NoSQL. Одним из примеров является SPARQL. SPARQL - это декларативная спецификация запросов, предназначенная для баз данных графов. Ниже приведен пример запроса SPARQL, который извлекает URL-адрес конкретного блоггера (любезно предоставлен IBM):

PREFIX foaf: SELECT? UrlОТ ГДЕ {? contributor foaf: name "Jon Foobar".? contributor foaf: weblog? url.}

Будущее NoSQL

Организации, имеющие огромные потребности в хранении данных, серьезно смотрят на NoSQL. По-видимому, концепция не получает столько же тяги в небольших организациях. В опросе, проведенном информационной неделей, 44% ИТ-специалистов бизнеса не слышали о NoSQL. Кроме того, только 1% респондентов сообщили, что NoSQL является частью их стратегического направления. Очевидно, что NoSQL имеет свое место в нашем связанном мире, но ему нужно будет продолжать развиваться, чтобы получить массовый призыв, который, по мнению многих, он мог бы иметь.