sql >> Databáze >  >> NoSQL >> MongoDB

Faktory, které je třeba zvážit při výběru MongoDB pro aplikace s velkým objemem dat

Technologický pokrok přinesl výhody, než které musí obchodní organizace využívat k dosažení maximální hodnoty zisku a snížení provozních nákladů. Data byla páteří těchto technologických pokroků, z nichž jsou odvozeny sofistikované postupy k dosažení konkrétních cílů. Jak technologie postupuje, do systémů se dostává více dat. Kromě toho, jak firma roste, je potřeba více dat a nastavení obslužného systému musí být rychlé, musí být spolehlivé při ukládání a nabízet optimální zabezpečení pro tato data. MongoDB je jedním ze systémů, kterým lze důvěřovat při dosahování těchto faktorů.

Velká data jsou velká data, která se rychle mění, jsou rychle dostupná a vysoce dostupná pro efektivní řešení potřeb. Obchodní organizace mají tendenci křížově zkoumat dostupná databázová nastavení, která by postupem času poskytovala nejlepší výkon, a následně realizovat určitou hodnotu z velkých dat.

Například online trhy sledují prokliky klientů na webu, kupní sílu a získaná data pak používají k navrhování jiného zboží jako způsob reklamy nebo využívají data k tvorbě cen. Roboti se učí pomocí strojového učení a tento proces samozřejmě zahrnuje shromažďování velkého množství dat, protože robot by si to, co se naučil, musel uchovávat v paměti pro pozdější použití. Uchovat tento druh komplexních dat pomocí tradičního databázového softwaru je považováno za nepraktické.

Charakteristika velkých dat

V softwarových systémech uvažujeme velká data z hlediska velikosti, rychlosti přístupu a příslušných typů dat. To lze relativně zredukovat na 3 parametry: 

  1. Hlasitost
  2. Rychlost
  3. Rozmanitost

Hlasitost

Objem je velikost zahrnutých velkých dat a pohybuje se od gigabajtů po terabajty nebo více. Velké společnosti denně přijímají terabajty dat ze svých každodenních operací. Například telekomunikační společnost by ráda evidovala hovory uskutečněné od začátku svého provozu, odeslané zprávy a jak dlouho jednotlivé hovory trvaly. Na denní bázi existuje mnoho těchto činností, které se odehrávají, což vede k velkému množství dat. Data mohou být použita při statistické analýze, rozhodování a plánování tarifů.

Rychlost

Zvažte platformy, jako je obchodování na Forexu, které vyžadují aktualizace všech připojených klientských strojů v reálném čase a zobrazují nové aktualizace burzy v reálném čase. To znamená, že obslužná databáze by měla být při zpracování takových dat poměrně rychlá s ohledem na malou latenci. Některé online hry, do kterých jsou zapojeni hráči z různých světových lokalit, shromažďují mnoho dat z uživatelských kliknutí, tažení a dalších gest a poté je přenášejí mezi miliony zařízení během mikrosekund. Zapojený databázový systém musí být dostatečně rychlý, aby to všechno dělal v reálném čase.

Rozmanitost

Data lze kategorizovat do různých typů od čísel, řetězců, data, objektů, polí, binárních dat, kódu, geoprostorových dat a regulárních výrazů, abychom zmínili alespoň některé. Optimální databázový systém by měl poskytovat funkce pro zlepšení manipulace s těmito daty bez nutnosti dalších procedur ze strany klienta. Například MongoDB poskytuje geolokační operace pro použití při načítání umístění v blízkosti souřadnic uvedených v dotazu. Této schopnosti nelze dosáhnout s tradičními databázemi, protože byly navrženy pouze tak, aby řešily struktury malého objemu dat, méně aktualizací a některé konzistentní datové struktury. Kromě toho bude v případě tradičních databází zapotřebí dalších operací k dosažení určitého konkrétního cíle.

MongoDB lze také spouštět z více serverů, což je na rozdíl od tradičních databází, které jsou navrženy tak, aby běžely pouze na jednom serveru, levné a nekonečné.

Faktory, které je třeba zvážit při výběru MongoDB pro velká data

Big Data přináší podnikové výhody, jsou-li vysoce spravovány díky lepšímu výpočetnímu výkonu. Při výběru databázového systému je třeba vzít v úvahu některé faktory týkající se druhu dat, se kterými budete pracovat a zda systém, který vybíráte, tuto schopnost poskytuje. V tomto blogu budeme v některých případech diskutovat o výhodách, které MongoDB pro Big Data ve srovnání s Hadoopem nabízí.

  • Rozsáhlý dotazovací jazyk pro dynamické dotazování
  • Vkládání dat
  • Vysoká dostupnost
  • Indexování a škálovatelnost
  • Efektivní úložiště a manipulace s pamětí
  • Konzistence a integrita dat

Rich Query Language pro dynamické dotazování

MongoDB se nejlépe hodí pro velká data, kde výsledná data vyžadují další úpravy pro požadovaný výstup. Některé z výkonných zdrojů jsou operace CRUD, agregační rámec, textové vyhledávání a funkce Map-Reduce. V rámci agregace má MongoDB další geolokační funkci, která umožňuje dělat mnoho věcí s geoprostorovými daty. Například vytvořením indexu 2Dsphere můžete načíst umístění v rámci definovaného poloměru pouhým zadáním souřadnic zeměpisné šířky a délky. S odkazem na výše uvedený příklad telekomunikací může společnost použít funkci Map-reduce nebo agregační rámec pro seskupení hovorů z daného místa, přičemž každý den vypočítá průměrnou dobu hovoru pro své uživatele nebo další operace. Podívejte se na příklad níže.

