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í.
- 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.
- 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.
- 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ú:
- Dynamo: Dynamo bol vytvorený spoločnosťou Amazon.com a je najvýznamnejšou databázou NoSQL s kľúčovými hodnotami. Amazon potreboval vysoko škálovateľnú distribuovanú platformu pre svoje e-commerce podniky, takže vyvinuli Dynamo. Amazon S3 používa Dynamo ako mechanizmus úložiska.
- Cassandra: Cassandra bola otvorená od spoločnosti Facebook a je stĺpcovou databázou NoSQL.
- BigTable: BigTable je proprietárna databáza Google orientovaná na stĺpce. Spoločnosť Google povoľuje používanie služby BigTable, ale iba pre Google App Engine.
- SimpleDB: SimpleDB je ďalšia databáza Amazon. Používa sa pre produkty Amazon EC2 a S3, je súčasťou služieb Amazon Web Services, ktoré účtujú poplatky v závislosti od použitia.
- CouchDB: CouchDB spolu s MongoDB sú open source dokumentovo orientované databázy NoSQL.
- Neo4J: Neo4j je open source grafová databáza.
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ť.