MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Tools aus der Community, die ClusterControl ergänzen

Da MongoDB für viele Entwickler die bevorzugte Datenbank ist, überrascht es nicht, dass die Community-Unterstützung hervorragend ist. Auf Wissensseiten wie Stack Overflow finden Sie schnell Antworten auf die meisten Ihrer Probleme, aber die Community erstellt auch viele Tools, Skripte und Frameworks rund um MongoDB.

ClusterControl ist Teil der Community-Tools, mit denen Sie jede MongoDB-Topologie bereitstellen, überwachen, verwalten und skalieren können. ClusterControl ist rund um den Datenbanklebenszyklus konzipiert, kann aber natürlich nicht alle Aspekte eines Entwicklungszyklus abdecken. Dieser Blogbeitrag behandelt eine Auswahl von Community-Tools, die verwendet werden können, um ClusterControl bei der Verwaltung eines Entwicklungszyklus zu ergänzen.

Schemaverwaltung

Der Schmerz von Schemaänderungen in konventionellen RDBMS war einer der Gründe für die Entwicklung von MongoDB:Wir alle litten unter schmerzhaft langsamen oder fehlgeschlagenen Schemamigrationen. Daher wurde MongoDB mit einem schemalosen Dokumentendesign entwickelt. Dadurch können Sie Ihr Schema jederzeit ändern, ohne dass die Datenbank Sie daran hindert.

Schemaänderungen werden im Allgemeinen immer dann vorgenommen, wenn eine Anwendungsentwicklung stattfindet. Das Hinzufügen neuer Funktionen zu vorhandenen Modulen oder das Erstellen neuer Module kann die Erstellung einer anderen Version Ihres Schemas beinhalten. Auch Schema- und Leistungsoptimierungen können neue Versionen Ihrer Schemas erstellen.

Auch wenn viele Leute sagen werden, dass es brillant ist, nicht von der Datenbank zurückgehalten zu werden, bringt es auch ein paar Probleme mit sich:Da alte Daten nicht in das neue Schemadesign migriert werden, sollte Ihre Anwendung in der Lage sein, mit jeder Ihrer Schemaversionen fertig zu werden in Ihrer Datenbank haben. Alternativ können Sie alle (alten) Daten direkt nach der Bereitstellung der Anwendung mit dem neueren Schema aktualisieren.

Die in diesem Abschnitt besprochenen Tools sind alle sehr hilfreich bei der Lösung dieser Schemaprobleme.

Meteor2-Sammlung

Das Meteor2-Erfassungsmodul stellt sicher, dass das Schema sowohl von der Client- als auch von der Serverseite validiert wird. Dadurch wird sichergestellt, dass alle Daten gemäß dem definierten Schema geschrieben werden. Das Modul wird nur reaktiv sein, wenn also Daten nicht gemäß dem Schema geschrieben werden, wird eine Warnung zurückgegeben.

Mungo

Mongoose ist Node.js-Middleware für die Schemamodellierung und -validierung. Die Schemadefinition wird in Ihre Node.js-Anwendung eingefügt, wodurch Mongoose als ORM fungieren kann. Mongoose migriert keine vorhandenen Daten in die neue Schemadefinition.

MongoDB-Schema

Bisher haben wir nur über Schemaänderungen gesprochen, daher ist es an der Zeit, das MongoDB-Schema vorzustellen. MongoDB Schema ist ein Schemaanalysator, der eine (zufällige) Stichprobe Ihrer Daten nimmt und das Schema für die Stichprobendaten ausgibt. Dies bedeutet jedoch nicht unbedingt, dass die Schemaschätzung zu 100 % genau ist.

Mit diesem Tool können Sie Ihre Daten regelmäßig mit Ihrem Schema vergleichen und wichtige oder unbeabsichtigte Änderungen in Ihrem Schema erkennen.

Multiplenines Become a MongoDB DBA – Bringing MongoDB to ProductionErfahren Sie, was Sie wissen müssen, um MongoDBDownload for Free bereitzustellen, zu überwachen, zu verwalten und zu skalieren

Sicherungen

ClusterControl unterstützt zwei Implementierungen zum Sichern von MongoDB:mongodump und Percona Consistent Backup. Dennoch werden einige weniger regelmäßig genutzte Funktionen, wie partielle/inkrementelle Backups und Streaming-Backups zu anderen Clustern, nicht sofort verfügbar sein.

MongoDB-Sicherung

MongoDB Backup ist eine logische Backup-Lösung von NodeJS, die ähnliche Funktionen wie Mongodump bietet. Darüber hinaus kann es auch Backups über das Netzwerk streamen, was es nützlich macht, eine Sammlung von einer MongoDB-Instanz zu einer anderen zu transportieren.

Ein weiteres nützliches Feature ist, dass es in NodeJS geschrieben wurde. Dies bedeutet, dass es sehr einfach sein wird, sich in einen Hubot-Chatbot zu integrieren und die Sammlungsübertragungen zu automatisieren. Haben Sie keine Angst, wenn Ihr Unternehmen Hubot nicht als Chatbot verwendet:Es kann auch als Webhook fungieren oder über die CLI gesteuert werden.

