Databáze NoSQL

Úvodní přehled

Co jsou databáze NoSQL?

Databáze NoSQL se označují také jako „nerelační“, „NoSQL DB“ nebo „jiné než SQL“. Tyto výrazy zdůrazňují skutečnost, že dokáží zpracovávat obrovské objemy rychle se měnících nestrukturovaných dat jinými způsoby než relační databáze (SQL) s řádky a tabulkami.

Technologie NoSQL jsou tu pod různými názvy již od šedesátých let minulého století, ale v současné době zažívají prudký růst popularity s tím, jak se mění prostředí dat a vývojáři se potřebují adaptovat, aby si poradili s obrovskými objemy a širokou škálou dat generovaných cloudy, mobilními zařízeními, sociálními médii a velkými objemy dat.

Ať už jde o virální tweety celebrit nebo život zachraňující informace v elektronických lékařských záznamech, nová data a nové datové typy se generují závratným tempem. Databáze NoSQL se vyvinuly tak, že vývojářům pomáhají rychle vytvářet databázové systémy pro ukládání nových informací a jejich přípravu pro vyhledávání, konsolidaci a analýzu.

Výhody databází NoSQL

Databáze NoSQL pomáhají IT profesionálům a vývojářům zvládat nové výzvy související s neustále se zvětšující rozmanitostí datových typů a modelů a jsou vysoce efektivní při zpracování nepředvídatelných dat, a to často s mimořádnou rychlostí dotazů. Nabízejí také hladkou migraci databází do cloudu pro stávající úlohy NoSQL.

Flexibilní vývoj

Díky schopnosti reagovat na neplánované situace databáze NoSQL vyhovují častým cyklům vydávání softwaru a jsou vhodné pro rychlejší a flexibilnější vývoj aplikací.

Flexibilní zpracování dat

NoSQL nabízí vývojářům volnější, rychlejší a flexibilnější možnosti změn schématu i dotazů s ohledem na požadavky na data. Informace uložené v podobě agregace usnadňují rychlé iterativní vylepšování bez nutnosti předem navrhovat schéma.

Provoz v libovolném měřítku

Databáze NoSQL můžou poskytovat zajímavé provozní výhody a úspory díky možnosti horizontálního navýšení kapacity nebo přidání levnějších serverů bez nutnosti upgradu. Dokáží se škálovat tak, aby zvládaly více dat nebo mohly udržovat jednu velkou databázi v rámci vysoce distribuovatelných clusterů serverů.

Typy datových modelů u databází NoSQL

Většina nerelačních, vysoce výkonných databází (někdy označovaných jako „nejen SQL“) dokáže zpracovávat také vysoce strukturovaná data, nejsou však omezené pevnými datovými modely jako relační databáze (SQL).

Čtyři nejběžnější typy databází NoSQL jsou následující:

Databáze párů klíč-hodnota

Databáze párů klíč-hodnota ukládají klíče a hodnoty s využitím zatřiďovací tabulky. Typy párů klíč-hodnota jsou nejlepší v případě, že je známý klíč a hodnota přidružená ke klíči je neznámá.

Databáze dokumentů

Databáze dokumentů rozšiřují koncept databází párů klíč-hodnota tím, že celé dokumenty uspořádávají do skupin označovaných jako kolekce. Podporují vnořené páry klíč-hodnota a umožňují dotazy na jakékoli atributy v rámci dokumentu.

Databáze sloupců

Databáze sloupců, širokých sloupců nebo rodin sloupců efektivně ukládají data a provádějí dotazy napříč řádky řídkých dat a jsou výhodné při dotazování napříč konkrétními sloupci v databázi.

Grafová databáze

Grafové databáze využívají model založený na uzlech a hranách, které představují vzájemně propojená data, jako jsou například vztahy mezi lidmi na sociální síti, a nabízejí zjednodušené úložiště a procházení složitých vztahů.

Jak zvolit mezi relačními (SQL) a nerelačními (NoSQL) databázemi

Není k dispozici NoSQL (nerelační) SQL (relační)
Nejvhodnější pro:
  • Zpracování velkých objemů vzájemně nesouvisejících, neurčitých nebo rychle se měnících dat
  • Data nezávislá na schématu nebo schéma určené aplikací
  • Aplikace, u kterých je důležitější výkon a dostupnost než silná konzistence
  • Neustále přístupné aplikace, které slouží uživatelům po celém světě
  • Zpracování dat, která jsou relační a mají logické a diskrétní požadavky, které je možné určit předem
  • Schéma, které je potřeba udržovat a synchronizovat mezi aplikací a databází
  • Starší systémy vytvořené pro relační struktury
  • Aplikace vyžadující komplexní dotazování nebo transakce s více řádky
Scénáře:
  • Mobilní aplikace
  • Analýzy v reálném čase
  • Správa obsahu
  • Přizpůsobení
  • Aplikace IoT
  • Migrace databází
  • Účetní, finanční a bankovní systémy
  • Systémy řízení zásob
  • Systémy správy transakcí
Škálování:
  • Horizontální škálování dat prostřednictvím horizontálního dělení napříč servery
  • Vertikální škálování dat prostřednictvím zvyšování zatížení serveru
Datový model:
  • Typy databáze: databáze párů klíč-hodnota, dokumentů, sloupců a grafové databáze
  • Ukládání dat v závislosti na typu databáze
  • Typ databáze: databáze tabulek řádků seskupených do vztahů
  • Používání jazyka SQL (Structured Query Language)
  • Ukládání dat ve formě řádků v tabulkách; odděleně uložená související data, která se v případě složitých dotazů spojují
Není k dispozici Další informace o nerelačních datových modelech Další informace o relačních datových modelech

