Prehľad databáz NoSQL

Akronym NoSQL bol zavedený v roku 1998. Mnoho ľudí si myslí, že NoSQL je hanlivý termín vytvorený na poke v SQL. V skutočnosti tento výraz znamená nielen SQL. Myšlienka je, že obe technológie môžu existovať spoločne a každý má svoje miesto. Hnutie NoSQL sa v posledných rokoch stalo novinkou, keďže mnohí lídri Web 2.0 prijali technológiu NoSQL. Spoločnosti ako Facebook, Twitter, Digg, Amazon, LinkedIn a Google všetci používajú NoSQL tak alebo onak.

Poďme rozdeliť NoSQL, aby ste to mohli vysvetliť vášmu riaditeľovi CIO alebo dokonca vašim spolupracovníkom.

NoSQL vznikol z potreby

Ukladanie údajov: Uložené digitálne údaje na svete sa merajú v exabajtoch. Exabajt sa rovná jednej miliarde gigabajtov (GB) dát. Podľa internetovej stránky Internet.com bola suma uložených údajov v roku 2006 161 exabajtov. O 4 roky neskôr v roku 2010 bude množstvo uložených údajov takmer 1000 ExaBytes, čo je nárast o viac ako 500%. Inými slovami, na svete sa nachádza veľa údajov a jeho práve bude pokračovať v raste.

Prepojené údaje: Údaje sa stále viac spájajú. Vytvorenie webu podporované v hypertextových odkazoch, blogoch má pingbacks a každý hlavný systém sociálnych sietí má značky, ktoré viažu veci dohromady. Hlavné systémy sú navrhnuté tak, aby boli prepojené.

Komplexná štruktúra údajov: NoSQL dokáže jednoducho spracovať hierarchické vnorené dátové štruktúry. Ak chcete dosiahnuť to isté v SQL, budete potrebovať viac relačných tabuliek so všetkými druhmi kľúčov.

Okrem toho existuje vzťah medzi výkonnosťou a zložitosťou údajov. Výkonnosť sa môže zhoršiť v tradičnom RDBMS, pretože ukladáme obrovské množstvo údajov požadovaných v aplikáciách sociálnych sietí a sémantickom webe.

Čo je to NoSQL?

Myslím, že jeden spôsob, ako definovať NoSQL, je zvážiť to, čo to nie je.

Nie je to SQL a nie je to relačné. Podobne ako naznačuje názov, nie je to náhradou RDBMS, ale komplimenty. NoSQL je navrhnutý pre distribuované dátové úložiská pre veľmi rozsiahle potreby dát. Premýšľajte o Facebooku s 500 000 000 používateľmi alebo Twitter, ktoré zhromažďujú Terabity dát každý deň.

V databázach NoSQL neexistuje žiadna pevná schéma a žiadne pripojenia. RDBMS sa "rozširuje" tým, že získava rýchlejší a rýchlejší hardvér a pridáva pamäť. NoSQL, na druhej strane, môže využiť "zmenšovanie". Zmena miery sa vzťahuje na rozloženie zaťaženia v mnohých komoditných systémoch. Toto je súčasť aplikácie NoSQL, ktorá z nej robí lacné riešenie pre veľké množiny údajov.

Kategórie NoSQL

Aktuálny svet NoSQL sa zmestí do 4 základných kategórií.

  1. Kľúčové hodnoty Obchody sú založené predovšetkým na dynamickom papieri spoločnosti Amazon, ktorý bol napísaný v roku 2007. Hlavnou myšlienkou je existencia hashovej tabuľky, v ktorej je jedinečný kľúč a ukazovateľ konkrétnej položky údajov. Tieto mapovania sú obvykle sprevádzané mechanizmami vyrovnávacej pamäte na maximalizáciu výkonu.
    Rodinné stĺpce stĺpcov boli vytvorené na ukladanie a spracovanie veľmi veľkého množstva údajov distribuovaných na mnohých počítačoch. K dispozícii sú ešte kľúče, ale ukazujú na viaceré stĺpce. V prípade modelu BigTable (model spoločnosti Google Family Column NoSQL) sú riadky označené riadkovým kľúčom s údajmi triedenými a uloženými týmto kľúčom. Stĺpce sú usporiadané podľa rodiny stĺpcov.
  1. Databázy dokumentov boli inšpirované programom Lotus Notes a sú podobné obchodom s kľúčovými hodnotami. Model je v podstate verziou dokumentov, ktoré sú zbierkami iných zbierok kľúčových hodnôt. Polostrukturované dokumenty sú uložené vo formátoch ako JSON.
  2. Grafové databázy sú vytvorené pomocou uzlov, vzťahov medzi poznámkami a vlastnosťami uzlov. Namiesto tabuliek riadkov a stĺpcov a pevnej štruktúry SQL sa používa flexibilný model grafu, ktorý sa môže rozširovať na mnohých počítačoch.

Hlavné hráči z NoSQL

Hlavnými hráči v systéme NoSQL sa objavili najmä vďaka organizáciám, ktoré ich prijali. Niektoré z najväčších technológií NoSQL zahŕňajú:

Dotazovanie na systém NoSQL

Otázka, ako sa dotazovať na databázu NoSQL, je to, o čo sa zaujíma väčšina vývojárov. Napokon dáta uložené v obrovskej databáze nijako nezaťažujú, ak ich nemôžete prevziať a zobraziť koncovým používateľom alebo webovým službám. NoSQL databázy neposkytujú vysokoúrovňové jazykové požiadavky ako SQL. Namiesto toho je dotazovanie na tieto databázy špecifické pre dátový model.

Mnohé z platforiem NoSQL umožňujú REST rozhrania k údajom. Iné dopyty ponuky API. Existuje niekoľko dopytových nástrojov, ktoré boli vyvinuté, ktoré sa pokúšajú o dotazovanie viacerých databáz NoSQL. Tieto nástroje zvyčajne pracujú v jednej kategórii NoSQL. Jedným z príkladov je SPARQL. SPARQL je deklaratívna špecifikácia dopytu určená pre databázy grafov. Tu je príklad dotazu SPARQL, ktorý načíta URL adresy konkrétneho bloggeru (s láskavým dovolením IBM):

PREFIX foaf:
SELECT? Url
FROM
KDE {
? prispievateľ foaf: meno "Jon Foobar".
prispievateľ foaf: weblog? url.
}

Budúcnosť služby NoSQL

Organizácie, ktoré majú veľké potreby na ukladanie dát, hľadajú na NoSQL vážne. Zdá sa, že koncept nie je v menších organizáciách dostatočný. V prieskume, ktorý sa uskutočnil informačným týždňom, 44% obchodných odborníkov v oblasti informačných technológií nepočulo o systéme NoSQL. Ďalej iba 1% respondentov uviedlo, že NoSQL je súčasťou ich strategického smerovania. Samozrejme, NoSQL má svoje miesto v našom prepojenom svete, ale bude sa musieť ďalej vyvíjať, aby získalo masové odvolanie, ktoré si mnohí myslia, že by to mohlo mať.