sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB-værktøjer fra fællesskabet, der komplementerer ClusterControl

Da MongoDB er den foretrukne database for mange udviklere, kommer det ikke som nogen overraskelse, at fællesskabssupporten er fremragende. Du kan hurtigt finde svar på de fleste af dine problemer på vidensider som Stack Overflow, men fællesskabet skaber også mange værktøjer, scripts og rammer omkring MongoDB.

ClusterControl er en del af fællesskabsværktøjerne, der giver dig mulighed for at implementere, overvåge, administrere og skalere enhver MongoDB-topologi. ClusterControl er designet omkring databasens livscyklus, men det kan naturligvis ikke dække alle aspekter af en udviklingscyklus. Dette blogindlæg vil dække et udvalg af fællesskabsværktøjer, der kan bruges til at komplementere ClusterControl til at styre en udviklingscyklus.

Skemastyring

Smerten ved skemaændringer i konventionelle RDBMS var en af ​​drivkræfterne bag skabelsen af ​​MongoDB:vi led alle af smerteligt langsomme eller mislykkede skemamigreringer. Derfor er MongoDB udviklet med et skemaløst dokumentdesign. Dette giver dig mulighed for at ændre dit skema, når du vil, uden at databasen holder dig tilbage.

Skemaændringer foretages generelt, når der er applikationsudvikling. Tilføjelse af nye funktioner til eksisterende moduler eller oprettelse af nye moduler kan indebære oprettelse af en anden version af dit skema. Også skema- og ydeevneoptimeringer kan skabe nye versioner af dine skemaer.

Selvom mange mennesker vil sige, at det er genialt ikke at blive holdt tilbage af databasen, giver det også et par problemer:Da gamle data ikke migreres til det nye skemadesign, burde din applikation kunne klare hver skemaversion, du har i din database. Alternativt kan du opdatere alle (gamle) data med det nyere skema lige efter du har implementeret applikationen.

Værktøjerne diskuteret i dette afsnit vil alle være meget nyttige til at løse disse skemaproblemer.

Meteor2-samling

Meteor2-indsamlingsmodulet vil sikre, at skemaet bliver valideret fra både klient- og serverside. Dette vil sikre, at alle data bliver skrevet i overensstemmelse med det definerede skema. Modulet vil kun være reaktivt, så hver gang data ikke bliver skrevet i henhold til skemaet, vil en advarsel blive returneret.

Mangust

Mongoose er Node.js middleware til skemamodellering og validering. Skemadefinitionen er placeret inde i din Node.js-applikation, og dette vil tillade Mongoose at fungere som en ORM. Mongoose vil ikke migrere eksisterende data til den nye skemadefinition.

MongoDB-skema

Indtil videre har vi kun talt om skemaændringer, så det er på tide at introducere MongoDB Schema. MongoDB Schema er en skemaanalysator, der vil tage en (tilfældig) prøve af dine data og udlæse skemaet for de samplede data. Dette betyder dog ikke nødvendigvis, at det vil være 100 % nøjagtigt på dets skemaestimering.

Med dette værktøj kan du jævnligt kontrollere dine data i forhold til dit skema og opdage vigtige eller utilsigtede ændringer i dit skema.

Severalnines Bliv en MongoDB DBA - Bring MongoDB to ProductionFå flere oplysninger om, hvad du skal vide for at implementere, overvåge, administrere og skalere MongoDBDownload gratis

Sikkerhedskopier

ClusterControl understøtter to implementeringer til sikkerhedskopiering af MongoDB:mongodump og Percona Consistent Backup. Alligevel vil nogle mindre almindeligt brugte funktioner, såsom delvise/trinvise sikkerhedskopier og streaming af sikkerhedskopier til andre klynger, ikke være tilgængelige direkte.

MongoDB Backup

MongoDB Backup er en NodeJS logisk backup-løsning, der tilbyder lignende funktionalitet som mongodump. Ud over dette kan den også streame sikkerhedskopier over netværket, hvilket gør den nyttig til at transportere en samling fra en MongoDB-instans til en anden.

En anden nyttig funktion er, at den er skrevet i NodeJS. Dette betyder, at det vil være meget nemt at integrere i en Hubot-chatbot og automatisere samlingsoverførslerne. Vær ikke bange, hvis din virksomhed ikke bruger Hubot som en chatbot:den kan også fungere som enten en webhook eller styres via CLI.

Mongob

