Výukový program NoSQL: Co je to, typy databází NoSQL a příklad
Co je NoSQL?
NoSQL Databáze je nerelační systém správy dat, který nevyžaduje pevné schéma. Vyhýbá se spojům a snadno se škáluje. Hlavním účelem použití databáze NoSQL je distribuovaná úložiště dat s obrovskými potřebami ukládání dat. NoSQL se používá pro velká data a webové aplikace v reálném čase. Například společnosti jako Twitter, Facebook a Google shromažďují každý den terabajty uživatelských dat.
NoSQL databáze znamená „Not Only SQL“ nebo „Not SQL“. I když lepší termín by byl „NoREL“, NoSQL se chytlo. Carl Strozz představil koncept NoSQL v roce 1998.
Tradiční RDBMS používá syntaxi SQL k ukládání a získávání dat pro další přehled. Místo toho databázový systém NoSQL zahrnuje širokou škálu databázových technologií, které mohou ukládat strukturovaná, polostrukturovaná, nestrukturovaná a polymorfní data. Pojďme porozumět NoSQL pomocí diagramu v tomto kurzu databáze NoSQL:
Proč NoSQL?
Koncept NoSQL databází si oblíbili internetoví giganti jako Google, Facebook, Amazonatd., kteří se zabývají obrovskými objemy dat. Při použití RDBMS pro velké objemy dat se doba odezvy systému zpomalí.
Abychom tento problém vyřešili, mohli bychom „rozšířit“ naše systémy upgradem našeho stávajícího hardwaru. Tento proces je drahý.
Alternativou pro tento problém je rozložení zatížení databáze na více hostitelů, kdykoli se zatížení zvýší. Tato metoda je známá jako „zmenšování“.
Databáze NoSQL je nerelační, takže se lépe škáluje než relační databáze, protože jsou navrženy s ohledem na webové aplikace.
Stručná historie NoSQL databází
- 1998 – Carlo Strozzi používá termín NoSQL pro svou odlehčenou relační databázi s otevřeným zdrojovým kódem
- 2000- Databáze grafů Neo4j je spuštěn
- 2004 – Spuštění Google BigTable
- 2005- CouchDB je spuštěna
- 2007- Výzkumný dokument o Amazon Dynamo je propuštěno
- 2008 – Facebook open source Cassandra projekt
- 2009- Znovu byl zaveden termín NoSQL
Vlastnosti NoSQL
Nerelační
- NoSQL databáze nikdy nedodržují relační model
- Nikdy neposkytujte tabulky s plochými záznamy s pevným sloupcem
- Práce se samostatnými agregáty nebo BLOBy
- Nevyžaduje objektově relační mapování a normalizaci dat
- Žádné složité funkce, jako jsou dotazovací jazyky, plánovače dotazů, spojení referenční integrity, ACID
Bez schématu
- Databáze NoSQL jsou buď bez schémat, nebo mají uvolněná schémata
- Nevyžadujte žádnou definici schématu dat
- Nabízí heterogenní struktury dat ve stejné doméně
Jednoduché API
- Nabízí snadno použitelná rozhraní pro ukládání a dotazování poskytnutých dat
- Rozhraní API umožňují nízkoúrovňovou manipulaci s daty a metody výběru
- Textové protokoly většinou používané s HTTP REST s JSON
- Většinou nepoužíval žádný standardní dotazovací jazyk NoSQL
- Webové databáze běžící jako internetové služby
Distribuováno
- Distribuovaným způsobem lze spustit více databází NoSQL
- Nabízí automatické škálování a možnosti převzetí služeb při selhání
- Koncept ACID může být často obětován pro škálovatelnost a propustnost
- Většinou žádná synchronní replikace mezi distribuovanými uzly Asynchronní multi-master replikace, peer-to-peer, HDFS replikace
- Poskytuje pouze případnou konzistenci
- Sdíleno nic Architecture. To umožňuje menší koordinaci a vyšší distribuci.
Typy NoSQL databází
NoSQL databáze jsou hlavně rozděleny do čtyř typů: pár klíč-hodnota, orientovaný na sloupce, na graf a na dokument. Každá kategorie má své jedinečné vlastnosti a omezení. Žádná z výše uvedených databází není lepší pro vyřešení všech problémů. Uživatelé by si měli vybrat databázi na základě svých potřeb produktu.
Typy NoSQL databází:
- Na základě páru klíč–hodnota
- Sloupcově orientovaný graf
- Na základě grafů
- Orientace na dokumenty
Na základě páru klíčových hodnot
Data jsou uložena v párech klíč/hodnota. Je navržen tak, aby zvládl velké množství dat a velkou zátěž.
Databáze úložiště párů klíč-hodnota ukládají data jako hashovací tabulku, kde je každý klíč jedinečný a hodnota může být JSON, BLOB (binární velké objekty), řetězec atd.
Pár klíč–hodnota může například obsahovat klíč jako „Web“ spojený s hodnotou jako „Guru99“.
Je to jeden z nejzákladnějších příkladů databáze NoSQL. Tento druh databáze NoSQL se používá jako kolekce, slovníky, asociativní pole atd. Úložiště klíčových hodnot pomáhá vývojářům ukládat data bez schémat. Nejlépe fungují pro obsah nákupního košíku.
Redis, Dynamo, Riak jsou některé příklady NoSQL databází úložiště klíč-hodnota. Všechny jsou založeny na AmazonPapír Dynamo.
Na základě sloupců
Databáze orientované na sloupce fungují na sloupcích a jsou založeny na papíru BigTable od společnosti Google. Každý sloupec je zpracován samostatně. Hodnoty jednosloupcových databází jsou uloženy souvisle.
Poskytují vysoký výkon při agregačních dotazech jako SUM, COUNT, AVG, MIN atd., protože data jsou snadno dostupná ve sloupci.
Sloupcové databáze NoSQL se široce používají ke správě datových skladů, business intelligence, CRM, katalogy knihovních průkazů,
HBase, Cassandra, HBase, Hypertable jsou příklady NoSQL dotazů databáze založené na sloupcích.
Orientace na dokumenty
NoSQL DB orientovaná na dokumenty ukládá a načítá data jako pár klíč hodnota, ale část hodnoty je uložena jako dokument. Dokument je uložen ve formátu JSON nebo XML. Hodnotu rozumí DB a lze se na ni dotazovat.
V tomto diagramu vlevo vidíte, že máme řádky a sloupce, a vpravo máme databázi dokumentů, která má podobnou strukturu jako JSON. Nyní pro relační databázi, musíte vědět, jaké máte sloupce a tak dále. Pro databázi dokumentů však máte úložiště dat jako objekt JSON. Nemusíte definovat, díky kterým je flexibilní.
Typ dokumentu se většinou používá pro systémy CMS, blogovací platformy, analýzy v reálném čase a aplikace elektronického obchodování. Nemělo by se používat pro složité transakce, které vyžadují více operací nebo dotazů proti různým agregovaným strukturám.
Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, jsou populární Document originated DBMS systémy.
Na základě grafu
Databáze typu grafu ukládá entity i vztahy mezi těmito entitami. Entita je uložena jako uzel se vztahem jako hrany. Hrana dává vztah mezi uzly. Každý uzel a hrana má jedinečný identifikátor.
Ve srovnání s relační databází, kde jsou tabulky volně propojeny, má databáze Graph multirelační povahu. Přechodový vztah je rychlý, protože jsou již zachyceny v DB a není třeba je počítat.
Databázový základ grafů se většinou používá pro sociální sítě, logistiku, prostorová data.
Neo4J, nekonečný graf, OrientDB, FlockDB jsou některé populární databáze založené na grafech.
Nástroje Query Mechanism pro NoSQL
Nejběžnějším mechanismem získávání dat je získávání hodnoty založené na REST na základě jejího klíče/ID se zdrojem GET.
Databáze úložiště dokumentů nabízí složitější dotazy, protože rozumí hodnotě v páru klíč-hodnota. Například, CouchDB umožňuje definovat pohledy pomocí MapReduce
Co je teorém CAP?
CAP teorém se také nazývá brewerův teorém. Uvádí, že distribuované úložiště dat nemůže nabídnout více než dvě ze tří záruk
- Konzistence
- Dostupnost
- Tolerance oddílů
Konzistence:
Data by měla zůstat konzistentní i po provedení operace. To znamená, že jakmile jsou data zapsána, jakýkoli budoucí požadavek na čtení by měl tato data obsahovat. Například po aktualizaci stavu objednávky by všichni klienti měli vidět stejná data.
Dostupnost:
Databáze by měla být vždy dostupná a reagovat. Neměl by mít žádné prostoje.
Tolerance oddílů:
Tolerance oddílů znamená, že systém by měl nadále fungovat, i když komunikace mezi servery není stabilní. Servery mohou být například rozděleny do několika skupin, které spolu nemusí komunikovat. Zde platí, že pokud je část databáze nedostupná, ostatní části nejsou vždy ovlivněny.
Případná konzistence
Termín „případná konzistence“ znamená mít kopie dat na více strojích, aby byla zajištěna vysoká dostupnost a škálovatelnost. Změny provedené v jakékoli datové položce na jednom počítači se tedy musí šířit do dalších replik.
Replikace dat nemusí být okamžitá, protože některé kopie budou aktualizovány okamžitě, zatímco jiné časem. Tyto kopie mohou být vzájemně, ale časem se stanou konzistentními. Proto název eventuální konzistence.
BÁZE: Basticky Ak dispozici, Sčasto stát, Eventivní konzistence
- V zásadě dostupný znamená, že DB je k dispozici neustále podle teorému CAP
- Měkký stav znamená i bez vstupu; stav systému se může změnit
- Případná konzistence znamená, že systém se časem stane konzistentním
Výhody NoSQL
- Může být použit jako primární nebo analytický zdroj dat
- Schopnost velkých dat
- Žádný jediný bod selhání
- Snadná replikace
- Není potřeba samostatná mezipaměťová vrstva
- Poskytuje rychlý výkon a horizontální škálovatelnost.
- Dokáže zpracovat strukturovaná, polostrukturovaná a nestrukturovaná data se stejným účinkem
- Objektově orientované programování, které se snadno používá a je flexibilní
- Databáze NoSQL nepotřebují vyhrazený vysoce výkonný server
- Podpora klíčových vývojářských jazyků a platforem
- Jednoduchá implementace než použití RDBMS
- Může sloužit jako primární zdroj dat pro online aplikace.
- Zpracovává velká data, která řídí rychlost, rozmanitost, objem a složitost dat
- Exceluje v distribuovaných databázích a operacích s více datovými centry
- Eliminuje potřebu specifické vrstvy mezipaměti pro ukládání dat
- Nabízí flexibilní návrh schématu, který lze snadno změnit bez prostojů nebo přerušení provozu
Nevýhody NoSQL
- Žádná standardizační pravidla
- Omezené možnosti dotazů
- RDBMS databáze a nástroje jsou poměrně vyspělé
- Nenabízí žádné tradiční databázové funkce, jako je konzistence při provádění více transakcí současně.
- Když se objem dat zvyšuje, je obtížné udržovat jedinečné hodnoty, protože klíče se stávají obtížnějšími
- Nefunguje tak dobře s relačními daty
- Křivka učení je pro nové vývojáře tuhá
- Open source možnosti, které nejsou tak populární pro podniky.
Shrnutí
- NoSQL je nerelační DMS, který nevyžaduje pevné schéma, vyhýbá se spojením a je snadno škálovatelný
- Koncept NoSQL databází si oblíbili internetoví giganti jako Google, Facebook, Amazonatd., kteří se zabývají obrovskými objemy dat
- V roce 1998 - Carlo Strozzi použil termín NoSQL pro svou lehkou, open-source relační databázi
- Databáze NoSQL nikdy nedodržují relační model, jsou buď bez schémat, nebo mají uvolněná schémata
- Čtyři typy NoSQL databáze jsou 1). Na základě páru klíč–hodnota 2). Sloupcově orientovaný graf 3). Na základě grafů 4). Orientace na dokumenty
- NOSQL dokáže zpracovat strukturovaná, polostrukturovaná a nestrukturovaná data se stejným účinkem
- Teorém CAP se skládá ze tří slov Konzistence, Dostupnost a Tolerance oddílu
- BASE znamená Basticky Ak dispozici, Sčasto stát, Eventivní konzistence
- Termín „případná konzistence“ znamená mít kopie dat na více strojích, aby byla zajištěna vysoká dostupnost a škálovatelnost
- NOSQL nabízejí omezené možnosti dotazů