Time To Liveを使用したデータの期限の設定

Time To Live(TTL)を使用して、カラムまたはテーブル内のデータの期限を設定します。

カラムおよびテーブルは、TTL(Time To Live)という任意指定の有効期間をサポートしています。TTLはカウンター・カラムではサポートされていません。TTLの値は秒数で定義します。データは、TTL期間を過ぎると期限切れになり、tombstoneのマークが付きます。期限切れのデータは、猶予期間中も引き続き読み取り要求に対応できます。「gc_grace_seconds」を参照してください。通常のコンパクションとリペア・プロセスでは、トゥームストーン・データを自動的に削除します。

注:
  • TTLの精度は1秒で、これはコーディネーター・ノードで計算されます。TTLを設定する際は、クラスター内のすべてのノードでクロックを同期していることを確認してください。
  • TTLの期間が短すぎると役立ちません。

  • データの期限を設定すると、TTLと猶予期間を記録するためにメモリー8バイトとディスク領域を追加で使用します。

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

特定のカラムに対するTTLの設定

CQLを使用して、TTLを設定します。

特定のカラムのTTLを変更するには、新しいTTLを含むデータを再度挿入する必要があります。データベースでは新しいTTLを含むカラムのupsert操作を実行します。

TTLをカラムから削除するには、TTLを0に設定します。詳細については、「UPDATE」のドキュメントを参照してください。

テーブルに対するTTLの設定

CREATE TABLEまたはALTER TABLEを使用して、テーブル内のすべてのカラムに対してdefault_time_to_liveプロパティを定義します。いずれかのカラムがTTLを経過すると、行全体が削除されます。

詳細と例については、「TTLを使用したデータの期限の設定に関する例」を参照してください。