Prehľad NoSQL

click fraud protection

Skratka NoSQL bola vytvorená v roku 1998. Mnoho ľudí si myslí, že NoSQL je hanlivý výraz vytvorený na to, aby sa hrabal v SQL. V skutočnosti tento pojem znamená nielen SQL. Ide o to, že obe technológie môžu koexistovať a každá má svoje miesto. Hnutie NoSQL bolo v posledných rokoch v novinách, pretože mnohí z lídrov Web 2.0 prijali technológiu NoSQL. Spoločnosti ako Facebook, Twitter, Digg, Amazon, LinkedIn a Google používajú NoSQL tak či onak. Poďme rozobrať NoSQL, aby ste to mohli vysvetliť svojmu CIO alebo dokonca svojim spolupracovníkom.

databázy MYSQL.

NoSQL sa vynoril z potreby

Úložisko dát: Digitálne údaje uložené na svete sa merajú v exabajtoch. Exabajt sa rovná jednej miliarde gigabajtov (GB) údajov. Podľa Internet.com, množstvo uložených dát pridaných v roku 2006 bolo 161 exabajtov. Len o 4 roky neskôr v roku 2010 bude množstvo uložených dát takmer 1 000 ExaBytes, čo predstavuje nárast o viac ako 500 %. Inými slovami, na svete je uložených veľa údajov a ich rast bude pokračovať.

Prepojené údaje:

Dáta sú stále viac prepojené. Vytváranie webu podporované hypertextovými odkazmi, blogy majú pingbacky a každý hlavný systém sociálnych sietí má značky, ktoré spájajú veci dohromady. Hlavné systémy sú postavené tak, aby boli vzájomne prepojené.

Komplexná dátová štruktúra: NoSQL dokáže ľahko spracovať hierarchické vnorené dátové štruktúry. Na dosiahnutie toho istého v SQL by ste potrebovali viacero relačných tabuliek so všetkými druhmi kľúčov. Okrem toho existuje vzťah medzi výkonom a zložitosťou údajov. Výkon sa môže v tradičnom RDBMS zhoršiť, pretože ukladáme obrovské množstvo údajov požadovaných v aplikáciách sociálnych sietí a sémantický web.

Čo je NoSQL?

Myslím, že jedným zo spôsobov, ako definovať NoSQL, je zvážiť, čo nie je. Nie je to SQL a nie je to relačné. Ako už názov napovedá, nie je náhradou za RDBMS, ale dopĺňa ho. NoSQL je navrhnutý pre distribuované dátové úložiská pre veľmi rozsiahle dátové potreby. Spomeňte si na Facebook s jeho 500 000 000 používateľmi alebo Twitter, ktorý každý deň zhromažďuje terabity údajov.

V databáze NoSQL neexistuje žiadna pevná schéma a žiadne spojenia. RDBMS sa „škáluje“ získavaním rýchlejšieho a rýchlejšieho hardvéru a pridávaním pamäte. NoSQL, na druhej strane, môže využiť výhodu „škálovania“. Škálovanie sa týka rozloženia zaťaženia na mnohé komoditné systémy. Toto je komponent NoSQL, ktorý z neho robí lacné riešenie pre veľké súbory údajov.

NoSQL kategórie

