私は自分のアプリケーションにCassandraデータベースを使用しており、リクエストごとにTTLを設定しています。テスト目的のために、私は別のデータベース(同じスキーマですが、ローカル)を使用しています。データを保持したいと思っています。作成中にデフォルトに設定することで、ttlをオーバーライドする方法があるかどうか不思議でしたテーブルなどがあります。TTLを上書きするCassandra
ありがとうございます。
私は自分のアプリケーションにCassandraデータベースを使用しており、リクエストごとにTTLを設定しています。テスト目的のために、私は別のデータベース(同じスキーマですが、ローカル)を使用しています。データを保持したいと思っています。作成中にデフォルトに設定することで、ttlをオーバーライドする方法があるかどうか不思議でしたテーブルなどがあります。TTLを上書きするCassandra
ありがとうございます。
データのTTLを設定するための特定の列
使用CQLのためのTTLを設定します。
特定の列のTTLを変更するには、データ を新しいTTLに再挿入する必要があります。カッサンドラは、新しいTTLを持つ列をアップシュートします。 古い値が存在する場合は、古い値を古いTTLに置き換えます。
CQLテーブルの定義は表の各列に、特定のTTLを適用DEFAULT_TIME_TO_LIVE性、 を支持するテーブルのTTLを設定します。 default_time_to_live TTL値を超えた後、Cassandraは表全体を廃棄します。 CREATE TABLEまたはALTER TABLEを使用して、このデフォルトのTTLをCQLのテーブルに適用します。
あなたのテーブルが
ALTER TABLE table_name
WITH default_time_to_live= 0
使うローカル環境で0に等しいないTTL値を持っている場合。これは、テーブルレベルのTTLを変更します。
列レベルのTTLが設定されている場合は、レコードを挿入するコードを0以上のTTLで変更します。
私はそれがその方向に働くとは思わない。 CQLでTTLを指定していて、テーブルレベルでは指定していないからです。
http://cassandra.apache.org/doc/latest/cql/dml.html
テーブルはDEFAULT_TIME_TO_LIVEがある場合、0のTTLは、挿入または更新された値のためのTTLを削除します。 nullのTTLは、0のTTLで挿入するのと同じです。
CQL TTLがデフォルトより優先されます。テーブルレベルで9999のTTLがあり、CQLで50を使用する場合は、 50が使用されます。
はこちらをご参照 - http://www.mail-archive.com/[email protected]/msg50873.html
は例えば、私のテーブルの作成に私は9999にデフォルトのTTLを設定している場合、私は1つが適用される2のTTLを使用してデータを挿入していますか? –
データを挿入する間に、列レベルでttlが適用されるので、その列が削除された後に...つまり、すべてのデータがttl2で挿入されると、適用されます –