2017-06-30 13 views
0

挿入中にTTL値を設定したレコードが多数あるテーブルがあります。今私はTTL値でレコードを簡単に5年に更新したいと思っています。私たちはUPDATE TABLE USING TTL <value> set column ='' where conditionを通してそれをやることができると知っていますが、私は何百万ものレコードを持っているので、1つのクエリで解決策が必要です。Cassandraデータベースのテーブル内の既存の行のTTL値を更新します。

+0

私はそれが可能ではないと思います。あなたはspark-cassandraコネクタを使ってデータを読み、それをcassandraに書き戻すことができます。 –

答えて

0

1回のクエリでは実行できません。 TTLにはデータが書き込まれているため、すべてを書き直す必要があります。 Sparkの仕事、すべてのものを読み書きするためのスクリプトをオフにすること、またはコンパクション中にすべてを書き直すカスタムのコンパクションツールを書くことをお勧めします。

+0

バージョン2.1の最適なソリューションをお勧めしますか?スパークの仕事は何ですか? –

+0

最も簡単な方法は、新しいttlですべてを読み込んで書き換える小さなスクリプトを書くことです。選択時にWRITETIME関数を使用して、書かれた時間を取得し、それを使って新しいttl '(5年 - (now-writetime))'を導き出すことができます –

関連する問題