Súčasný svet NoSQL zapadá do 4 základných kategórií.

  1. Obchody s pármi kľúč – hodnota sú založené predovšetkým na Dynamo Paper od Amazonu ktorý bol napísaný v roku 2007. Hlavnou myšlienkou je existencia hašovacej tabuľky, kde je jedinečný kľúč a ukazovateľ na konkrétnu položku údajov. Tieto mapovania sú zvyčajne sprevádzané mechanizmami vyrovnávacej pamäte na maximalizáciu výkonu.
    1. Stĺpec Rodinné predajne boli vytvorené na ukladanie a spracovanie veľmi veľkého množstva údajov distribuovaných na mnohých strojoch. Stále existujú kľúče, ale ukazujú na viacero stĺpcov. V prípade BigTable (model NoSQL rodiny stĺpcov od Googlu) sú riadky identifikované kľúčom riadku s údajmi zoradenými a uloženými podľa tohto kľúča. Stĺpce sú usporiadané podľa rodiny stĺpcov.
  2. Databázy dokumentov boli inšpirovaní Lotus Notes a sú podobné obchodom s pármi kľúč – hodnota. Model sú v podstate dokumenty s verziou, ktoré sú kolekciami iných kolekcií kľúč-hodnota. Pološtruktúrované dokumenty sú uložené vo formátoch ako JSON.
  3. Databáza grafovs sú postavené s uzlami, vzťahmi medzi poznámkami a vlastnosťami uzlov. Namiesto tabuliek riadkov a stĺpcov a pevnej štruktúry SQL sa používa flexibilný grafový model, ktorý možno škálovať na mnohých strojoch.

Hlavní hráči NoSQL

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

  • Dynamo: Dynamo vytvoril Amazon.com a je najvýznamnejšou databázou Key-Value NoSQL. Amazon potreboval vysoko škálovateľnú distribuovanú platformu pre svoje podnikanie v oblasti elektronického obchodu, takže vyvinul Dynamo. Amazon S3 používa ako úložný mechanizmus Dynamo.
  • Cassandra:Cassandra bol otvorený od Facebooku a ide o stĺpcovo orientovanú NoSQL databázu.
  • BigTable: BigTable je vlastná databáza spoločnosti Google zameraná na stĺpce. Google povoľuje používanie BigTable, ale iba pre Google App Engine.
  • SimpleDB: SimpleDB je ďalšia databáza Amazonu. Používa sa pre Amazon EC2 a S3 a je súčasťou Amazon Web Services, ktorá si účtuje poplatky v závislosti od používania.
  • CouchDB:CouchDB spolu s MongoDB sú open source dokumentovo orientované NoSQL databázy.
  • Neo4J:Neo4j je open source grafová databáza.

Dopytovanie NoSQL

Väčšinu vývojárov zaujíma otázka, ako dopytovať databázu NoSQL. Údaje uložené v obrovskej databáze totiž nikomu nerobia dobre, ak ich nemôžete získať a ukázať koncovým používateľom alebo webovým službám. Databázy NoSQL neposkytujú vysokoúrovňový deklaratívny dopytovací jazyk ako SQL. Namiesto toho je dopytovanie týchto databáz špecifické pre dátový model.

Mnohé platformy NoSQL umožňujú RESTful rozhrania k údajom. Iné rozhrania API dotazov na ponuku. Existuje niekoľko nástrojov na vyhľadávanie, ktoré boli vyvinuté a ktoré sa pokúšajú dotazovať viacero databáz NoSQL. Tieto nástroje zvyčajne fungujú v rámci jednej kategórie NoSQL. Jedným z príkladov je SPARQL. SPARQL je deklaratívna špecifikácia dotazu určená pre grafové databázy. Tu je príklad dotazu SPARQL, ktorý načíta adresu URL konkrétneho blogera (s láskavým dovolením IBM):

PREFIX foaf: 
VYBERTE ?url
OD
KDE {
?prispievateľ: meno "Jon Foobar" .
?foaf prispievateľa: weblog ?url .
}

Budúcnosť NoSQL

Organizácie, ktoré potrebujú veľké úložisko dát, sa vážne pozerajú na NoSQL. Zdá sa, že tento koncept sa v menších organizáciách až tak neprejavuje. V prieskume, ktorý uskutočnil Information Week, 44 % podnikových IT profesionálov nepočulo o NoSQL. Ďalej len 1 % respondentov uviedlo, že NoSQL je súčasťou ich strategického smerovania. Je zrejmé, že NoSQL má svoje miesto v našom prepojenom svete, ale bude sa musieť naďalej vyvíjať, aby získal masovú príťažlivosť, o ktorej si mnohí myslia, že by mohol mať.