web-dev-qa-db-ja.com

cassandra CQL 3.0の複合主キーを変更する

私は、次のように複合主キーを変更する必要がある状況にあります。

古い主キー:(id、source、attribute_name、updated_at);

新しい主キー:(source、id、attribute_name、updated_at);

次の(mysqlのような)コマンドを発行しました。

ALTER TABLE general_trend_table 
DROP PRIMARY KEY, 
ADD PRIMARY KEY(source, id, attribute_name, updated_at);

次のエラーが表示されました。

悪い要求:行1:38入力 'PRIMARY'で実行可能な代替はありません

この問題を回避する方法はありますか?具体的には、cassandraの主キーを変更する方法はありますか?

28
aroyc

データが物理的に保存される方法を定義するため、主キーを変更する方法はありません。

新しい主キーを使用して新しいテーブルを作成し、古いテーブルからデータをコピーして、古いテーブルを削除できます。

56
Mikhail Stepura

古い主キーを使用する可能性がある場合、マテリアライズドビューを作成できます。 http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateMV.html しかし古いキーが必要な場合にのみお勧めします。

1
CordlessWool