値のTime To Live(TTL)の設定

カラム内のデータが自動的に期限切れになるように設定するには、INSERT文とUPDATE文でUSING TTL Nオプションを使用します。

データのTTLを設定するには、USING TTLキーワードを使用します。TTL関数を使用して、TTL情報を取得することができます。

USING TTLキーワードを使用してデータをテーブルに特定の期間挿入したり更新したりすることができます。あるレコードの現在のTime To Liveを特定するには、TTL関数を使用します。

警告: 2038年問題のため、データベース・ストレージ・エンジンでは、January 19 2038 03:14:07 UTCのみをエンコードできます。TTL日付オーバーフローポリシーによって、有効期限が最長の日付よりも後のタイムスタンプの要求を拒否するか、受け入れるかどうかが決定します。-Dcassandra.expiration_date_overflow_policyを参照してください。

手順

  • データをcycling.calendarテーブルに挿入し、USING TTL句を使用して有効期限を86,400秒に設定します。
    INSERT INTO cycling.calendar (race_id, race_name, race_start_date, race_end_date) VALUES (200, 'placeholder','2015-05-27', '2015-05-27') USING TTL 86400;
  • SELECT文を発行し、データの期限までどのくらい残っているかを確認します。
    SELECT TTL (race_name) from cycling.calendar WHERE race_id = 200;

    少し経ってからこの手順を繰り返すと、Time To Live値が減少します。

  • Time To Live値は、UPDATEコマンドのUSING TTLキーワードで更新することもできます。
    UPDATE cycling.calendar USING TTL 300 SET race_name = 'dummy' WHERE race_id = 200 AND race_start_date = '2015-05-27' AND race_end_date = '2015-05-27';