Общ преглед на бази данни на NoSQL

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

Нека да разбием NoSQL, за да можете да го обясните на вашия директор, или дори на вашите колеги.

NoSQL се появява от нужда

Съхранение на данни: съхраняваните в света цифрови данни се измерват в екба-байтове. Ебабайт е равен на един милиард гигабайта (GB) данни. Според Internet.com, количеството съхранявани данни, добавени през 2006 г., е 161 екзабайта. Само 4 години по-късно през 2010 г., количеството съхранени данни ще бъде почти 1000 ExaBytes, което е увеличение от над 500%. С други думи, има много данни, които се съхраняват в света и просто ще продължи да расте.

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

Комплексна структура на данните: NoSQL лесно може да обработва йерархичните вложени структури от данни. За да постигнете едно и също нещо в SQL, трябва да имате няколко релационни таблици с всички видове ключове.

Освен това има връзка между производителността и сложността на данните. Ефективността може да се понижи в традиционния RDBMS, тъй като съхраняваме огромните количества данни, изисквани в приложенията за социални мрежи и семантичната мрежа.

Какво представлява NoSQL?

Предполагам, че един от начините да се определи NoSQL е да се разгледа какво не е.

Това не е SQL и не е релационна. Както подсказва името, това не е заместител на RDBMS, но го комплиментира. NoSQL е предназначен за съхраняване на разпределени данни за много големи потребности от данни. Помислете за Facebook с нейните 500 000 000 потребители или Twitter, които натрупват Terabits на данни всеки ден.

В базата данни NoSQL няма фиксирана схема и никакви връзки. RDBMS "се мащабира", като получава по-бърз и по-бърз хардуер и добавя памет. NoSQL, от друга страна, може да се възползва от "мащабиране". Промяната на мащаба се отнася до разпространението на товара върху много стокови системи. Това е компонентът на NoSQL, който го прави евтино решение за големи масиви от данни.

NoSQL категории

Сегашният свят на NoSQL се вписва в 4 основни категории.

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

Основни играчи на NoSQL

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

Запитване за NoSQL

Въпросът за това как да се търси в база данни на NoSQL е това, което повечето разработчици се интересуват. В крайна сметка данните, съхранявани в огромна база данни, не правят никого добро, ако не можете да ги извлечете и покажете на крайните потребители или уеб услуги. NoSQL базите данни не осигуряват език на декларативна заявка на високо ниво като SQL. Вместо това, запитването към тези бази данни е специфично за модела на данните.

Много от платформите на NoSQL позволяват създаването на RESTful интерфейси към данните. Други API за заявки за оферти. Има няколко инструмента за търсене, които са разработени, които се опитват да заявят няколко NoSQL бази данни. Тези инструменти обикновено работят в една единствена NoSQL категория. Един пример е SPARQL. SPARQL е декларативна спецификация на заявката, предназначена за бази данни за графики. Ето един пример за заявка за SPARQL, която извлича URL на конкретен блогър (с любезното съдействие на IBM):

PREFIX foaf:
SELECT? Url
ОТ
КЪДЕТО {
? contributor foaf: име "Jon Foobar".
? contributor foaf: weblog? url.
}

Бъдещето на NoSQL

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