MongoDB-Architektur: Struktur, Terminologien, Anforderungen und Vorteile

Veröffentlicht: 2020-12-28

Inhaltsverzeichnis

Überblick

Es besteht kein Zweifel, dass das Internet das Rückgrat der modernen Weltwirtschaft ist. Heute nutzen fast 4,7 Milliarden Menschen auf der ganzen Welt täglich die virtuelle Plattform, nutzen internetgestützte Anwendungen, um Nachrichten zu lesen, Kleidung zu kaufen, Essen zu bestellen, Musik zu hören, zum und vom Büro zu pendeln und vieles mehr.

Bei einer so großen Anzahl von Benutzern, die täglich digitale Beiträge leisten, ist es kein Wunder, dass jeden Tag riesige Mengen an unstrukturierten Daten im Cyberspace generiert werden. Erfahren Sie mehr über den zukünftigen Umfang von MongoDB.

Dies führte zu einem dringenden Bedarf an einem neuen Datenbankparadigma, das „Big Data“-Anwendungen (wie sie später bekannt wurden) rund um die Uhr ohne Ausfall speichern, bedienen und unterstützen kann.

Geben Sie NoSQL ein.

Der Aufstieg von NoSQL-Datenbanken

NoSQL, allgemein als „Not Only SQL“ bekannt, ist eine Alternative zu SQL-Datenbanken, die durch ihre festen Tabellenschemata eingeschränkt sind. Durch seine hohe Flexibilität überwindet NoSQL diesen strukturellen Nachteil von SQL-Datenbanken und ist für eine horizontale Skalierung gerüstet. NoSQL-Datenbanken wurden entwickelt, um die Produktivität der Entwickler zu steigern, indem sie sie mit einem einfachen und eleganten Datenmodell für komplexe Datenverarbeitungs- und Verwaltungsvorgänge ausstatten.

Im Großen und Ganzen gab es diese Datenspeichermodelle in 4 Typen – Dokument, Schlüsselwert, Wide-Column und Graph. Wir konzentrieren uns in diesem Blog auf Dokumentendatenbanken und die MongoDB-Architektur (die führende NoSQL-Datenbank).

Die MongoDB-Struktur

Quelle: MongoDB-Dokumentation

Die MongoDB-Architektur folgt einem flexiblen Datenmodell. Im Gegensatz zu RDBMS, das vor dem Einfügen von Daten eine Schemadeklaration vorschreibt, erzwingt MongoDB keine feste Dokumentstruktur.

Terminologien

Felder

Ein Schlüssel-Wert-Paar in einem Dokument, es ist das Gegenstück zu einer Spalte in relationalen Datenbanken

Dokumentieren

Dies entspricht einem Datensatz in RDBMS

Sammlungen

Eine Gruppe von Dokumenten wird Sammlung genannt. Dies ist analog zu einer RDBMS-Tabelle

Unterschiede zwischen RDBMS und MongoDB-Architektur

Schließt sich an

In RDBMS können Daten auf mehrere Tabellen verteilt und zusammengefügt werden, um in einer einzigen Ansicht darauf zuzugreifen. Eine solche JOIN-Operation ist in MongoDB nicht möglich. Stattdessen werden alle Daten in einer einzigen Sammlung gespeichert, können aber durch Verschachtelung oder eingebettete Dokumente getrennt werden

Normalisierung

RDBMS gewährleistet die Normalisierung von Daten, um Duplikate und verwaiste Datensätze zu vermeiden. Die Flexibilität von MongoDB macht eine Normalisierung überflüssig

Struktur

RDBS wird hauptsächlich im Bankensektor verwendet, wo die genaue Datenbankstruktur a priori bekannt ist. MongoDB unterstützt große Mengen unstrukturierter Daten und ist über Cloud-, Mobil-, Web- und Big-Data-Anwendungen erweiterbar.

Bedarf und Vorteile der MongoDB-Architektur

Die MongoDB- Architektur kann strukturelle Änderungen im Handumdrehen handhaben, was das Gebot der Stunde ist. Dies ist perfekt für Szenarien, in denen Sie Ihre Datenbankstruktur vorher nicht einsehen können.

Im Folgenden sind einige der wichtigsten Vorteile aufgeführt

Dokumentenbasiert

Kann Datenflussänderungen dynamisch berücksichtigen und sich in Echtzeit an sich ändernde Geschäftsanforderungen anpassen

Ad-hoc-Abfragen – Leistungsstarke Abfragesprache, die bestimmte Felder zurückgeben kann. Es ermöglicht auch hochgradig granulare Suchfunktionen. (feldweise, bereichsweise, allgemeine Ausdrücke und mehr)

Indizierung

Sie können jedes Feld in einem Dokument indizieren, um den Prozess des Datenabrufs zu beschleunigen.