Jak vyhodnotit databázi NoSQL?

Zvolte datový model

Řada databází NoSQL se zaměřuje na agregace, což jsou kolekce dat, se kterými pracujete jako s jednotkami. Díky tomu jsou mnohem vhodnější pro moderní objektově orientované programovací jazyky. Při výběru databáze NoSQL byste měli začít výběrem datového modelu a pak vyhodnotit databáze NoSQL, které ho podporují, a také programovací jazyky a sady SDK, které podporují jednotlivé databáze.

Další informace o programovacích modelech a rozhraních API

Zvažte kompromisy z hlediska konzistence

U většiny databází NoSQL si můžete vybrat z obou konců spektra konzistence – od silné konzistence, kde získáte nejnovější data, ale možná budete muset čekat, až po konečnou konzistenci, kde získáte rychlou odezvu, ale data můžou být zastaralá. Existuje také řada databází NoSQL, které podporují další úrovně konzistence, které obvykle spadají mezi tyto extrémy. Vyberte si databázi NoSQL, která vám v modelech konzistence poskytne nejvyšší úroveň flexibility a kontroly pro vaše potřeby.

Další informace o konzistenci, dostupnosti a toleranci oddílů

Zvažte cloud a migraci databází

Díky své distribuované povaze a možnosti horizontálního škálování jsou databáze NoSQL ideální pro cloud computing. Najdete však i řadu databázových systémů NoSQL určených k provozu v místním prostředí nebo v hybridních scénářích.

Při vyhodnocování vašich cloudových možností zvažte následující:

  • Podporované datové modely. Podporuje poskytovatel cloudových služeb všechny datové modely, které byste mohli chtít použít?
  • Nasazení a provoz. Jak snadno můžete nasadit svou databázi a v případě potřeby ji replikovat do jiných oblastí?
  • Geografická přítomnost. Kde se nacházejí datacentra poskytovatele cloudových služeb? Můžete svá data umístit kamkoli chcete? Jak zajistíte dodržování globálních nařízení o ochraně osobních údajů v datech, jako je GDPR Evropské unie?
  • Jednoduchost replikace. Jaký je postup replikace vaší databáze do jiné geografické oblasti?
  • Škálovatelnost. Umožňují vám prostředky databáze NoSQL zajistit dostatečný výkon a škálování s ohledem na růst? Budete mít možnost vertikálně navýšit nebo snížit kapacitu nebo horizontálně škálovat?
  • Vysoká dostupnost. Co se stane v případě neočekávaného selhání? Nabízí služba integrovanou vysokou dostupnost a zotavení po havárii?
  • Úrovně služeb. Jaké úrovně dostupnosti nebo záruky latence se nabízejí?
  • Ekosystém. Je databáze úzce integrovaná se zbytkem cloudové platformy a je možné ji rychle spojit za účelem vytváření nových řešení?

Způsoby použití databázových systémů NoSQL

Používání datových modelů založených na NoSQL se skvěle hodí pro společnosti, které chtějí vytvářet mobilní nebo webové aplikace, aplikace Internetu věcí (IoT) a hry, které k zajištění skvělých uživatelských prostředí vyžadují flexibilní, škálovatelné, vysoce výkonné a funkční databáze, ať už se jedná o hry, elektronické obchodování, analýzy velkých objemů dat, webové aplikace fungující v reálném čase nebo cokoli jiného.

Globální distribuce aplikací

Získejte více uživatelů, ať jsou kdekoli na světě, díky lepšímu výkonu aplikací z hlediska vysoké dostupnosti a zotavení po havárii.

Nabízení prostředí pro zákazníky fungujících v reálném čase

Databáze NoSQL vám umožní nabídnout možnosti přizpůsobení, doporučení v reálném čase a vylepšené uživatelské prostředí.

Přizpůsobení různorodým úlohám IoT

Okamžité a elastické škálování umožňuje zvládnout stabilní příjem dat s vysokými nároky na zápis a nabízí lepší výkon dotazů pro aplikace IoT.

Vylepšení aplikací elektronického obchodování

Díky flexibilním schématům a hierarchickým datům se NoSQL skvěle hodí k ukládání dat katalogů produktů, kde různé produkty mají různé atributy.

Oslovení hráčů novým obsahem

Poskytujte přizpůsobená prostředí s obsahem, jako jsou herní statistiky, integrace sociálních médií nebo žebříčky. Nízká latence a elastická škálovatelnost zajistí podporu provozních špiček při uvádění her na trh a během turnajů.

Vytváření bezserverových aplikací

Okamžitá dostupnost, automatické indexování, stabilní rychlost příjmu a výkon dotazů umožňují bezproblémové škálování příjmu dat, propustnosti a datových svazků.

Získání lepších přehledů z velkých objemů dat

Implementujte strojové učení ve velkém měřítku napříč rychle se měnícími velkoobjemovými daty a využijte analýzy na maximum.

Migrace stávajících úloh NoSQL do cloudu

Věnujte méně času správě místní databáze s využitím migrace do cloudu a používejte dál své stávající nástroje, ovladače, knihovny a sady SDK.

Začínáme s NoSQL a migrací databází do cloudu

Zjistěte, jak vyvíjet aplikace s využitím nových flexibilních a škálovatelných možností správy databázových systémů a různorodých datových typů a možnosti migrace databází do cloudu pro stávající úlohy NoSQL. Získejte technický přehled služby Azure Cosmos DB pro vývojáře a zjistěte více o nativní podpoře NoSQL v globálně distribuované, vícemodelové databázové službě s rozsáhlou škálovatelností.

Další informace o službě Azure Cosmos DB pro data NoSQL

Další informace