Kdy použít MongoDB: výhody a případy použití
Je snadné nechat se unést nejnovějšími módními slovy a používat inovativní technologie, ale to může vést k bolestem hlavy, pokud pro svůj úkol použijete nesprávný nástroj. MongoDB přišla s horkou novinkou a upevnila si dominanci ve světě databází NoSQL, když v roce 2018 vstoupila na burzu. V tomto článku se budeme zabývat tím, co jsou databáze NoSQL a jak se liší od databází SQL. Poté se dotkneme toho, čím se MongoDB v prostředí NoSQL odlišuje. Na závěr uvedeme několik případů použití MongoDB a probereme běžná úskalí při používání této databázové technologie.
Další informace o nativním konektoru MongoDB společnosti Xplenty najdete na naší stránce Integrace.
Obsah
- NoSQL vs SQL databáze
- MongoDB:
- Případy použití MongoDB
ZJISTĚTE, ZDA MŮŽEME INTEGROVAT VAŠE DATA
DŮVĚŘUJÍ NÁM SPOLEČNOSTI PO CELÉM SVĚTĚ
Zajímá vás tento článek?
Získávejte každý týden skvělý obsah s Xplenty Newsletter!
NoSQL vs. SQL databáze
MongoDB je NoSQL databáze. To znamená, že k interakci s daty v databázi nepoužíváte jazyk SQL. Místo toho používáte NoSQL.
Prvním rozdílem, který je třeba probrat, je slovník. V SQL používáme tabulky. V NoSQL používáme kolekce. V SQL se tabulky skládají ze záznamů/řádků, v NoSQL jsou kolekce dokumenty.
Chcete-li se dotazovat v MongoDB, musíte použít syntaxi NoSQL. Zde je příklad dotazu SQL a odpovídajícího dotazu NoSQL:
SQL:
SELECT * FROM users WHERE age > 65;
NoSQL:
users.find({age: {$gt: 65} });
Všimněte si, že dotazovací jazyk považuje kolekci za objekt, na který se aplikují akce. Je to proto, že MongoDB je bezschémová databáze a předpokládá, že nebude potřeba komunikovat s jinými kolekcemi. Syntaxe SQL očekává, že uživatelé budou provádět JOIN na jiné relace v databázi, a proto to syntaxe umožňuje. Podobný vzorec je i při pokusu o INSERT:
SQL:
INSERT INTO users (id, age) VALUES (1, 70);
NoSQL:
users.insert({id: 1, age: 70});
Výraznost definovaného schématu je u SQL INSERT zřejmá, protože vybrané sloupce musí existovat v tabulce users. U příkazu NoSQL nemusí sloupce id a age v kolekci předem existovat. Ve skutečnosti můžete provést další INSERT do této kolekce s jinými poli. Například můžeme spustit následující příkaz na stejnou kolekci users, kterou jsme použili výše:
users.insert({first_name: "Annie", zip_code: "10005"})
MongoDB a další databáze NoSQL jsou databáze bez schémat. To znamená, že uživatelé mohou ukládat nestrukturovaná data. Tato funkce je požehnáním i prokletím zároveň – flexibilita usnadňuje ukládání dat, ale také ztěžuje jejich organizaci.
Podrobnou analýzu zásadních rozdílů mezi SQL a NoSQL najdete v tomto příspěvku na blogu.
ZJISTĚTE, ZDA MŮŽEME INTEGROVAT VAŠE DATA
DŮVĚŘUJÍ NÁM SPOLEČNOSTI PO CELÉM SVĚTĚ
Zajímá vás tento článek?
Získávejte každý týden skvělý obsah s Xplenty Newsletter!
Kdo by měl používat MongoDB
Po několik let byla MongoDB v mnoha kruzích synonymem pro NoSQL. Díky svým agresivním marketingovým kampaním a schopnosti prosadit se u několika technologicky vlivných osobností mohla získat velkou část tohoto „nového“ trhu. S tím, jak se rozšiřovala, se objevovaly pochybnosti o její životaschopnosti pro určité aplikace. Stal se užitečným nástrojem pro lidi, kteří „chtěli jen zprovoznit svou aplikaci“ a o analýzu dat se starat později.
Tento přístup byl přijatelný a dával smysl mnoha vývojářům softwaru. Nakonec se ale kuřata vrátila domů a ukázalo se, že MongoDB není nejlepší volbou pro každého. Někteří inženýři, kteří přijali MongoDB včas, se mohli do této technologie opřít a přizpůsobit se jejím vylepšením, zatímco mnoho jiných podstoupilo masivní úsilí, aby z ní přešli. Stejně jako u každého softwaru platí: Your Mileage May Vary (YMMV), takže je nutné kriticky přemýšlet o službách, které používáte.
Ve světě dokumentových databází se objevily další možnosti. Například Postgres odhalil typ sloupce JSON. Ten umožnil uživatelům Postgresu ukládat nestrukturovaná data uvnitř relační databáze. Redis se také objevil jako užitečná alternativa pro uživatele, kteří potřebovali úložiště klíčových hodnot. Více informací o rozdílech mezi MongoDB a Redis najdete zde. A jak už to u většiny úspěšných softwarových projektů bývá, společnost AWS vydala vlastní databázi dokumentů s názvem DocumentDB, která je užitečná pro lidi, kteří chtějí zůstat u nativních aplikací AWS.
Přes rostoucí konkurenci MongoDB stále kraluje ve světě NoSQL/dokumentových databází a neustále vylepšuje své služby, například je kompatibilní s ACID. Také v oblasti podpory cloudových aplikací se MongoDB snaží podporovat distribuované databáze a datová jezera.
Případy použití MongoDB
MongoDB je skvělá databáze pro webové aplikace, zejména pokud aplikace obsluhuje mnoho uživatelů, kteří spolu neinteragují. Vzpomeňte si na aplikace finančních služeb, kde uživatelé potřebují přístup pouze ke svým vlastním datům. Nebo aplikace pro blogování, kde se uživatelé chtějí přihlašovat a vytvářet/editovat své vlastní blogy. Klíčovým poznatkem je, že uživatelé spolu neinteragují. V relační databázi by bylo nutné ukládat informace o uživateli v několika tabulkách. Když se uživatel přihlásí, aplikace by musela provést několik dotazů nebo složitých dotazů JOIN, aby získala přístup ke všem informacím o daném uživateli. Bezschématická dokumentová databáze MongoDB umožňuje ukládat všechny informace o uživateli pohromadě. To by umožnilo jediný dotaz na jedinou kolekci a front-end by se mohl zabývat zobrazením/úpravou dat.
Dalším vynikajícím případem použití MongoDB je snaha o začlenění mnoha datových sad. Její bezschématický design umožňuje flexibilitu při ukládání dat. Můžete tak ukládat data z několika zdrojů dat (webové stránky, databáze, kanály RSS atd.) na jedno místo a pak nad novou databází vytvářet služby, které je budou všechny analyzovat. Například společnost Xplenty nabízí tuto integraci pro MongoDB.
MongoDB je skvělá databáze pro integraci geoprostorových dat s jinými typy dat. Pokud je například „poloha“ součástí metadat, se kterými pracujete, MongoDB podporuje typy GeoJSON, takže můžete efektivně ukládat zeměpisnou šířku a délku. Kromě toho MongoDB podporuje indexy 2DSphere, které optimalizují geometrické výpočty na sféře.
Závěr
MongoDB je výkonná databáze s mnoha možnostmi. Jako společnost stojí v čele popularizace databází NoSQL a dokumentových databází. Jako databáze rozšířila naše chápání nejlepších postupů ukládání dat a prosadila se v mnoha aplikacích po celém světě.
MongoDB nabízí také bezplatnou verzi s otevřeným zdrojovým kódem, která je vynikající volbou pro týmy s omezeným rozpočtem, které si mohou postavit databázový server na místě nebo v cloudu. Pokud s tím chcete získat podporu, pomůže vám společnost Xplenty. Známe výzvy spojené s ukládáním, integrací a analýzou dat. Ať už potřebujete poradit s výběrem správných nástrojů pro ukládání dat nebo pomoci s migrací dat do nového řešení, domluvte si telefonát se společností Xplenty a zjistěte, jak pro vás může fungovat naše uživatelsky přívětivé řešení ETL.