Udělejme shromažďování údajů o poloze

{ name: "KE",loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, category: "Parks"}

{ name: "UG",loc: { type: "Point", coordinates: [ -45.97, 40.57 ] }, category: "Parks"}

{ name: "TZ",loc: { type: "Point", coordinates: [ -73.27, 34.43 ] }, category: "Parks"}

{ name: "SA",loc: { type: "Point", coordinates: [ -67.97, 40.77 ] }, category: "Parks"}

Poté můžeme pomocí agregačního rámce najít data pro místa, která jsou blízko [-73,00, 40,00] a která jsou ve vzdálenosti 1 km pomocí níže uvedeného dotazu:

db.places.aggregate( [

   {

      $geoNear: {

         near: { type: "Point", coordinates: [ -73.00, 40.00 ] },

         spherical: true,

         query: { category: "Parks" },

         distanceField: "calcDistance",

   maxDistance: 10000

      }

   }

]

Operace Map-Reduce je také dostupná v Hadoopu, ale je vhodná pro jednoduché požadavky. Iterační proces pro velká data pomocí Map-Reduce v Hadoop je poměrně pomalý než v MongoDB. Důvodem je, že iterativní úlohy vyžadují mnoho map a redukují procesy před dokončením. V tomto procesu se mezi mapou generuje více souborů a snižuje počet úkolů, což ji činí v pokročilé analýze zcela nepoužitelnou. Společnost MongoDb představila rámec agregačního potrubí, který má tento neúspěch překonat, a je v nedávné minulosti nejpoužívanějším.

Vkládání dat

MongoDB je založen na dokumentech s možností vložit více polí do jednoho pole, což se nazývá vkládání. Vkládání přináší výhodu minimálních požadavků na jeden dokument, protože samotný dokument pojme velké množství dat. U relačních databází, kde jedna může mít mnoho tabulek, musíte za stejným účelem zadat více dotazů do databáze.

Vysoká dostupnost

Replikace dat mezi více hostiteli a servery je nyní s MongoDB možná, na rozdíl od relačního DBMS, kde je replikace omezena na jeden server. To je výhodné v tom, že data jsou vysoce dostupná na různých místech a uživatelé mohou být efektivně obsluhováni nejbližším serverem. Kromě toho lze proces obnovy nebo rozpadu snadno dosáhnout s ohledem na funkci žurnálování v MongoDB, která vytváří kontrolní body, ze kterých lze odkazovat na proces obnovy.

Indexování a škálovatelnost

Primární a sekundární indexování v MongoDB má spoustu výhod. Díky indexování se dotazy provádějí jako první, což je potřeba zvážit pro velká data, jak jsme diskutovali pod charakteristikou rychlosti pro velká data. Indexování lze také použít při vytváření shardů. Shards lze definovat jako dílčí kolekce, které obsahují data, která byla distribuována do skupin pomocí shard-key. Když je zadán dotaz, shard-key se používá k určení, kde hledat mezi dostupnými fragmenty. Pokud by neexistovaly žádné úlomky, proces by pro velká data trval poměrně dlouho, protože je třeba prozkoumat všechny dokumenty a proces může dokonce vypršet, než uživatelé získají to, co chtěli. Ale se shardingem se sníží množství dat, ze kterých se má načíst, a následně se sníží latence čekání na vrácení dotazu.

Efektivní úložiště a manipulace s pamětí

Poslední verze MongoDB nastavují WiredTiger jako výchozí modul úložiště, který má výkonnou schopnost zpracovávat více úloh. Tento úložný modul má spoustu výhod, aby mohl sloužit pro velká data, jak je popsáno v tomto článku. Motor má funkce, jako je komprese, kontrolní body a podporuje vícenásobné operace zápisu prostřednictvím souběžnosti dokumentů. Velká data znamenají, že mnoho uživatelů a funkce souběžnosti na úrovni dokumentů umožní mnoha uživatelům provádět úpravy v databázi současně, aniž by došlo ke snížení výkonu. MongoDB byl vyvinut pomocí C++, takže je vhodný pro práci s pamětí.

Konzistence a integrita dat

 Nástroj na validaci JSON je další funkcí dostupnou v MongoDB, která zajišťuje integritu a konzistenci dat. Slouží k tomu, aby se do databáze nedostala neplatná data. Pokud například existuje pole s názvem věk, bude vždy očekávat hodnotu Integer. Validátor JSON vždy zkontroluje, zda pro toto pole není do databáze odeslán řetězec nebo jiný typ dat. To má také zajistit, že všechny dokumenty budou mít hodnoty pro toto pole ve stejném datovém typu, a tedy konzistence dat. MongoDB také nabízí funkce zálohování a obnovy, takže v případě selhání se lze vrátit do požadovaného stavu.

Závěr

MongoDB zpracovává analýzu dat v reálném čase tím nejefektivnějším způsobem, který je vhodný pro velká data. Například geoprostorové indexování umožňuje analýzu dat GPS v reálném čase.

Kromě základní konfigurace zabezpečení má MongoDB další nástroj pro ověřování dat JSON, který zajišťuje, že se do databáze dostanou pouze platná data. Vzhledem k tomu, že databáze je založena na dokumentu a pole byla vložena, lze do databáze zadávat jen velmi málo dotazů pro načtení velkého množství dat. Díky tomu je ideální pro použití, když jde o velká data.


  1. Doporučení klientské knihovny Redis pro použití od společnosti Scala

  2. Jak uložit pole objektů v Redis?

  3. K čemu slouží soubor mongo.lock?

  4. MongoDB - Import dat