Skratka NoSQL bola vytvorená v roku 1998. Mnoho ľudí si myslí, že NoSQL je hanlivý výraz vytvorený na to, aby sa šúchal do 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.
NoSQL sa vynorilo z potreby
Ukladanie údajov: Svetové uložené digitálne údaje sa merajú v exabajtoch. Exabajt sa rovná jednej miliarde gigabajtov (GB) údajov. Podľa Internet.com bolo množstvo uložených dát pridaných v roku 2006 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é dáta: Dáta sú stále viac prepojené. Tvorba 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 jednoducho 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émantickom webe.
Č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é množiny údajov.
NoSQL Categories
Súčasný svet NoSQL zapadá do 4 základných kategórií.
- Obchody s kľúčovými hodnotami sú založené predovšetkým na Amazone Dynamo Paper, 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.
- Databáze dokumentov boli inšpirované Lotus Notes a sú podobné obchodom s hodnotou kľúča. 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.
- Grafická databázas sú zostavené 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 počítačoch.
Stĺpec Family Stores bol vytvorený na ukladanie a spracovanie veľkého množstva údajov distribuovaných na mnohých počítačoch. 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 skupiny stĺpcov.
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 NoSQL databázou kľúč-hodnota. Amazon potreboval vysoko škálovateľnú distribuovanú platformu pre svoje podnikanie v oblasti elektronického obchodu, takže vyvinul Dynamo. Amazon S3 používa Dynamo ako mechanizmus ukladania.
- Cassandra: Cassandra pochádza 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
Otázka, ako dopytovať databázu NoSQL, je to, čo zaujíma väčšinu vývojárov. Údaje uložené v obrovskej databáze totiž nerobia nikomu dobre, ak ich nemôžete získať a ukázať koncovým používateľom alebo webové služby. NoSQL databázy neposkytujú vysokoúrovňový deklaratívny dopytovací jazyk ako SQL. Namiesto toho je dopytovanie v týchto databázach> PREFIX foaf:
SELECT ?url
FROM
WHERE {
?foaf prispievateľa: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ť.