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

Nástroje MongoDB z komunity, které doplňují ClusterControl

Vzhledem k tomu, že MongoDB je oblíbenou databází mnoha vývojářů, není překvapením, že podpora komunity je vynikající. Odpovědi na většinu svých problémů můžete rychle najít na znalostních webech, jako je Stack Overflow, ale komunita také vytváří mnoho nástrojů, skriptů a rámců kolem MongoDB.

ClusterControl je součástí komunitních nástrojů, které vám umožňují nasadit, monitorovat, spravovat a škálovat jakoukoli topologii MongoDB. ClusterControl je navržen s ohledem na životní cyklus databáze, ale přirozeně nemůže pokrýt všechny aspekty vývojového cyklu. Tento blogový příspěvek pokryje výběr komunitních nástrojů, které lze použít k doplnění ClusterControl při řízení vývojového cyklu.

Správa schémat

Bolest změn schématu v konvenčním RDBMS byla jednou z hnacích sil za vytvořením MongoDB:všichni jsme trpěli bolestně pomalými nebo neúspěšnými migracemi schémat. Proto byl MongoDB vyvinut s bezschemovým návrhem dokumentu. To vám umožní změnit schéma, kdykoli budete chtít, aniž by vás databáze zdržovala.

Změny schématu se obecně provádějí vždy, když dochází k vývoji aplikace. Přidání nových funkcí do stávajících modulů nebo vytvoření nových modulů může vyžadovat vytvoření další verze vašeho schématu. Také optimalizace schémat a výkonu mohou vytvořit nové verze vašich schémat.

I když mnoho lidí řekne, že je skvělé, když je databáze nezadržuje, přináší to také několik problémů:protože stará data nejsou migrována do nového návrhu schématu, vaše aplikace by měla být schopna vypořádat se s každou verzí schématu. mít ve své databázi. Případně můžete aktualizovat všechna (stará) data pomocí novějšího schématu ihned po nasazení aplikace.

Nástroje popsané v této části budou velmi užitečné při řešení těchto problémů se schématem.

Sbírka Meteor2

Sběrný modul Meteor2 zajistí ověření schématu ze strany klienta i serveru. To zajistí, že všechna data budou zapsána podle definovaného schématu. Modul bude pouze reaktivní, takže kdykoli nebudou data zapsána podle schématu, bude vráceno varování.

Mungus

Mongoose je middleware Node.js pro modelování a ověřování schémat. Definice schématu je umístěna uvnitř vaší aplikace Node.js, což umožní Mongoose fungovat jako ORM. Mongoose nebude migrovat existující data do nové definice schématu.

Schéma MongoDB

Zatím jsme mluvili pouze o změnách schématu, takže je čas představit schéma MongoDB. MongoDB Schema je analyzátor schémat, který vezme (náhodný) vzorek vašich dat a vydá schéma pro vzorková data. To však nutně neznamená, že odhad schématu bude 100% přesný.

Pomocí tohoto nástroje můžete pravidelně porovnávat svá data se schématem a odhalovat důležité nebo neúmyslné změny ve schématu.

Somenines Staňte se MongoDB DBA – Uvedení MongoDB do produkce Zjistěte, co potřebujete vědět, abyste mohli nasadit, monitorovat, spravovat a škálovat MongoDBDdownload zdarma

Zálohy

ClusterControl podporuje dvě implementace pro zálohování MongoDB:mongodump a Percona Consistent Backup. Některé méně pravidelně používané funkce, jako jsou částečné/přírůstkové zálohy a zálohování datovým proudem do jiných clusterů, však nebudou ihned po vybalení k dispozici.

Záloha MongoDB

MongoDB Backup je řešení logického zálohování NodeJS, které nabízí podobnou funkcionalitu jako mongodump. Kromě toho může také streamovat zálohy přes síť, což je užitečné pro přenos kolekce z jedné instance MongoDB do druhé.

Další užitečnou funkcí je, že byla napsána v NodeJS. To znamená, že bude velmi snadné integrovat se do chatbota Hubot a automatizovat přenosy sbírek. Nebojte se, pokud vaše společnost nepoužívá Hubot jako chatbota:může také fungovat jako webhook nebo být ovládán přes CLI.

Mongob

