Акронимот NoSQL беше скован во 1998 година. Многу луѓе сметаат дека NoSQL е навредлив термин создаден за да се појави на SQL. Во реалноста, терминот значи не само SQL. Идејата е дека двете технологии можат да коегзистираат и секој има свое место. Движењето NoSQL е во вестите во изминатите неколку години, бидејќи многу од лидерите на Веб 2.0 ја прифатија NoSQL технологијата. Компании како Фејсбук, Твитер, Диг, Амазон, Скопје и Google го користат NoSQL на еден или друг начин.
Ајде да го срушиме NoSQL за да можеш да го објасниш на твојот ЦИО или дури и твоите соработници.
NoSQL се појави од потреба
Складирање на податоци: меморираните дигитални податоци во светот се мерат во ексбајти. Exabyte е еднаква на една милијарда гигабајти (GB) на податоци. Според Internet.com, износот на складирани податоци додадени во 2006 година изнесува 161 ексабајти. Само 4 години подоцна во 2010 година, износот на зачувани податоци ќе биде речиси 1.000 ExaBytes што претставува зголемување од над 500%. Со други зборови, има многу податоци кои се чуваат во светот, а само ќе продолжи да расте.
Меѓусебно поврзани податоци: Податоците продолжуваат да станат поврзани. Создавањето на веб негува во хиперлинкови, блоговите имаат pingbacks и секој главен систем на социјални мрежи има ознаки кои ги поврзуваат работите заедно. Големи системи се изградени да бидат меѓусебно поврзани.
Комплексна структура на податоци: NoSQL лесно може да се справи со хиерархиски вгнездени структури на податоци. За да се постигне истото во SQL, ќе ви требаат повеќе релациони табели со сите видови клучеви.
Покрај тоа, постои врска помеѓу перформансите и сложеноста на податоците. Перформансите можат да се деградираат во традиционалните RDBMS, бидејќи ги чуваме масивните количини на податоци кои се бараат во апликациите за социјално вмрежување и семантичката мрежа.
Што е NoSQL?
Претпоставувам дека еден начин да се дефинира NoSQL е да се разгледа она што не е.
Тоа не е SQL и не е релациона. Како што сугерира името, тоа не е замена за RDBMS, туку комплименти. NoSQL е дизајниран за дистрибуирани податоци продавници за многу големи потреби за податоци. Размислете за Фејсбук со своите 500.000.000 корисници или Твитер кој акумулира Терабити на податоци секој ден.
Во базата на податоци NoSQL, нема фиксна шема и нема приклучоци. Базе податоци "се зголемува" со добивање побрз и побрз хардвер и додавање меморија. NoSQL, од друга страна, може да ги искористи предностите на "изумирање". Зголемувањето се однесува на ширење на оптоварувањето во многу стоковни системи. Ова е компонента на NoSQL што го прави ефтин решение за големи бази на податоци.
Категории NoSQL
Тековниот NoSQL светот се вклопува во 4 основни категории.
- Клучни вредности Продавниците се базираат првенствено на Амазон Динамо книга која беше напишана во 2007 година. Главната идеја е постоењето на хаш табела, каде што има уникатен клуч и покажувач кон одредена точка на податоци. Овие мапи обично се придружени со кеш механизми за да се максимизираат перформансите.
Продавниците за семејства на колумни беа создадени за складирање и обработка на многу големи количини на податоци дистрибуирани преку многу машини. Се уште има клучеви, но тие посочуваат на повеќе колони. Во случај на BigTable (моделот NoSQL на Google Column Family), редовите се идентификуваат со клучен клуч со податоците кои се подредени и складирани со овој клуч. Колоните се подредени според семејството на колони.
- Базите на податоци на документи беа инспирирани од Lotus Notes и се слични на продавниците со клучни вредности. Моделот е во основа верзионираните документи кои се збирки од други збирки на клучни вредности. Полуструктурираните документи се зачувани во формати како JSON.
- База на податоци за графовите се изградени со јазли, врски помеѓу белешките и особините на јазли. Наместо табели на редови и колони и цврста структура на SQL, се користи флексибилен модел на графикон кој може да се скали низ многу машини.
Големи NoSQL играчи
Главните играчи во NoSQL се појавија првенствено поради организациите кои ги усвоиле. Некои од најголемите NoSQL технологии вклучуваат:
- Динамо: Динамото беше создадено од Amazon.com и е најистакнатите KeySQL NoSQL база на податоци. Амазон има потреба од високо скалабилна дистрибуирана платформа за нивните бизниси за е-трговија, па тие го развија Динамо. Amazon S3 го користи Динамо како механизам за складирање.
- Касандра: Касандра беше отворен од Фејсбук и е базата на податоци NoSQL ориентирана кон колоните.
- BigTable: BigTable е комерцијална колона ориентирана база на податоци на Google. Google дозволува употреба на BigTable, но само за Google App Engine.
- SimpleDB: SimpleDB е уште една база на податоци од Амазон. Се користи за Амазон 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:
Избери? Url
ОД
КАДЕ {
? contributor fooph: име "Џон Фобар".
? contributor foaf: weblog? url.
}
Иднината на NoSQL
Организации кои имаат масивни податоци за чување на податоци се бараат сериозно на NoSQL. Очигледно, концептот не добива толку многу влечење кај помалите организации. Во истражувањето спроведено од Информативната недела, 44% од деловните ИТ професионалци не слушнале за NoSQL. Понатаму, само 1% од испитаниците известија дека NoSQL е дел од нивната стратешка насока. Јасно е дека NoSQL има свое место во нашиот поврзан свет, но ќе треба да продолжи да се развива за да добие масовна привлечност, за која многумина сметаат дека би можеле да имаат.