Wie nennt man das Datenmodell von DynamoDB und Cassanda?

9

Der Wikipedia-Artikel zu DynamoDB besagt, dass DynamoDB eine " Schlüsselwert " -Datenbank ist. Wenn Sie es jedoch als "Schlüsselwert" -Datenbank bezeichnen, fehlt ein äußerst grundlegendes Merkmal von DynamoDB, das des Sortierschlüssels : Schlüssel bestehen aus zwei Teilen (Partitionsschlüssel und Sortierschlüssel), und Elemente mit demselben Partitionsschlüssel können effizient sortiert abgerufen werden durch den Sortierschlüssel.

Cassandra hat auch genau die gleiche Funktion zum Sortieren von Elementen innerhalb einer Partition (die als "Clustering Key" bezeichnet wird), und der Wikipedia-Artikel von Cassandra verwendet den Begriff " Wide Column Store" , um sie zu beschreiben. Obwohl dieser Begriff "breite Spalte" besser ist als "Schlüsselwert", ist er dennoch etwas unangemessen, da er die allgemeinere Situation beschreibt, in der ein Element eine sehr große Anzahl nicht verwandter Spalten haben kann - nicht unbedingt eine sortierte Liste separater Spalten Artikel.

Meine Frage ist also, ob es einen passenderen Begriff gibt , der das Datenmodell einer Datenbank wie DynamoDB und Cassandra beschreiben kann - Datenbanken, die wie ein Schlüsselwertspeicher Elemente für einzelne Schlüssel effizient abrufen können, aber auch Elemente, die nach dem sortiert sind, effizient abrufen können Schlüssel oder nur ein Teil davon (DynamoDBs Sortierschlüssel oder Cassandras Clustering-Schlüssel ).

Nadav Har'El
quelle
2
Ich finde "Schlüssel-Schlüssel-Wert", um die Partition / Reihenfolge / Wert-Natur dieses Modells zu erfassen
Tzach Livyatan
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da sie nicht mit der Codierung zu tun zu haben scheint.
Charles
5
Warum muss es mit "Codierung" zusammenhängen? Es hat kein Tag C ++ oder Java oder eine andere Programmiersprache, daher geht es nicht darum, in einer Programmiersprache zu codieren. Es hat die Cassandra et al. Tags - zeigt an, dass es sich um diese Software handelt . Gibt es eine bessere Stackexchange-Site, von der Sie glauben, dass sie besser zu Fragen zu Software passt? Und beachten Sie, dass diese Frage bereits +2 Punkte hat. Es ist anscheinend keine wirklich schlechte Frage.
Nadav Har'El
2
Mein Vorschlag "Key-Sortable-Value"
TomerSan

Antworten:

3

Vor der Einführung von CQL hat Cassandra das Datenmodell für den breiten Spaltenspeicher strenger eingehalten, bei dem nur Zeilen durch einen Zeilenschlüssel identifiziert wurden und sortierte Schlüssel- / Wertespalten enthielten. Mit der Einführung von CQL wurden Zeilen als Partitionen bekannt und Spalten konnten optional über Clustering-Schlüssel zu logischen Zeilen zusammengefasst werden.

Selbst bis Cassandra 3.0 war CQL lediglich eine Abstraktion über dem ursprünglichen Sparsamkeitsdatenmodell, und es gab kein Konzept für CQL-Zeilen innerhalb der Speicher-Engine. Sie waren nur eine sortierte Gruppe von Spalten mit einem zusammengesetzten Schlüssel, der aus den verketteten Werten der Clusterschlüssel bestand. Weitere Details finden Sie in diesem Artikel . Jetzt gibt es native Unterstützung für CQL in der Speicher-Engine, wodurch CQL-Datenmodelle effizienter gespeichert werden können.

Wenn Sie sich eine CQL-Zeile jedoch als logische Gruppierung von Spalten innerhalb derselben Partition vorstellen, kann Cassandra dennoch als breiter Spaltenspeicher betrachtet werden. Auf jeden Fall gibt es meines Wissens keinen anderen gut etablierten Begriff, um diese Art von Datenbank zu beschreiben.

JB Langston
quelle