0

Cassandra テーブルでは、「コレクション型」列のデータ型を変更するたびに、問題が発生し始めます。例えば:

データ型を からtextに変更するには、次のようMap<text,float>にします。

  • 既存の列をドロップ
  • cassandra がこの変更を吸収するのを待ちます。
  • 列(同じ名前)を追加しますが、データ型は異なります。

これはすべてのノードで正常に反映されますが、Cassandra ログは圧縮中に次のように不平を言い始めます。

RuntimeException: 6d6...73 はコレクションとして定義されていません

comparator表のエントリが正しくないことがわかりました"system.schema_columnfamilies"。テーブルを削除して再作成すると問題は解決しますが、常に可能とは限りません。

上記のような状況でコレクション型の列を扱う際のベスト プラクティスはありますか?

データベースのバージョン: DataStax-Enterprise: 4.7.1 Cassandra 2.1.8.621
cqlsh 5.0.1

4

1 に答える 1

1

Cassandra で WAT の瞬間の 1 つに出くわしたと思います。新しい列に以前に削除した名前を付けるのは悪い習慣です。うまくいかないこともあります。スキーマ (またはデータ) の移行については、ツールをご覧ください。データを保持し、フィールドに入力しながら、スキーマの更新を実行するのに役立ちます。

于 2016-05-11T19:12:18.467 に答える