Inhaltsverzeichnis:
Video: #MASKID - Warum wir die Bundesdruckerei gehackt und jetzt einen Pass mit Mogherinis Gesicht haben. 2025
Sie finden zwei Arten von Dokumentendatenbanken für Big Data-Projekte. Man wird oft als ein Repository für vollständigen Dokumentstil-Inhalt beschrieben. Die andere ist eine Datenbank zum Speichern von Dokumentenkomponenten für die permanente Speicherung als statische Entität oder zum dynamischen Zusammenfügen der Teile eines Dokuments. Die Struktur der Dokumente und ihrer Teile wird von JavaScript Object Notation (JSON) und / oder Binary JSON (BSON) bereitgestellt.
Dokumentendatenbanken sind am nützlichsten, wenn Sie viele Berichte erstellen müssen und dynamisch aus Elementen zusammengestellt werden müssen, die sich häufig ändern.
Im Kern ist JSON ein Datenaustauschformat, das auf einer Untermenge der JavaScript-Programmiersprache basiert. Obwohl es Teil einer Programmiersprache ist, ist es textlicher Natur und sehr leicht zu lesen und zu schreiben. Es hat auch den Vorteil, dass Computer leicht zu handhaben sind. In JSON gibt es zwei grundlegende Strukturen, die von vielen, wenn nicht sogar allen modernen Programmiersprachen unterstützt werden.
Die erste grundlegende Struktur ist eine Sammlung von Name / Wert-Paaren, die programmatisch als Objekte, Datensätze, Schlüssellisten usw. dargestellt werden. Die zweite grundlegende Struktur ist eine geordnete Liste von Werten, und sie werden programmatisch als Arrays, Listen oder Sequenzen dargestellt. BSON ist eine binäre Serialisierung von JSON-Strukturen, die die Leistung und Skalierbarkeit erhöhen sollen.
MongoDB für Big Data
MongoDB ist der Projektname für das System "hu (mongo) us database". Es wird von einer Firma namens 10gen als Open Source betrieben und ist unter der GNU AGPL v3 frei verfügbar. 0 Lizenz. Kommerzielle Lizenzen mit voller Unterstützung sind bei 10gen erhältlich.
MongoDB besteht aus Datenbanken mit "Sammlungen". "Eine Sammlung besteht aus" Dokumenten ", und jedes Dokument besteht aus Feldern. Genau wie in relationalen Datenbanken können Sie eine Sammlung indizieren.
Dadurch wird die Leistung der Datenabfrage erhöht. Im Gegensatz zu anderen Datenbanken gibt MongoDB jedoch einen so genannten "Cursor" zurück, der als Zeiger auf die Daten dient. Dies ist eine sehr nützliche Funktion, da sie die Möglichkeit bietet, die Daten zu zählen oder zu klassifizieren, ohne sie zu extrahieren. MongoDB unterstützt nativ BSON, die binäre Implementierung von JSON-Dokumenten.
MongoDB ist auch ein Ökosystem, das aus den folgenden Elementen besteht:
-
Hochverfügbarkeits- und Replikationsdienste für die Skalierung in lokalen und Weitverkehrsnetzen.
-
Ein rasterbasiertes Dateisystem, das die Speicherung großer Objekte durch Aufteilung in mehrere Dokumente ermöglicht.
-
MapReduce zur Unterstützung der Analyse und Aggregation verschiedener Sammlungen / Dokumente.
-
Ein Sharding-Dienst, der eine einzelne Datenbank über ein Cluster von Servern in einem einzelnen oder mehreren Datencentern verteilt. Der Dienst wird von einem Shard-Schlüssel gesteuert. Der Shard-Schlüssel wird verwendet, um Dokumente intelligent über mehrere Instanzen hinweg zu verteilen.
-
Ein Abfragedienst, der Ad-hoc-Abfragen, verteilte Abfragen und Volltextsuche unterstützt.
Zu den effektiven MongoDB-Implementierungen gehören
-
Hochvolumiges Content-Management
-
Soziale Netzwerke
-
Archivieren
-
Echtzeit-Analysen
CouchDB für Big Data
Eine weitere sehr beliebte nicht relationale Datenbank ist CouchDB. Wie MongoDB ist CouchDB Open Source. Es wird von der Apache Software Foundation verwaltet und steht unter der Apache License v2 zur Verfügung. 0. Im Gegensatz zu MongoDB wurde CouchDB entwickelt, um das Web in jeder Hinsicht nachzuahmen.
Zum Beispiel ist CouchDB gegenüber Netzausfällen widerstandsfähig und wird auch in Bereichen, in denen die Netzwerkkonnektivität nur sporadisch ist, weiterhin gut funktionieren. Es ist auch auf einem Smartphone oder in einem Rechenzentrum zu Hause. Das alles kommt mit ein paar Kompromissen. Aufgrund der zugrundeliegenden Web-Mimikry hat CouchDB eine hohe Latenz, was zu einer Bevorzugung der lokalen Datenspeicherung führt.
CouchDB eignet sich nicht für kleinere Implementierungen. Sie müssen feststellen, ob diese Kompromisse ignoriert werden können, wenn Sie mit der Big Data-Implementierung beginnen.
CouchDB-Datenbanken bestehen aus Dokumenten, die aus Feldern und Anhängen bestehen, sowie einer "Beschreibung" des Dokuments in Form von Metadaten, die automatisch vom System gepflegt werden. Die zugrunde liegende Technologie verfügt über alle ACID-Funktionen. Der Vorteil in CouchDB gegenüber relationalen ist, dass die Daten gepackt und bereit für die Manipulation oder Speicherung sind, anstatt über Zeilen und Tabellen verteilt zu sein.
CouchDB ist auch ein Ökosystem mit den folgenden Fähigkeiten:
-
Kompaktierung: Die Datenbanken werden komprimiert, um unnötigen Speicherplatz zu vermeiden, wenn ein bestimmtes Maß an Leerheit erreicht wird. Dies hilft der Performance und der Effizienz bei der Persistenz.
-
Modell anzeigen: Ein Mechanismus zum Filtern, Organisieren und Berichten von Daten unter Verwendung einer Reihe von Definitionen, die als Dokumente in der Datenbank gespeichert werden. Sie finden eine One-to-many-Beziehung von Datenbanken zu Ansichten, so dass Sie viele verschiedene Möglichkeiten zur Darstellung der Daten erstellen können, die Sie "in Scheiben geschnitten und gewürfelt" haben. "
-
Replikation und verteilte Dienste: Der Dokumentenspeicher ist für bidirektionale Replikation vorgesehen. Teilrepliken können verwaltet werden, um eine kriterienbasierte Verteilung oder Migration zu Geräten mit eingeschränkter Konnektivität zu unterstützen. Die native Replikation ist Peer-basiert, Sie können jedoch Master / Slave, Master / Master und andere Replikationsmodalitäten implementieren.
Effektive CouchDB-Implementierungen sind:
-
Umfangreiche Inhaltsverwaltung
-
Skalierung vom Smartphone zum Rechenzentrum
-
Anwendungen mit eingeschränkter oder langsamer Netzwerkverbindung
