Database
 sql >> Datenbank >  >> RDS >> Database

Relationale vs. nicht relationale Datenbanken – Teil 2

In meinem vorherigen Beitrag haben wir einige grundlegende Unterschiede zwischen relationalen und nicht relationalen Datenbanken gesehen. Lassen Sie uns in diesem Beitrag über die Skalierbarkeit dieser beiden sprechen.

Skalierbarkeit

Es ist eine Fähigkeit eines Systems, das schnell eingehende Daten ohne große Leistungsprobleme aufnehmen kann. Dies ist der Hauptfaktor für jedes System, um eine gute Skalierbarkeit bereitzustellen. Es gibt zwei Arten von Skalierungsmethoden, die als vertikale und horizontale Skalierung bekannt sind.

Vertikale Skalierung

Alle Tools für relationale Datenbanken unterstützen die vertikale Skalierung. Dies ist die Methode zur Steigerung der Leistung des Systems durch Hinzufügen zusätzlicher CPU-, Arbeitsspeicher- und Festplattenspeicherplätze. Um schnell eingehende Daten zu ermöglichen, ist der einzelne Produktionsserver für die Skalierung optimiert. Bei dieser Skalierungstechnik gibt es immer einen einzigen Produktionsserver, der von allen Anwendungen und Benutzern verbunden werden kann. Eine Cluster-Umgebung kann mit einigen Knoten erstellt werden und die Daten über Knoten hinweg replizieren.

Aufgrund der ACID-Eigenschaften sollten alle Knoten denselben Datensatz haben, und die Datensynchronisierung wird kompliziert, wenn mehrere Knoten im Cluster vorhanden sind. Dies ist sehr optimiert für die Leseskalierung. Vertikale Skalierung wird auch als Scale-up bezeichnet
Der Vorteil dieser Skalierungsmethode ist die enge Integration von Daten und ihre Konsistenz über die Knoten in einem Cluster hinweg. Alle Knoten haben den gleichen Datensatz und wenn es ein Problem mit dem Produktionsserver gibt, wird automatisch ein anderer Knoten von den Anwendungen verbunden. Daher wird dieser Cluster als Failover-Cluster bezeichnet.

Horizontale Skalierung

Alle Tools für nicht relationale Datenbanken unterstützen die horizontale Skalierung. Dies ist die Methode zum Hinzufügen weiterer Computer zum Netzwerk, um einen schnellen Dateneingang zu ermöglichen. Es ist einfach, dem Cluster weitere Knoten hinzuzufügen, um das Datenwachstum zu ermöglichen. Daten werden automatisch aufgeteilt und über Knoten in einem Cluster verarbeitet. Dies ist eine verteilte Datenumgebung. Hadoop Distributed File System (HDFS) ist dafür ein klassisches Beispiel. Die horizontale Skalierung wird auch als Scale-out bezeichnet.

Der Vorteil dieser Skalierungstechnik besteht darin, dass die Anwendung immer noch über die Daten von anderen Knoten verfügen kann, da Daten über Knoten verteilt und repliziert werden, wenn einer der Knoten offline geht, wodurch die Verfügbarkeit von Daten jederzeit gewährleistet ist. Diese Methode ist sehr nützlich für die Fälle, in denen keine JOINs zwischen den Daten der Knoten erforderlich sind. Dies ist auch hilfreich, um Daten zu trennen und sie an verschiedenen geografischen Standorten zu haben.

Während diese beiden Skalierungstechniken Vor- und Nachteile haben, kann eine gute Umgebung beide mischen, um ein hervorragendes Scale-up und Scale-out zu erzielen. Wir können eine Scale-up-Datenbank mit Lese- und Schreibzugriff auf einem einzelnen Server haben, die ACID-Eigenschaften erfordert, und eine Scale-out-Verteilung historischer Daten über mehrere Knoten für Data-Mining-Zwecke.