Mongob er en anden logisk backup-løsning, men i dette tilfælde er den skrevet i Python og er kun tilgængelig som et CLI-værktøj. Ligesom MongoDB Backup er den i stand til at overføre databaser og samlinger mellem MongoDB-instanser, men derudover kan den også begrænse overførselshastigheden.

En anden nyttig funktion ved Mongob er, at den vil være i stand til at oprette trinvise sikkerhedskopier. Dette er godt, hvis du ønsker at have mere kompakte sikkerhedskopier, men også hvis du skal udføre en gendannelse på et tidspunkt.

MongoRocks Strata

MongoRocks Strata er backupværktøjet til MongoRocks storage-motoren. Percona Server til MongoDB inkluderer MongoRocks-lagringsmotoren, men den mangler Strata-sikkerhedskopiværktøjet til at lave sikkerhedskopier på filniveau. I princippet er mongodump og Percona Consistent Backup i stand til at lave pålidelige sikkerhedskopier, men da de er logiske dumps, vil gendannelsestiden være lang.

MongoRocks er en lagringsmotor, der er afhængig af en LSM-træarkitektur. Dette betyder dybest set, at det kun er en tilføjelseslagring. For at kunne gøre dette, opererer den med buckets af data:ældre data vil blive gemt i større (arkiv) buckets, seneste data vil blive gemt i mindre (nylige) buckets og alle nye indkommende data vil blive skrevet ind i en speciel hukommelse bucket . Hver gang en komprimering udføres, vil data sive ned fra hukommelsesbøtten til de seneste buckets, og for nylig ændrede data tilbage til arkivbøtten.

For at lave en sikkerhedskopi af alle buckets instruerer Strata MongoDB om at skylle hukommelsesbøtten til disken, og derefter kopierer den alle buckets data på filniveau. Dette vil skabe en konsekvent sikkerhedskopi af alle tilgængelige data. Det vil også være muligt at instruere Strata til kun at kopiere de seneste buckets og effektivt tage en trinvis backup.

En anden god pointe ved Strata er, at den giver mongoq binær, der giver dig mulighed for at forespørge sikkerhedskopierne direkte. Dette betyder, at der ikke er behov for at gendanne sikkerhedskopien til en MongoDB-instans, før du kan forespørge på den. Du ville være i stand til at udnytte denne funktionalitet til at sende dine produktionsdata offline til dit analysesystem!

MongoDB GUI'er

Inden for ClusterControl tillader vi forespørgsler i MongoDB-databaserne og samlingerne via rådgivere. Disse rådgivere kan udvikles i ClusterControl Developer Studio-grænsefladen. Vi har ikke en direkte grænseflade til databaserne, så for at foretage ændringer i dine data skal du enten logge ind på MongoDB-skallen eller have et værktøj, der giver dig mulighed for at foretage disse ændringer.

PHPMoAdmin

PHPMoAdmin er MongoDB-ækvivalenten til PHPMyAdmin. Den har lignende funktionalitet som PHPMyAdmin:data- og administratorstyring. Værktøjet giver dig mulighed for at udføre CRUD-operationer i både JSON- og PHP-syntaks på alle databaser og samlinger. Udover alt det har den også en import/eksportfunktion af dit aktuelle datavalg.

Mongo-Express

Hvis du søger en alsidig databrowser, er Mongo-Express et værktøj, du helt sikkert skal tjekke ud. Ikke kun tillader det lignende operationer som PHPMoAdmin, det er også i stand til at vise billeder og videoer inline. Det understøtter endda at hente store genstande fra GridFS-spande.

Robomongo

Værktøjet, der går et skridt videre, er Robomongo. Da det er et crowd-finansieret værktøj, er listen over funktioner enorm. Den er i stand til at udføre alle de samme operationer som Mongo-Express, men tillader udover dette også bruger-, rolle- og samlingsstyring. For forbindelser understøtter den direkte MongoDB-forbindelser, men understøtter også replicaSet-topologier og MongoDB Atlas-forekomster.

Konklusion

Med dette udvalg af gratis fællesskabsværktøjer håber vi, at vi har givet dig et godt overblik over, hvordan du administrerer MongoDB-data ved siden af ​​ClusterControl.

Glædelig klyngedannelse!


  1. Hvad er forskellen mellem sharding og replikering i Mongo?

  2. MongoDB:Hvordan opdaterer man flere dokumenter med en enkelt kommando?

  3. Lua script til Redis som summerer værdierne af nøgler

  4. Sådan nemt administreres databaseopdateringer og sikkerhedsrettelser