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

Аббревиатура 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% больше. Другими словами, в мире хранится много данных, и они будут продолжать расти.

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

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

Что такое NoSQL?

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

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

Категории NoSQL

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

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

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

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

    • Динамо: Dynamo был создан Amazon.com и является самой известной базой данных Key-Value NoSQL. Amazon нуждалась в хорошо масштабируемой распределенной платформе для своих предприятий электронной коммерции, поэтому они разработали Dynamo. Amazon S3 использует Dynamo в качестве механизма хранения.
    • Cassandra: 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
    ИЗ
    ГДЕ {
    ?Автор foaf: имя "Джон Фубар".
    ?участник foaf: weblog? url.
    }

    Будущее NoSQL

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

    Ссылка на основную публикацию