IntからvarIntへの変更がサポートされていないため、cassandraテーブルの列を変更するための使用例があります(型をIntからLongに変更します)。cassandraクラスタの列変更を移行する方法
しかし、テーブルの中には、この列がクラスタ列であり、これを変更する方法がありません。
このケースを処理する最善の方法は何か不思議です。
IntからvarIntへの変更がサポートされていないため、cassandraテーブルの列を変更するための使用例があります(型をIntからLongに変更します)。cassandraクラスタの列変更を移行する方法
しかし、テーブルの中には、この列がクラスタ列であり、これを変更する方法がありません。
このケースを処理する最善の方法は何か不思議です。
Cassandraのクラスタリングカラムを変更することはできません。新しいテーブルを作成し、サードパーティのアプリケーション(cqlsh COPY
がSparkのようなもの)を使用してそのテーブルにデータをロードする必要があります。テーブルの名前の変更を許容できない場合は、データをバックアップし、古いテーブルを削除し、適切なタイプで再作成する必要があります。 https://docs.datastax.com/en/cql/3.1/cql/cql_reference/cql_data_types_c.html#concept_ds_wbk_zdt_xj__cql_data_type_compatibility がINT-> varintが可能であることを述べている:
私は同じ問題とのページを持っています。 – Chobicus
さて、私はCassandraのコードをチェックアウトしました。ドキュメントが間違っているようです。クラスタ化列のタイプは変更できません。 – Chobicus
CLUSTERING列の場合、メソッドAlterTableStatement.validateAlter(CFMetaData、ColumnDefinition、AbstractType >)は、IntegerTypeとInt32Typeに実装されていないisCompatibleWithメソッドをチェックします。デフォルトでは、これらの2つの型FALSEの型チェックがデフォルトです。 – Chobicus