2016-08-06 25 views
0

ttlの更新について読んだので、行を更新することによってのみ可能です。 しかし、私はttlを削除したい。私はそれが同じプロセスであることを恐れていますが、私はそれについての情報は見つかりませんでした。すべての行を更新せずにttlを削除する方法はありますか?指定されたttlをcassandraで削除する

私がしていることは、ユーザーが登録しているときにユーザー情報をttlで保存していることです。ユーザーが自分のメールアドレスを確認しないと、自動的にエントリが削除されます。

答えて

0

公式ドキュメントhereの抜粋です。

期限切れのデータのTTLを変更する場合は、データを新しいTTLの に再挿入する必要があります。カッサンドラでは、データの挿入は、 のデータの前のバージョンが存在するかどうかによって、実際には挿入または更新操作です。

TTLデータの精度は、サーバー上で計算された1秒です。 したがって、非常に小さなTTLはおそらくあまり意味がありません。 さらに、サーバー上のクロックは同期する必要があります。そうでない場合は、 は、最初の挿入を受信したプライマリホストで満了時間が であるのに、 がクラスタ上の他のホストによって解釈されるため、精度が低下することがあります。

これは実際には少し不快ですが、非常に簡単な移行ツールを作成するのは比較的簡単です。テーブル全体を繰り返し、新しいTTLを持つすべてのレコードを別のテーブルに再挿入するだけです。

これを行う余裕があるなら、TTLで1回、1回でなく2回レコードを保存する方がより説得力のあるアイデアかもしれません。制限を回避するだけです:TTLをキャンセルまたは変更できませんカサンドラで

関連する問題