0

この更新プログラムは何度でも実行できます。つまり、行 'test' が既に存在する場合、コードはエラーになりません。

[default@testdata] update column family my_column_family with
...         column_metadata =
...         [
...         {column_name: test, validation_class: UTF8Type}
... ];
f20046d1-0f89-3c52-b568-c41061e32071
Waiting for schema agreement...
... schemas agree across the cluster
[default@testdata] update column family my_column_family with
...         column_metadata =
...         [
...         {column_name: test, validation_class: UTF8Type}
... ];
299eebb0-3c71-378d-b9cd-972bb35a49e0
Waiting for schema agreement...
... schemas agree across the cluster

また、更新によってその行の既存のデータが削除されることはありません。

私の質問: 同じ行を複数回追加すると、知っておくべき二次的な影響がありますか? 再度指定しない限り、更新時にインデックスが削除されると思いますが、これについては心配していません。

更新が高速で実行されるとは思いません。おそらく毎日かそこらですが、列ファミリーには何百万ものレコードが含まれる場合があります。

4

1 に答える 1

1

簡単な答え: CQL を使用すると、より理にかなっています。http://www.datastax.com/docs/1.2/ddl/table

より長い答え: Thrift column_metadata を設定すると、必要に応じてインデックスが削除または作成され、Cassandra の内部スキーマが更新するように指示したものと一致します。列の型を互換性のないものに変更することはできませんが、定義を削除して再度追加することで「だます」ことができます。

注意: CQL を使用しているか、Thrift を使用しているかにかかわらず、スキーマを毎日変更している場合は間違っています。

于 2013-06-05T17:23:10.590 に答える