Mongob

Mongob ist eine weitere logische Backup-Lösung, aber in diesem Fall wurde sie in Python geschrieben und ist nur als CLI-Tool verfügbar. Genau wie MongoDB Backup ist es in der Lage, Datenbanken und Sammlungen zwischen MongoDB-Instanzen zu übertragen, aber darüber hinaus kann es auch die Übertragungsrate begrenzen.

Eine weitere nützliche Funktion von Mongob ist, dass es inkrementelle Backups erstellen kann. Dies ist gut, wenn Sie kompaktere Backups haben möchten, aber auch, wenn Sie eine Point-in-Time-Wiederherstellung durchführen müssen.

MongoRocks-Schichten

MongoRocks Strata ist das Backup-Tool für die MongoRocks-Speicher-Engine. Percona Server für MongoDB enthält die MongoRocks-Speicher-Engine, es fehlt jedoch das Strata-Sicherungstool zum Erstellen von Sicherungen auf Dateiebene. Im Prinzip können mongodump und Percona Consistent Backup zuverlässige Backups erstellen, aber da es sich um logische Dumps handelt, wird die Wiederherstellungszeit lang sein.

MongoRocks ist eine Speicher-Engine, die auf einer LSM-Baumarchitektur basiert. Dies bedeutet im Grunde, dass es sich um einen Nur-Anhänge-Speicher handelt. Um dies tun zu können, arbeitet es mit Daten-Buckets:ältere Daten werden in größeren (Archiv-)Buckets gespeichert, neuere Daten werden in kleineren (recent) Buckets gespeichert und alle neu eingehenden Daten werden in einen speziellen Speicher-Bucket geschrieben . Jedes Mal, wenn eine Komprimierung durchgeführt wird, sickern Daten aus dem Speicher-Bucket in die letzten Buckets und kürzlich geänderte Daten zurück in den Archiv-Bucket.

Um ein Backup aller Buckets zu erstellen, weist Strata MongoDB an, den Speicher-Bucket auf die Festplatte zu leeren, und kopiert dann alle Buckets mit Daten auf Dateiebene. Dadurch wird eine konsistente Sicherung aller verfügbaren Daten erstellt. Es wird auch möglich sein, Strata anzuweisen, nur die letzten Buckets zu kopieren und effektiv ein inkrementelles Backup zu erstellen.

Ein weiterer guter Punkt von Strata ist, dass es die Mongoq-Binärdatei bereitstellt, mit der Sie die Backups direkt abfragen können. Dies bedeutet, dass das Backup nicht in einer MongoDB-Instanz wiederhergestellt werden muss, bevor es abgefragt werden kann. Sie könnten diese Funktion nutzen, um Ihre Produktionsdaten offline an Ihr Analysesystem zu senden!

MongoDB-GUIs

Innerhalb von ClusterControl erlauben wir die Abfrage der MongoDB-Datenbanken und -Sammlungen über Advisors. Diese Advisors können in der ClusterControl Developer Studio-Schnittstelle entwickelt werden. Wir verfügen über keine direkte Schnittstelle zu den Datenbanken. Um Änderungen an Ihren Daten vorzunehmen, müssen Sie sich also entweder bei der MongoDB-Shell anmelden oder über ein Tool verfügen, mit dem Sie diese Änderungen vornehmen können.

PHPMoAdmin

PHPMoAdmin ist das MongoDB-Äquivalent von PHPMyAdmin. Es bietet ähnliche Funktionen wie PHPMyAdmin:Daten- und Admin-Management. Mit dem Tool können Sie CRUD-Vorgänge sowohl in JSON- als auch in PHP-Syntax für alle Datenbanken und Sammlungen ausführen. Daneben bietet es auch eine Import-/Exportfunktion Ihrer aktuellen Datenauswahl.

Mongo-Express

Wenn Sie einen vielseitigen Datenbrowser suchen, ist Mongo-Express ein Tool, das Sie unbedingt ausprobieren sollten. Es ermöglicht nicht nur ähnliche Operationen wie PHPMoAdmin, sondern kann auch Bilder und Videos inline anzeigen. Es unterstützt sogar das Abrufen großer Objekte aus GridFS-Buckets.

Robomongo

Das Tool, das noch einen Schritt weiter geht, ist Robomongo. Da es sich um ein Crowdfunding-Tool handelt, ist die Feature-Liste riesig. Es ist in der Lage, dieselben Operationen wie Mongo-Express auszuführen, ermöglicht darüber hinaus aber auch Benutzer-, Rollen- und Sammlungsverwaltung. Für Verbindungen unterstützt es direkte MongoDB-Verbindungen, unterstützt aber auch replicaSet-Topologien und MongoDB-Atlas-Instanzen.

Schlussfolgerung

Wir hoffen, dass wir Ihnen mit dieser Auswahl an kostenlosen Community-Tools einen guten Überblick darüber gegeben haben, wie Sie MongoDB-Daten neben ClusterControl verwalten können.

Viel Spaß beim Clustern!