click fraud protection

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

База данных MYSQL.

NoSQL возникла из потребности

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

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

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

Что такое NoSQL?

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

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

Категории NoSQL

Текущий мир NoSQL можно разделить на 4 основные категории.

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

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

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

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

Запросы к NoSQL

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

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

ПРЕФИКС foaf: 
ВЫБРАТЬ? URL
ИЗ
КУДА {
? участник foaf: имя "Джон Фубар".
? Участник foaf: URL-адрес веб-журнала.
}

Будущее NoSQL

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