Cassandra Composite-Schlüssel verstehen

8

Ich habe gerade dieses YouTube-Video von Patrick McFadin über Cassandra-Datamodelling gesehen.

Es gab eine Tabelle wie folgt:

%Vor%

Warum ist der Primärschlüssel ((username,interaction_date),interaction_time) ? Wie ist das anders als (username,interaction_date,interaction_time) .

    
S Kr 24.10.2013, 04:50
quelle

1 Antwort

13

Der Unterschied hängt mit der partition_key der Tabelle zusammen. In der Regel ist das erste Element in einem PRIMARY KEY auch der Partitionsschlüssel - dies definiert den physischen Speicherort der Daten im Cluster, z. B. indem Sie Folgendes verwenden:

%Vor%

Daten, die in die Tabelle eingefügt werden, werden gemäß username (physisch) partitioniert, wobei Sie Folgendes verwenden:

%Vor%

wird nach der username,interaction_date -Kombination partitioniert. Der Vorteil des letzteren Schemas besteht darin, dass Daten, die sich auf ein einzelnes username beziehen, über Knoten im Cluster gespeichert werden können.

Weitere Details zu partition_keys in der CQL-Dokumentation von datastax finden Sie unter CREATE TABLE :

  

Wenn Sie einen zusammengesetzten PRIMARY KEY verwenden, behandelt Cassandra die erste in einer Definition deklarierte Spalte als Partitionsschlüssel und speichert alle Spalten der Zeile auf demselben physischen Knoten. Wenn Sie einen zusammengesetzten Partitionsschlüssel verwenden, behandelt Cassandra die Spalten in verschachtelten Klammern als Partitionsschlüssel und speichert Spalten einer Zeile auf mehreren Knoten. Sie deklarieren eine Zusammensetzung   Partitionieren Sie den Schlüssel mithilfe eines zusätzlichen Satzes von Klammern, um zu definieren, welche Spalten die Daten partitionieren.

    
lorcan 24.10.2013, 08:44
quelle

Tags und Links