So fügen Sie 20 Millionen Datensätze in eine NoSQL-Datenbank ein

Veröffentlicht: 2022-11-24

Es gibt verschiedene Möglichkeiten, 20 Millionen Datensätze in eine NoSQL-Datenbank einzufügen. Eine Möglichkeit wäre, die Massenladefunktion der Datenbank zu verwenden. Dies würde erfordern, dass die Daten in einem bestimmten Format vorliegen, das die Datenbank verstehen kann, und wäre die effizienteste Art , die Daten zu laden. Eine andere Möglichkeit wäre, ein Skript oder eine Anwendung zu verwenden, um die Daten Datensatz für Datensatz einzufügen. Dies wäre ein langsamerer Prozess, würde jedoch nicht erfordern, dass die Daten in einem bestimmten Format vorliegen.

Kann Mongodb Millionen von Datensätzen verarbeiten?

Bildnachweis: freecodecamp.org

Um Millionen von Datensätzen in Echtzeit zu verarbeiten, sollten Sie MongoDB und ElasticSearch verwenden. Es wäre auch vorteilhaft, diese Strukturen und Konzepte in einem großen Datensatz zu verwenden .

Durch die Optimierung massiver MongoDB-Einfügungen können wir 50 Millionen Datensätze um 33 % schneller laden! Auf der Github-Setup-Seite finden Sie den Code für all diese Programme. Ich habe mein Macbook Pro mit einer Uplink-Geschwindigkeit von 25–35 Mbit/s und einer Verbindungsgeschwindigkeit von 25–35 Mbit/s getestet. In diesem Experiment ist es möglich, dass die Ergebnisse von denen abweichen, die auf einem prod-fähigen EC2 erzielt werden. Eine Kaggle-Datentestplattform ist eine ausgezeichnete Wahl zum Testen von Daten, da sie über vorbereitete Datensätze verfügt. yelp_academic_dataset_review.json, eine 5 GB große Datei, enthält 6,9 Millionen Datensätze. Nachdem die Knoten die Datei gelesen hatten, dauerte es 2,5 Stunden, bis Mongo 1 Million Datensätze geschrieben hatte.

Dieses Tool wird für die Generierung von nicht mehr als 2 Millionen Datenpunkten empfohlen. Eine Node.js-Pufferentität darf nicht mehr als 2 GB an Dateien enthalten. Es macht durchaus Sinn, dass hier Streams verwendet werden sollten. Wir können in diesem Beispiel 100k sequentiell mit einer leichten Verzögerung einfügen. Das Einsetzen des Einsatzes dauerte 29 Minuten. Da EventEmitter für alle Streams verwendet wird, ist dies der Fall. Diese CPU-Auslastung ist auf 40 % gestiegen, 10 % mehr als eine sequenzierte Einfügung von 100.000.

Die IOPS haben sich von 50 auf 100 fast verdoppelt, und die Verbindungen haben sich von 40 auf 60 erhöht. Es sollte jeden Ordner durchlaufen, die Datei lesen und den Zähler der Review-Array-Länge dort speichern. Wenn dieser Ansatz in Zukunft gut funktioniert, kann er auf spätere Einfügungen angewendet werden; Nehmen Sie sich Zeit, um zu sehen, wie es funktioniert. In diesem Abschnitt haben wir uns angesehen, wie lange es dauern würde, 51936 Ordner zu lesen und 63 Millionen Datensätze einzufügen. Wir müssen wissen, wie viele Ordner gelesen wurden, um die nächste Million Datensätze zu erreichen, da das Einfügen von Daten später parallelisiert werden kann. Das System benötigt etwa anderthalb Stunden, um 63 Millionen Datensätze einzufügen. Wir hatten zuvor vorhergesagt, dass es 33 % schneller sein würde!

Wir haben innerhalb von anderthalb Stunden fast 45 GB Daten geladen. Die IOPS betrugen während des gesamten Zeitraums 125, und die Verbindungen blieben die meiste Zeit bei etwa 100. Jetzt, da die Ergebnisse da sind, kann ich anfangen, für die Zukunft zu planen. Mit InsertMany können Sie 1 Million Datensätze in weniger als einer Minute einfügen. Für das Laden zwischen 1 und 10 Metern wäre die Stream-API höchstwahrscheinlich erforderlich, um Einfügungen zu parallelisieren. Da die Cluster-CPU und IOPS so hoch sind, kann die App-Leistung stark darunter leiden. Führen Sie ein Planungsskript aus, um zu bestimmen, wie viele Operationen/Prozesse gleichzeitig ausgeführt werden können.

