Přehled databází NoSQL

Akronym NoSQL byl vytvořen v roce 1998. Mnoho lidí si myslí, že NoSQL je hanlivý termín vytvořený pro poke v SQL. Ve skutečnosti termín znamená nejen SQL. Myšlenka spočívá v tom, že obě technologie mohou existovat společně a každý má své místo. Hnutí NoSQL se v posledních několika letech stalo novinkou, protože mnoho vedoucích pracovníků Web 2.0 přijalo technologii NoSQL. Společnosti jako Facebook, Twitter, Digg, Amazon, LinkedIn a Google všechny používají NoSQL tak či onak.

Rozčleňme NoSQL, abyste to mohli vysvětlit vašemu CIO nebo dokonce vašim spolupracovníkům.

NoSQL se vynořil z potřeby

Ukládání dat: Uložená digitální data na světě jsou měřena v exabytech. Exabyte se rovná jedné miliardě gigabajtů (GB) dat. Podle Internet.com bylo množství uložených dat v roce 2006 161 exabytů. O 4 roky později v roce 2010 bude množství uložených dat téměř 1,000 ExaBytes, což je nárůst o více než 500%. Jinými slovy, je ve světě uloženo velké množství dat, které budou pokračovat v růstu.

Propojená data: Data se stále více propojují. Vytvoření webu podporovaného v hypertextových linkách, blogy má pingbacks a každý hlavní systém sociální sítě má tagy, které spojují věci dohromady. Hlavní systémy jsou postaveny tak, aby byly propojeny.

Komplexní datová struktura: NoSQL dokáže snadno zpracovat hierarchické vnořené datové struktury. Chcete-li provést stejnou věc v SQL, budete potřebovat více relačních tabulek se všemi druhy kláves.

Navíc existuje vztah mezi výkonností a složitostí dat. Výkon může v tradičním RDBMS narušit, protože ukládáme obrovské množství dat požadovaných v aplikacích pro sociální sítě a sémantickém webu.

Co je to NoSQL?

Myslím, že jedním ze způsobů, jak definovat NoSQL, je zvážit, co to není.

Není to SQL a není to relační. Stejně jako název napovídá, není to náhradou RDBMS, ale komplimenty. NoSQL je určen pro distribuované datové úložiště pro velmi rozsáhlé datové potřeby. Přemýšlejte o Facebooku se svými 500 000 000 uživateli nebo Twitter, které každým dnem hromadí Terabity dat.

V databázi NoSQL neexistuje žádný pevný schéma ani žádné spoje. RDBMS se "zvětší" tím, že získává rychlejší a rychlejší hardware a přidává paměť. Na druhou stranu může společnost NoSQL využívat možnosti "škálování". Změna měřítka se týká rozložení zatížení v mnoha komoditních systémech. Toto je součást aplikace NoSQL, která z ní činí levné řešení pro velké datové množiny.

Kategorie NoSQL

Současný svět NoSQL se vejde do 4 základních kategorií.

  1. Klíčové hodnoty Obchody jsou založeny především na dynamickém papíru společnosti Amazon, který byl vytvořen v roce 2007. Hlavní myšlenkou je existence tabulky hash, kde existuje jedinečný klíč a ukazatel na konkrétní položku dat. Tato mapování jsou obvykle doprovázena mechanismy vyrovnávací paměti pro maximalizaci výkonu.
    Rodinné prodejny sloupců byly vytvořeny pro ukládání a zpracování velkého množství dat distribuovaných na mnoha strojích. K dispozici jsou ještě klíče, ale ukazují na několik sloupců. V případě modelu BigTable (rodina rodiny NoSQL společnosti Google) jsou řádky označeny řádkovým klíčem s daty seřazenými a uloženými tímto klíčem. Sloupce jsou uspořádány podle rodiny sloupců.
  1. Databáze dokumentů byly inspirovány serverem Lotus Notes a jsou podobné obchodům s klíčovými hodnotami. Model je v podstatě verzí dokumentů, které jsou kolekcemi jiných sbírek klíčových hodnot. Semistrukturované dokumenty jsou uloženy ve formátech jako JSON.
  2. Grafové databáze jsou vytvořeny s uzly, vztahy mezi poznámkami a vlastnostmi uzlů. Namísto tabulek řádků a sloupců a rigidní struktury SQL se používá flexibilní model grafu, který může měřit na mnoha strojích.

Hlavní hráči NoSQL

Hlavní hráči v systému NoSQL se objevili především kvůli organizacím, které je přijaly. Některé z největších technologií NoSQL zahrnují:

Dotazování NoSQL

Otázka, jak dotazovat databázi NoSQL, je to, co většina vývojářů zajímá. Koneckonců, data uložená v obrovské databázi nikomu nic neudělá, pokud ji nemůžete načíst a ukázat koncovým uživatelům nebo webovým službám. Databáze systému NoSQL neposkytují jazykový dotazovací jazyk na vysoké úrovni, jako je SQL. Místo toho je dotazování na tyto databáze specifické pro datový model.

Mnoho z NoSQL platforem umožňuje RESTful rozhraní k datům. Jiné rozhraní API pro dotaz nabídky. Existuje několik dotazovacích nástrojů, které byly vyvinuty, které se pokoušejí dotazovat více databází NoSQL. Tyto nástroje obvykle pracují v jedné kategorii NoSQL. Jedním z příkladů je SPARQL. SPARQL je deklarativní specifikace dotazu určená pro databáze grafů. Zde je příklad dotazu SPARQL, který vyhledává adresu URL konkrétního bloggeru (s laskavým svolením společnosti IBM):

PREFIX foaf:
SELECT? Url
FROM
WHERE {
? přispěvatel foaf: jméno "Jon Foobar".
? přispěvatel foaf: weblog? url.
}}

Budoucnost služby NoSQL

Organizace, které mají obrovské potřeby ukládání dat, se v NoSQL vážně zabývají. Zdá se, že koncept není v menších organizacích tak silný. V průzkumu provedeném Informačním týdnem 44% obchodních IT odborníků o NoSQL neslyšel. Dále jen 1% respondentů uvedlo, že NoSQL je součástí jejich strategického směru. Je zřejmé, že NoSQL má své místo v našem propojeném světě, ale bude se muset i nadále rozvíjet, aby získalo masové odvolání, které si mnozí myslí, že by to mohlo mít.