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

Nejoblíbenější databáze NoSQL podporované ClusterControl

NoSQL ("nejen SQL") je přístup k návrhu databází, který umožňuje ukládání a dotazování dat mimo tradiční struktury nalezené v relačních databázích. Byl vytvořen primárně pro práci s nestrukturovanými daty, která jsou generována z mnoha zdrojů, jako jsou dokumenty, audio, video, sociální sítě atd. Databáze NoSQL jsou nejlepší pro moderní aplikace, kde se datové modely vyvíjejí a škálovatelnost je zásadní. Tato databáze si v posledních letech získala na popularitě, protože společnosti se nyní musí více než kdy dříve vypořádat s nestrukturovanými daty. Tento model ukládá data odlišně od tradičních relačních tabulek, aby bylo možné uchovávat související data v rámci jediné datové struktury. NoSQL databázi lze rozdělit do čtyř kategorií:

  • Dokumenty

  • Databáze klíčových hodnot

  • Obchody se širokým sloupcem

  • Databáze grafů

Databáze NoSQL se často používají v agilních projektech, protože nabízejí flexibilní datové modely. To umožňuje vývojářům soustředit se na obchodní logiku a algoritmy místo toho, aby se zabývali aktualizacemi schémat. Pokud předpokládáte, že datový model vaší aplikace musí zůstat flexibilní, aby se přizpůsobil změnám v průběhu času, může být pro vaše potřeby vhodný flexibilní přístup založený na schématech databází NoSQL.

Podle db-engines jsou dvě nejlepší databáze NoSQL (červenec 2021) MongoDB (pořadí:5) a Redis (umístění:6). Zajímavé je, že tyto databáze NoSQL před 12 lety neexistovaly. To, jak vznikly a získaly přitažlivost, popularitu a změnily prostředí systému správy databází, je hlavní podstatou tohoto blogového příspěvku.

MongoDB

MongoDB je open source databáze orientovaná na dokumenty s prvním vydáním v únoru 2009. Databáze dokumentů silně kontrastují s tradiční relační databází. Ukládají všechny informace pro daný objekt v jediné instanci v databázi a každý uložený objekt se může od všech ostatních lišit. To eliminuje potřebu objektově-relačního mapování a umožňuje strukturu bez schémat, což je funkce, kde vývojáři aplikací mají díky flexibilnímu datovému modelu agilní rychlý vývoj. Namísto přizpůsobení aplikace tak, aby splňovala požadavky schématu, vývojáři napíší aplikaci a schéma následuje.

MongoDB je velmi populární díky své flexibilitě, snadnému učení a nižším nákladům na vlastnictví. Vývojáři aplikací milují MongoDB, protože mohou měnit datový model na cestách a protože MongoDB používá k záznamu dat dokumenty JSON. JSON je všude a lze jej považovat de-facto za formát pro odesílání bohatých dat mezi webovými aplikacemi a koncovými body. Jeho jednoduchý design a flexibilita usnadňuje čtení a porozumění a ve většině případů se s ním snadno manipuluje v programovacím jazyce dle vašeho výběru.

MongoDB vznikla díky 10gen (než byla přejmenována na MongoDB Inc), začala ji vyvíjet v roce 2007 a vyšla s prvním vydáním GA v únoru 2009. Od té doby se MongoDB rychle vyvíjela a je považován za jeden z nejzajímavějších databázových projektů pro moderní aplikace. Podle průzkumu StackOverflow Developer Survey 2020 zůstává MongoDB databázovou technologií, kterou se vývojáři chtějí nejvíce naučit. V době psaní tohoto článku právě vydali verzi 5.0 (13. července 2021) a přichází s mnoha pozoruhodnými funkcemi, jako je živé předělání, nativní podpora časových řad dat a verzované API, vhodné pro multicloudová prostředí.

Další významnou funkcí MongoDB jsou vestavěné funkce s vysokou dostupností, jako je replikace, sada replik a sdílení. Je horizontálně škálovatelný, což pomáhá snížit pracovní zátěž a snadno škálovat vaše podnikání. Nabízí replikaci prostřednictvím domácího konsenzuálního protokolu, který čerpá inspiraci z Raftu a dokáže distribuovat data mezi úlomky prostřednictvím svého dotazovacího routeru zvaného mongos. Pomocí ClusterControl můžete snadno nasadit sadu replik MongoDB a nastavení sdíleného clusteru.

MongoDB upoutal pozornost veřejnosti a kritiky kvůli své slabosti ve výchozí konfiguraci zabezpečení MongoDB, která umožňuje komukoli mít plný přístup k databázi. Data z desítek tisíc instalací MongoDB byla ukradena. Kromě toho bylo mnoho serverů MongoDB zadrženo pro výkupné. Toto odhalení nás přivedlo k napsání několika blogových příspěvků souvisejících s bezpečností souvisejících s MongoDB, jako jsou Zabezpečení MongoDB a Chraňte se před Ransom Hackem a Jak zabezpečit MongoDB před Ransomwarem – deset tipů. Následně MongoDB vylepšil výchozí konfigurační aspekty tak, aby byly bezpečnější s MongoDB 3 a novějšími.