Mongob je další logické řešení zálohování, ale v tomto případě bylo napsáno v Pythonu a je k dispozici pouze jako nástroj CLI. Stejně jako MongoDB Backup je schopen přenášet databáze a kolekce mezi instancemi MongoDB, ale kromě toho může také omezit rychlost přenosu.

Další užitečnou funkcí Mongobu je, že bude moci vytvářet přírůstkové zálohy. To je dobré, pokud chcete mít kompaktnější zálohy, ale také pokud potřebujete provést obnovu v určitém okamžiku.

MongoRocks Strata

MongoRocks Strata je zálohovací nástroj pro úložiště MongoRocks. Percona Server pro MongoDB obsahuje úložiště MongoRocks, ale postrádá zálohovací nástroj Strata pro vytváření záloh na úrovni souborů. V zásadě jsou mongodump a Percona Consistent Backup schopny vytvářet spolehlivé zálohy, ale protože se jedná o logické výpisy, doba obnovy bude dlouhá.

MongoRocks je úložiště, které se opírá o stromovou architekturu LSM. To v podstatě znamená, že se jedná o úložiště pouze pro připojení. Aby toho bylo možné, pracuje s datovými segmenty:starší data budou uložena ve větších (archivačních) segmentech, nedávná data budou uložena v menších (nedávných) segmentech a všechna nová příchozí data budou zapsána do speciálního paměťového segmentu. . Pokaždé, když je provedeno zhutnění, data se stékají z paměťového segmentu do posledních segmentů a nedávno změněná data zpět do archivního segmentu.

Pro vytvoření zálohy všech bucketů Strata instruuje MongoDB, aby vyprázdnil bucket paměti na disk, a pak zkopíruje všechny buckety dat na úrovni souboru. Tím vytvoříte konzistentní zálohu všech dostupných dat. Bude také možné dát Stratě pokyn, aby zkopírovala pouze poslední segmenty a efektivně provedla přírůstkovou zálohu.

Dalším dobrým bodem Strata je, že poskytuje binární mongoq, který vám umožňuje přímo se dotazovat na zálohy. To znamená, že není potřeba zálohu obnovovat do instance MongoDB, než ji budete moci dotazovat. Tuto funkci byste mohli využít k odesílání produkčních dat offline do vašeho analytického systému!

GUI MongoDB

V rámci ClusterControl umožňujeme dotazování na databáze a kolekce MongoDB prostřednictvím poradců. Tyto poradce lze vyvíjet v rozhraní ClusterControl Developer Studio. Nemáme přímé rozhraní s databázemi, takže k provádění změn ve vašich datech se budete muset buď přihlásit do prostředí MongoDB, nebo mít nástroj, který vám tyto změny umožní.

PHPMoAdmin

PHPMoAdmin je MongoDB ekvivalent PHPMyAdmin. Vyznačuje se podobnou funkcí jako PHPMyAdmin:správa dat a správce. Nástroj vám umožní provádět operace CRUD v syntaxi JSON i PHP na všech databázích a kolekcích. Kromě toho všeho nabízí také funkci importu/exportu vašeho aktuálního výběru dat.

Mongo-Express

Pokud hledáte všestranný prohlížeč dat, Mongo-Express je nástroj, který rozhodně musíte vyzkoušet. Nejen, že umožňuje podobné operace jako PHPMoAdmin, je také schopen zobrazovat obrázky a videa inline. Podporuje dokonce načítání velkých objektů z bucketů GridFS.

Robomongo

Nástroj, který jde ještě o krok dále, je Robomongo. Vzhledem k tomu, že jde o nástroj financovaný davem, seznam funkcí je obrovský. Je schopen provádět všechny stejné operace jako Mongo-Express, ale kromě toho také umožňuje správu uživatelů, rolí a kolekcí. Pro připojení podporuje přímá připojení MongoDB, ale také podporuje topologie replicaSet a instance MongoDB Atlas.

Závěr

Doufáme, že s tímto výběrem bezplatných komunitních nástrojů jsme vám poskytli dobrý přehled, jak spravovat data MongoDB vedle ClusterControl.

Šťastné shlukování!


  1. Absolutní hodnota s agregačním rámcem MongoDB

  2. MongoDB $strcasecmp

  3. Pizza Tribes – strategická hra v reálném čase založená na prohlížeči pro více hráčů

  4. Cluster Failover