Video: BARC-Webinar: Architekturen für performante Datenverarbeitung 2024
Spaltenspeicher in NoSQL ähneln beim ersten Erscheinen dem traditionellen relationalen DBMS. Die Konzepte von Zeilen und Spalten sind immer noch da. Sie definieren auch Spaltenfamilien, bevor Sie Daten in die Datenbank laden, was bedeutet, dass die Struktur der Daten im Voraus bekannt sein muss.
Spaltenspeicher organisieren jedoch Daten anders als relationale Datenbanken. Anstatt Daten in einer Reihe für schnellen Zugriff zu speichern, werden Daten für schnelle Spaltenoperationen organisiert. Mit dieser spaltenzentrierten Ansicht sind Spaltenspeicher ideal für die Ausführung von Aggregatfunktionen oder für das Durchsuchen von Datensätzen, die mehreren Spalten entsprechen.
Aggregatfunktionen sind Datenkombinationen oder Analysefunktionen. Sie können so einfach sein wie die Anzahl der Ergebnisse zählen, sie summieren oder ihren Durchschnittswert berechnen. Sie könnten jedoch komplexer sein - zum Beispiel einen komplexen Wert zurückgeben, der eine übergreifende Zeitspanne beschreibt.
Spaltenspeicher werden manchmal auch als Big Tables oder Big Table-Klone bezeichnet, was ihren gemeinsamen Vorfahren, Googles Bigtable, widerspiegelt.
Der Hauptunterschied zwischen Spaltenspeichern und einem traditionellen RDBMS besteht möglicherweise darin, dass in einem Spaltenspeicher jeder Datensatz (think row in einem RDBMS) keinen einzigen Wert erfordert. pro Spalte. Stattdessen ist es möglich, Spaltenfamilien zu modellieren. Ein einzelner Datensatz kann aus einem ID-Feld, einer Spaltenfamilie für "Kunden" -Informationen und einer anderen Spaltenfamilie für "Bestellartikel" -Informationen bestehen.
Jede dieser Spaltenfamilien besteht aus mehreren Feldern. Eine dieser Spaltenfamilien kann mehrere "Zeilen" an sich haben. Bestellpositionsinformationen haben zum Beispiel mehrere Zeilen - eine für jede Position. Diese Zeilen enthalten Daten wie Artikel-ID, Menge und Einheitspreis.
Ein entscheidender Vorteil eines Spaltenspeichers über ein RDBMS besteht darin, dass für Spaltenspeicher keine Felder erforderlich sind, die immer vorhanden sind und keinen leeren Nullwert für das Auffüllen erfordern, wie dies bei einem RDBMS der Fall ist. Diese Funktion verhindert das Problem der dünn besiedelten Daten und spart Speicherplatz. Ein Beispiel für einen variablen und einen spärlichen Datensatz wird hier gezeigt.
Das Tolle an den Spaltenspeichern ist, dass Sie alle zugehörigen Informationen mit einer einzigen Datensatz-ID abrufen können, anstatt den komplexen SQL-Join (Structured Query Language) wie in einem RDBMS zu verwenden. Dies erfordert jedoch ein wenig Vorabmodellierung und Datenanalyse.
Im gezeigten Beispiel können Sie alle Bestellinformationen abrufen, indem Sie eine einzelne Spaltenspeicherzeile auswählen. Das bedeutet, dass der Entwickler nicht die genaue komplexe Verknüpfungssyntax einer Abfrage in einem Spaltenspeicher berücksichtigen muss. müssen komplexe SQL-Joins in einem RDBMS verwenden.
Bei komplexen und variablen relationalen Datenstrukturen kann daher ein Spaltenspeicher im Speicher effizienter und bei der Entwicklung weniger fehleranfällig sein als seine RDBMS-Vorgänger.
Beachten Sie, dass in der Spaltenfamilie item die ID jedes Elements innerhalb des Schlüssels dargestellt wird und der Wert die bestellte Menge ist. Dieses Setup ermöglicht das schnelle Nachschlagen aller Bestellungen, die diese Artikel-ID enthalten.
Wenn Sie wissen, dass die Datenfelder im Voraus involviert sind und zusammengehörige Daten schnell als ein einziger Datensatz abgerufen werden müssen, betrachten Sie einen Spaltenspeicher.