Některé velké společnosti silně spoléhají na MongoDB jako své úložiště dat, například Forbes, Toyota, SAP, Cisco, eBay a Adobe. MongoDB je považována za zásadní změnu ve světě databází a stala se jednou z nejdůležitějších databázových platforem v éře internetu.

ClusterControl podporuje MongoDB od verze července 2013 (v1.2.3) a od té doby se neustále zlepšuje. ClusterControl v té době dokonce podporoval TokuMX (MongoDB s fraktálovým stromem Tokuteku), než byl v MongoDB 3 zavržen kvůli základním změnám designu upstreamu. V nedávných pozoruhodných vylepšeních ClusterControl zavádí podporu pro Percona Backup for MongoDB, distribuované řešení s nízkým dopadem pro dosažení konzistentních záloh sharded clusterů a sad replik MongoDB. Projekt Percona Backup for MongoDB je zděděn a nahrazuje mongodb_consistent_backup, který již není aktivně vyvíjen ani podporován.

Redis

Redis je další nejoblíbenější databázová technologie NoSQL, která se zaměřuje na častý vysokorychlostní přístup ke stejným částem dat, i když jsou tyto části dat velké. V květnu 2019 vydal Salvatore Sanfilllippo první verzi Redis, aka Remote Dictionary Server, a upoutal pozornost všech díky svým bohatším funkcím v té době již zavedenému open source in-memory databázovému řešení zvanému Memcached.

Redis je superrychlý díky struktuře dat v paměti a skutečnosti, že byl napsán v jazyce C (to je jeden z důvodů, proč byl Memcached přepsán v C). Kvůli jeho vysokému výkonu se vývojáři obrátili na Redis pro ukládání dat do mezipaměti, když objem operací čtení a zápisu překračuje možnosti tradičních databází. Často používaná data lze ukládat do mezipaměti a obsluhovat pomocí datových úložišť klíč-hodnota v paměti a minimalizovat čtení a zápis na pomalejší diskové systémy se zaměřením na trvalé úložiště.

Systémy správy databází jsou tradičně navrženy tak, aby poskytovaly robustní datové funkce spíše než rychlost ve velkém měřítku. Mezipaměť aplikace se často používá k ukládání kopií vyhledávacích tabulek a odpovědí na drahé dotazy z DBMS, a to jak pro zlepšení výkonu aplikace, tak pro snížení zatížení zdroje dat. Někdy pracovní postup aplikace vyžaduje generování výsledků náročných na zdroje. Jakmile jsou tyto výsledky získány, existují případy, kdy lze výsledky později znovu použít, například při provádění dílčích agregací. Mezipaměť funguje jako ideální zprostředkující médium pro uchování takových výsledků mezi požadavky. Tady Redis září.

Redis se vyvinul z velmi rychlého jednoduchého úložiště klíč-hodnota na trvalé úložiště dat a používá se jako zprostředkovatel zpráv a systém řazení do front. Umožňuje skutečný stav bez stavu pro procesy aplikací a zároveň snižuje duplicitu dat nebo požadavků na externí zdroje dat. Podle průzkumu StackOverflow Developer Survey 2020 zůstává Redis na špici databázové technologie, kterou vývojáři projevili zájem dále rozvíjet. V době psaní tohoto článku je Redis 6 nejnovější verzí s novou, sofistikovanější implementací ACL založenou na uživatelích, vestavěným šifrováním provozu SSL a vícevláknovým I/O, i když proces Redis je stále jednovláknový. .

Nasazení Redis je podporováno v ClusterControl 1.9.0 pomocí našeho nového GUI balíčku ClusterControl nové generace dostupného v samostatné instalaci. V době psaní tohoto článku jej nazýváme ClusterControl v2 označený technologií Technology Preview, která podporuje pouze nasazení replikace Redis až do 5 uzlů s Redis Sentinel se správou zálohování AOF a RDB. Máte-li zájem, přečtěte si prosím tento návod, jak jej nainstalovat.

Shrnutí

MongoDB a Redis jsou aktuálně dvě nejlepší databázová řešení NoSQL na trhu a věří se, že si udrží svou pozici v top 10 databázovém žebříčku po poměrně dlouhou dobu. To je důvod, proč ClusterControl podporuje obě databázové technologie.


  1. Jak uložit prvek seznamu do mezipaměti Redis

  2. Jak nakonfigurovat připojení Redis s Rails 4, Puma a Sidekiq?

  3. Redis:Jak získat přístup k souboru protokolu Redis

  4. Pracovní podmínky Sidekiq