Video: What is Hadoop?: SQL Comparison 2024
NoSQL Datenspeicher ursprünglich den Begriff "Sag einfach Nein zu SQL" abonniert Anti-Drogen-Werbekampagne in den 1980er Jahren), und sie waren eine Reaktion auf die wahrgenommenen Einschränkungen von (SQL-basierten) relationalen Datenbanken. Es ist nicht so, dass diese Leute SQL hassten, aber sie waren es leid, quadratische Stifte in runde Löcher zu zwingen, indem sie Probleme lösten, für die relationale Datenbanken nicht ausgelegt waren.
Eine relationale Datenbank ist ein leistungsfähiges Werkzeug, aber für einige Arten von Daten (wie Schlüssel-Wert-Paare oder Graphen) und einige Verwendungsmuster (wie extrem großer Speicher) ist eine relationale Datenbank einfach nicht t praktisch. Und wenn es um hochvolumigen Speicher geht, kann eine relationale Datenbank teuer sein, sowohl in Bezug auf Datenbanklizenzkosten als auch Hardwarekosten. (Relationale Datenbanken sind für die Zusammenarbeit mit Hardware der Enterprise-Klasse konzipiert.)
Mit der NoSQL-Bewegung entwickelten kreative Programmierer Dutzende von Lösungen für verschiedene Arten von heiklen Datenspeicherungs- und Verarbeitungsproblemen. Diese NoSQL-Datenbanken bieten in der Regel massive Skalierbarkeit durch Clustering und sind häufig für einen hohen Durchsatz und eine niedrige Latenz ausgelegt.
Der Name NoSQL ist etwas irreführend, da viele Datenbanken, die in die Kategorie passen, SQL-Unterstützung (und nicht "NoSQL" -Unterstützung) haben. Betrachten Sie ihren Namen stattdessen als "Nicht nur SQL. "
Die heute verfügbaren NoSQL-Angebote lassen sich je nach Design und Zweck in vier verschiedene Kategorien unterteilen:
-
Schlüsselwert-Shops: Dieses Angebot bietet eine Möglichkeit, jede Art von Daten zu speichern. von Daten, ohne ein Schema verwenden zu müssen. Dies steht im Gegensatz zu relationalen Datenbanken, in denen Sie das Schema (die Tabellenstruktur) vor dem Einfügen von Daten definieren müssen. Da Schlüsselwertspeicher kein Schema erfordern, können Sie Daten in vielen Formaten speichern.
In einem Schlüsselwertspeicher besteht eine Zeile einfach aus einem Schlüssel (einem Bezeichner) und einem Wert, der von einem ganzzahligen Wert bis zu einem großen binären Datenstring reichen kann. Viele Implementierungen von Key-Value-Stores basieren auf dem Dynamo-Papier von Amazon.
-
Column family stores: Hier haben Sie Datenbanken, in denen Spalten in Spaltenfamilien gruppiert und zusammen auf Festplatte gespeichert werden.
Streng genommen sind viele dieser Datenbanken nicht spaltenorientiert, da sie auf Googles BigTable-Papier basieren, das Daten als mehrdimensionale sortierte Karte speichert.
-
Dokumentenspeicher: Dieses Angebot basiert auf Sammlungen ähnlich kodierter und formatierter Dokumente, um die Effizienz zu verbessern.Dokumentenspeicher ermöglichen es einzelnen Dokumenten in einer Sammlung, nur eine Teilmenge von Feldern aufzunehmen, sodass nur die benötigten Daten gespeichert werden. Für dünn besiedelte Datensätze, in denen viele Felder häufig nicht gefüllt werden, kann dies zu erheblichen Platzeinsparungen führen.
Im Gegensatz dazu nehmen leere Spalten in relationalen Datenbanktabellen Platz ein. Dokumentablagen ermöglichen außerdem Schemaflexibilität, da nur die erforderlichen Felder gespeichert und neue Felder hinzugefügt werden können. Im Gegensatz zu relationalen Datenbanken werden Tabellenstrukturen im Voraus definiert, bevor Daten gespeichert werden, und das Ändern von Spalten ist eine mühsame Aufgabe, die sich auf den gesamten Datensatz auswirkt.
-
Diagrammdatenbanken: Hier gibt es Datenbanken, die Diagrammstrukturen speichern - Repräsentationen, die Sammlungen von Entitäten (Knoten oder Knoten) und deren Beziehungen (Kanten) zueinander zeigen. Diese Strukturen ermöglichen es, dass Graphendatenbanken sehr gut zum Speichern komplexer Strukturen geeignet sind, wie beispielsweise die Verknüpfungsbeziehungen zwischen allen bekannten Webseiten. (Zum Beispiel sind einzelne Webseiten Knoten, und die Kanten, die sie verbinden, sind Links von einer Seite zu einer anderen.)
Google ist natürlich die gesamte Graph-Technologie und hat eine Graph-Verarbeitungsmaschine erfunden, die Pregel heißt, um ihren PageRank zu betreiben. Algorithmus. (Und ja, es gibt ein Whitepaper über Pregel.) In der Hadoop-Community gibt es ein Apache-Projekt namens Giraph (basierend auf dem Pregel-Artikel), einer Grafikverarbeitungs-Engine zur Verarbeitung von in HDFS gespeicherten Graphen.
Die in Hadoop verfügbaren Datenspeicherungs- und Verarbeitungsoptionen sind in vielen Fällen Implementierungen der hier aufgeführten NoSQL-Kategorien. Auf diese Weise können Sie besser Lösungen auswerten, die Ihnen zur Verfügung stehen, und sehen, wie Hadoop herkömmliche Data Warehouses ergänzen kann.