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

Оглавление:

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

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

Image
Image

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

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

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

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

Что такое NoSQL?

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

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

Категории NoSQL

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

Магазины

  • ключ-значение Stores в основном основаны на Dynamo Paper от Amazon, написанной в 2007 году. Основная идея заключается в существовании хеш-таблицы, где есть уникальный ключ и указатель на конкретный элемент данных. Эти сопоставления обычно сопровождаются механизмами кэширования, чтобы максимизировать производительность.
  • Семейные хранилища столбцов были созданы для хранения и обработки очень больших объемов данных, распределенных по множеству компьютеров. Есть еще ключи, но они указывают на несколько столбцов. В случае BigTable (модель Google Column Family NoSQL) строки идентифицируются по ключу строки, а данные сортируются и сохраняются по этому ключу. Столбцы упорядочены по семейству столбцов.

    Базы данных

  • Document Databases были вдохновлены Lotus Notes и похожи на хранилища ключей и значений. Модель в основном представляет собой версионные документы, которые представляют собой коллекции других коллекций ключ-значение. Полуструктурированные документы хранятся в таких форматах, как JSON.
  • База данных

  • Graph Database построена с узлами, отношениями между заметками и свойствами узлов. Вместо таблиц строк и столбцов и жесткой структуры SQL используется гибкая графовая модель, которая может масштабироваться на многих машинах.
  • Основные игроки NoSQL

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

    • Dynamo: Dynamo было создано Amazon.com и является наиболее известной базой данных NoSQL типа «ключ-значение». Amazon нуждалась в хорошо масштабируемой распределенной платформе для своего бизнеса электронной коммерции, поэтому они разработали Dynamo. Amazon S3 использует Dynamo в качестве механизма хранения.
    • Cassandra: Cassandra была открыта Facebook и представляет собой столбцовую базу данных NoSQL.
    • BigTable: 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. Вместо этого запрос к этим базам данных is> PREFIX foaf:

    SELECT ?url

    FROM

    WHERE {

    ?contributor foaf:name "Jon Foobar".

    ?участник foaf:weblog ?url.

    }

    Будущее NoSQL

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

    Рекомендуемые: