2013-08-24 18 views
11

Ich benutze Cassandra 1.2.5. Ist es nach dem Erstellen einer Spaltenfamilie in Cassandra mit cassandra-cli möglich, den Primärschlüssel der Spaltenfamilie entweder mit Cassandra-cli oder CQL zu ändern?Alter Cassandra Spalte Familie Primärschlüssel mit Cassandra-CLI oder CQL

Insbesondere habe ich zur Zeit in der folgenden Tabelle (von CQL):

CREATE TABLE "table1" (
    key blob, 
    column1 blob, 
    value blob, 
    PRIMARY KEY (key, column1) 
); 

ich den Tisch möchte wie folgt sein, ohne die Tabelle zu löschen und erneut erstellen:

CREATE TABLE "table1" (
    key blob, 
    column1 blob, 
    value blob, 
    PRIMARY KEY (key) 
); 

Ist dies möglich durch Cassandra-CLI oder CQL?

Antwort

16

Die Primärschlüssel bestimmen direkt, wie und wo Cassandra die Daten speichert, die in einer Tabelle (Spaltenfamilie) enthalten sind. Der Primärschlüssel besteht aus Partitionsschlüssel und Clustering-Schlüssel (optional).

Der Partitionsschlüssel bestimmt, welcher Knoten die Daten speichert. Es ist verantwortlich für die Datenverteilung über die Knoten. Die zusätzlichen Spalten bestimmen das Clustering pro Partition (siehe compound key documentation).

Wenn Sie also den Primärschlüssel ändern, müssen immer alle Daten migriert werden. Ich denke nicht, dass entweder cqlsh oder cassandra-cli dafür einen Befehl haben (Stand 2015).