MongoDB Sharding: Schritt für Schritt Tutorial mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist Sharding in MongoDB?

Sharding ist ein Konzept in MongoDB, bei dem große Datenmengen über mehrere MongoDB-Instanzen in kleine Datenmengen aufgeteilt werden.

Manchmal sind die Daten in MongoDB so groß, dass Abfragen für so große Datenmengen eine hohe CPU-Auslastung auf dem Server verursachen können. Um dieser Situation zu begegnen, hat MongoDB ein Sharding-Konzept, bei dem es sich im Wesentlichen um die Aufteilung von Datensätzen auf mehrere MongoDB-Instanzen handelt.

Die Sammlung, die groß sein kann, wird tatsächlich auf mehrere Sammlungen oder Shards aufgeteilt, wie sie genannt werden. Logischerweise arbeiten alle Shards als eine Sammlung.

So implementieren Sie Sharding

Shards werden mithilfe von Clustern implementiert, die nichts anderes als eine Gruppe von MongoDB-Instanzen sind.

Die Komponenten eines Shards umfassen

  1. Ein Shard - Dies ist die grundlegende Sache, und dies ist nichts anderes als eine MongoDB-Instanz, die die Teilmenge der Daten enthält. In Produktionsumgebungen müssen alle Shards Teil von Replikatsätzen sein.
  2. Konfigurationsserver - Dies ist eine Mongodb-Instanz, die Metadaten zum Cluster enthält, im Grunde Informationen zu den verschiedenen Mongodb-Instanzen, die die Shard-Daten enthalten.
  3. Ein Router - Dies ist eine Mongodb-Instanz, die im Wesentlichen dafür verantwortlich ist, die vom Client an die richtigen Server gesendeten Befehle umzuleiten.

Beispiel für ein schrittweises Sharding-Cluster

Schritt 1) Erstellen Sie eine separate Datenbank für den Konfigurationsserver.

mkdir /data/configdb

Schritt 2) Starten Sie die Mongodb-Instanz im Konfigurationsmodus. Angenommen, wir haben einen Server namens Server D, der unser Konfigurationsserver ist, und müssen den folgenden Befehl ausführen, um den Server als Konfigurationsserver zu konfigurieren.

mongod -configdb ServerD: 27019

Schritt 3) Starten Sie die Mongos-Instanz, indem Sie den Konfigurationsserver angeben

mongos -configdb ServerD: 27019

Schritt 4) Stellen Sie über die Mongo-Shell eine Verbindung zur Instanz des Mongos her

mongo -host ServerD -port 27017

Schritt 5) Wenn Sie Server A und Server B haben, die dem Cluster hinzugefügt werden müssen, geben Sie die folgenden Befehle aus

sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")

Schritt 6) Aktivieren Sie das Sharding für die Datenbank. Wenn wir also die Employeedb-Datenbank sharden müssen, geben Sie den folgenden Befehl ein

sh.enableSharding(Employeedb)

Schritt 7) Aktivieren Sie das Sharding für die Sammlung. Wenn wir also die Employee-Auflistung sharden müssen, geben Sie den folgenden Befehl ein

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

Zusammenfassung:

  • Wie im Tutorial erläutert, ist Sharding ein Konzept in MongoDB, bei dem große Datenmengen über mehrere MongoDB-Instanzen in kleine Datenmengen aufgeteilt werden.