MongoDB hat eine Reihe von Vorteilen gegenüber anderen Dateispeichersystemen und ist darüber hinaus eine ausgezeichnete Wahl für große Dateien. Zunächst können große Dateien problemlos in der Datenbank gespeichert werden. Darüber hinaus hat die Datenbank die Kapazität, eine große Anzahl von Objekten zu verarbeiten. Schließlich ist die Datenbank horizontal skalierbar, sodass sie eine größere Datenmenge verarbeiten kann, ohne überfordert zu werden. Wenn Sie riesige Dateien in einer Datenbank speichern möchten, ist MongoDB eine ausgezeichnete Wahl. Es bietet zahlreiche Vorteile gegenüber anderen Speicher- und Skalierbarkeitsoptionen.

Was ist die maximale Größe eines Mongodb-Dokuments?

Bildnachweis: brain-mentors.com

Die maximale Größe für ein MongoDB-Dokument beträgt 16 Megabyte.

So fügen Sie Millionen von Datensätzen in Mongodb ein

Angenommen, Sie haben einen MongoDB-Server ausgeführt und eine Datenbank und Sammlung erstellt, können Sie Datensätze mit der Methode insert() einfügen. Diese Methode kann entweder ein Array von Dokumenten oder ein einzelnes Dokument verwenden.
Um ein einzelnes Dokument einzufügen, verwenden Sie die folgende Syntax:
db.collection.insert(
{
Name: „John Doe“
}
)
Um mehrere Dokumente einzufügen, verwenden Sie die folgende Syntax:
db.collection.insert([
{
Name: „John Doe“
},
{
Name: „Jane Doe“
}
])

Sie haben einige Möglichkeiten. Es ist möglich, eine separate Sammlung für jede Geräte-ID zu erstellen und diese ID dann separat abzufragen. Wenn Sie viele Geräte haben, kann dies teuer werden. Wenn Sie nach allen Dokumenten in einer Sammlung suchen möchten, können Sie dasselbe mit derselben Sammlung für alle Geräte tun. Die Kosten für diesen Dienst können unerschwinglich sein, wenn Sie eine große Anzahl von Geräten haben. Die dritte Option besteht darin, eine Sharding-Sammlung zu erstellen. Die Last wird über Mongo verteilt, was zu einer schnelleren Abfrageverarbeitung führt . Wenn Sie die Sammlung mit der Sharding-Sammlungsoption erstellen möchten, stellen Sie sicher, dass die Shards-Option auf „true“ gesetzt ist.

Mongodb: Ein Nosql-Datenbankverwaltungssystem

MongoDB ist ein NoSQL-Datenbankverwaltungssystem, das für die Verwaltung von Dokumenten entwickelt wurde. Es kann eine Vielzahl von Datendateien verarbeiten, mit einem Standardlimit von 100.000 Indexschlüsseln pro Dokument. Die MongoDB-Plattform ist somit in der Lage, eine große Datenmenge zu speichern, ohne überlastet zu werden. Das Masseneinfügen ist eine praktische Funktion in MongoDB. Dies kann nützlich sein, wenn Sie viele Daten hinzufügen müssen, da mehrere Dokumente gleichzeitig eingefügt werden können.

Limit für Mongodb-Masseneinfügungen

Die Version MongoDB 3.6 liefert derzeit 100.000.

Eine Bulk-Insert-Methode ermöglicht das gleichzeitige Einfügen mehrerer Dokumente in MongoDB. Als Parameter erzeugt die Insert-Methode ein Array von Dokumenten. Benutzer müssen nicht alle Felder in ihre Abfrage aufnehmen. In diesem Beispiel verwenden wir die Befehlszeile, um mehrere Dokumente mithilfe der MongoDB-Masseneinfügung einzufügen. Das Masseneinfügen einer Zahl erfolgt mit der Methode Bulk.insert(). Diese Methode, die nach Version 2.6 eingeführt wurde, ähnelt der ungeordneten Masseneinfügung. Wir erstellen zuerst eine geordnete Liste von Autos mit einem carbulk1-Namen und fügen dann die Dokumente ein, indem wir die execute-Methode darauf ausführen. Dieses Java-Programm demonstriert zum ersten Mal, wie eine Vielzahl von Massenoperationen mithilfe von Shell-Befehlen ausgeführt werden.

Hat Mongodb ein Limit?

MongoDB unterstützt eine Verschachtelungstiefe von 100 Ebenen, sodass Dokumente eine Größe von bis zu 16 MB haben können. Die MongoDB-Datenbank kann nur maximal 20 GB Daten enthalten.