2013-08-07 18 views
17

Ich versuche, die Tabelle umzubenennen, die über CQLSH hergestellt wird. Zum Beispiel Benennen Sie die Tabelle "AAA" in "BBB" um. Kann keinen Befehl dazu finden. Irgendwelche Ideen?Wie man Tabelle in Cassandra CQL3 umbenennt

Verwenden von [cqlsh 3.1.6 | Cassandra 1.2.8 | CQL Spezifikation 3.0.0 | Thrift-Protokoll 19.36.0]

Antwort

23

Ich glaube nicht, dass Sie Tabellen oder Schlüsselbereiche umbenennen können, es gibt keine CQL3-Operation, und auch nichts in den alten Thirft-Schnittstellen, wenn ich mich richtig erinnere.

Ein Grund, warum Sie nicht können ist, dass es für Cassandra eine extrem harte Sache wäre, aufgrund ihrer verteilten Natur zu tun, die Änderung kann nicht atomar durchgeführt werden, so dass der Cluster in einem inkonsistenten Zustand wäre wahrscheinliche Updates wären verloren. Es ähnelt dem Erstellen und Löschen von Tabellen, aber in diesen Fällen wird erwartet, dass Aktualisierungen verloren gehen, wenn sie vor der Erstellung der Tabelle oder nach dem Löschen der Tabelle ausgegeben werden.

Der einzige Weg, den ich weiß, um zu tun, was Sie fragen, ist, die neue Tabelle zu erstellen und alle Daten von der alten auf die neue zu verschieben und dann die alte Tabelle zu löschen. Es könnte einen Weg geben, dies zu tun, ohne die Daten zu verschieben, aber es würde wahrscheinlich erfordern, dass Sie den Cluster stoppen und den Namen aller Verzeichnisse und Dateien der Tabelle ändern und auch die Metadaten in der Tabelle system.schema_columnfamilies ändern (aber ich ' Ich bin mir nicht sicher, ob du das überhaupt kannst.

+0

vkroz: Haben Sie die obige Lösung versucht? – Ztyx

+1

Wie wäre es mit einer Möglichkeit, eine Tabelle in eine andere zu kopieren? –

+0

Ich weiß, das ist halt, aber nur für den Fall, dass die nächste Person darauf stolpert ... Der beste Weg, um Daten von einer Tabelle in eine andere einzufügen, besteht darin, die Daten zu exportieren und sie dann in die nächste Tabelle zu importieren. Wenn Sie eine Tabelle umbenennen, würden Sie den Export durchführen, die neue Tabelle erstellen und dann die Daten importieren. Sie können die alte Tabelle jederzeit nach dem Export löschen. https://docs.datastax.com/de/cql/3.1/cql/cql_reference/copy_r.html – ammills01

Verwandte Themen