Databáze NoSQL – co je 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
NoSQL (nerelační) | SQL (relační) | |
---|---|---|
NEJVHODNĚJŠÍ PRO: |
|
|
SCÉNÁŘE: |
|
|
ŠKÁLOVÁNÍ: |
|
|
DATOVÝ MODEL: |
|
|
|
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.
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.
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í.