Lassen Sie uns nun einen tiefen Einblick in die MongoDB-Architektur nehmen .

Aber bevor wir das tun, müssen wir das CAP-Theorem verstehen.

Das CAP-Theorem

CAP bezeichnet das Trifecta aus Konsistenz, Verfügbarkeit und Partitionstoleranz.

Schauen wir uns an, was jeder Begriff in diesem Zusammenhang bedeutet

Konsistenz

Wenn Sie Daten in eine verteilte Datenbank schreiben, sollten Sie jederzeit von jedem Knoten im System auf dieselben Daten zugreifen können. Es geht darum, die Integrität der geschriebenen Daten zu bewahren.

Verfügbarkeit

Hier geht es darum, die Ausfallzeit eines Systems zu minimieren. Lese-/Schreibvorgänge sollten unbedingt auf jedem Computer im Cluster ausgeführt werden.

Partitionstoleranz oder Fehlertoleranz

gibt die Fähigkeit eines Systems an, auch im Fall einer Netzwerkpartition reibungslos zu funktionieren, dh verschiedene Teile des Clusters sollten in der Lage sein, miteinander zu kommunizieren und sich effektiv zu synchronisieren.

Das CAP-Theorem besagt, dass ein verteiltes System partitionstolerant sein muss. Eventuelle Netzwerkpartitionen können nicht das gesamte System zum Absturz bringen.

Mit anderen Worten, Sie können in einem verteilten System nur einen Parameter aus „Konsistenz“ und „Verfügbarkeit“ garantieren, der andere ist die Partitionstoleranz.

Dadurch entsteht ein Dreieck wie dieses:

Quelle: Data Science Pedia

MongoDB entscheidet sich immer für Konsistenz über Verfügbarkeit , wenn es eine Partition im System (CP) gibt. Es blockiert alle Schreibvorgänge, bis es die genaue Ausführung dieser Schreibvorgänge sicherstellen kann.

MongoDB-Architektur

MongoDB verwendet die Single-Master-Architektur, was bedeutet, dass ein primärer Computer die Verantwortung für alle clientseitigen Schreibvorgänge übernimmt. Alle anderen Instanzen, die Sie später zum Cluster hinzufügen, bilden die sekundären Knoten, die gemeinsam alle Lesevorgänge verarbeiten.

Dies sind im Grunde Sicherungskopien des primären Servers als Ausfallsicherung gegen den primären Absturz.

Alle diese Server sind in Replica Sets gruppiert. Sie können mehrere Replikatsätze haben, von denen jeder seinen eigenen primären und sekundären Server hat.

Quelle: MongoDB-Dokumentation

Falls der Primärknoten ausfällt, wählt das System aus allen Sekundärknoten einen neuen Primärknoten aus. Dies geschieht jedoch willkürlich, je nachdem, wo es die schnellsten Ping-Antworten von allen Systemen erhält. Sie müssen eine ungerade Anzahl von Servern in Ihrem Cluster haben (mindestens 3), damit ein Primary mit Mehrheit gewählt werden kann.

Wenn Sie kein Geld für drei Server ausgeben möchten, können Sie einen „Arbiter“-Knoten ernennen, dessen einzige Aufgabe es ist, über die Wahl des Primären abzustimmen.

Scherben

Mit Sharding in MongoDB können Sie Ihre Big Data auf mehrere Datenbanken verteilen.

Quelle: MongoDB-Dokumentation

Sie haben eine Anwendung mit Millionen von Benutzern. Mit Sharding können Sie diese Benutzer (basierend auf einem eindeutigen Index wie einer Benutzer-ID) in verschiedene Replikatsätze partitionieren. Unter Verwendung eines Prozesses namens mongoS kommuniziert der Anwendungsserver mit den Konfigurationsservern (genau 3), um zu verstehen, welcher „Shard“ die gesuchten Daten enthält. mongoS führt im Hintergrund einen Load Balancer-Prozess aus, um die Last (in diesem Fall die Anzahl der Benutzer) automatisch gleichmäßig auf alle Shards zu verteilen.

Fazit

Wenn Sie mehr über MongoDB und Datenbankoperationen erfahren möchten, sehen Sie sich MongoDB-Projektideen an. Sie können das PG-Diplom in Data Science von upGrad aus erkunden. Als 12-monatiger Kurs für Berufstätige erhalten Sie umfassende Karriereberatung und Stellenangebote sowie den renommierten IIIT Bangalore Alumni-Status.

Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu verstehen, wie die MongoDB-Architektur funktioniert und wie das System funktioniert. Um mehr zu erfahren, schauen Sie sich bitte unsere anderen Blogs an.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Bilden Sie sich weiter und machen Sie sich bereit für die Zukunft

Advanced Certificate Program in Big Data vom IIIT Bangalore