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 ).
quelle
Antworten:
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.
quelle