仕組み: Amazon Keyspaces の有効期限 (TTL) - Amazon Keyspaces (Apache Cassandra 向け)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

仕組み: Amazon Keyspaces の有効期限 (TTL)

Amazon Keyspaces の有効期限 (TTL) は完全に管理されています。コンパクション戦略などといった低レベルのシステム設定を管理する必要はありません。Amazon Keyspaces では、データは指定した時点で期限切れになり、アプリケーションのパフォーマンスや可用性に影響を与えることなく、期限切れのデータが自動的に (通常は 10 日以内に) 削除されます。

期限切れのデータは削除対象としてマークされ、データ操作言語 (DML) ステートメントでは使用できなくなります。期限切れのデータが含まれている行に対して引き続き読み取りと書き込みを実行すると、期限切れのデータは、ストレージから削除されるまで、読み取りキャパシティユニット (RCU) と書き込みキャパシティユニット (WCU) にカウントされ続けます。

テーブルのデフォルト TTL 値の設定

Amazon Keyspaces では、テーブルの作成時に、テーブルのすべての行にデフォルトの TTL 値を設定することができます。既存のテーブルを編集し、テーブルに挿入される新しい行に対してデフォルト TTL 値の設定や変更を行うこともできます。テーブルのデフォルト TTL 値を変更しても、テーブル内の既存のデータの TTL 値は変更されません。テーブルのデフォルト TTL 値はゼロです。つまり、データは自動的に期限切れになりません。テーブルのデフォルト TTL 値がゼロより大きい場合、各行に有効期限タイムスタンプが追加されます。

Amazon Keyspaces では、データが更新されるたびに新しい TTL タイムスタンプが計算されます。TTL 値は秒単位で設定され、設定可能な最大値は 630,720,000 秒で、これは 20 年に相当します。AWS Management Console または CQL を使用してテーブルのデフォルト TTL 値の設定、変更、無効化を行う方法については、「有効期限 (TTL) の使い方」を参照してください。

行と列のカスタム TTL 値の設定

注記

行と列のカスタム TTL 値を設定する前に、まずテーブルで TTL を有効にしておく必要があります。詳細については、「カスタムプロパティを使用して既存のテーブルの有効期限 (TTL) を有効にする方法」を参照してください。

テーブルのデフォルト TTL 値を上書きする場合や、個々の行の有効期限を設定する場合には、次の CQL データ操作言語 (DML) ステートメントを使用できます。

  • INSERT — TTL 値セットが含まれている新しいデータ行を挿入する場合に使用します。

  • UPDATE — 新しい TTL 値が含まれている既存のデータ行に変更を加える場合に使用します。

行の TTL 値の設定は、テーブルのデフォルト TTL 設定よりも優先されます。

CQL 構文と例については、「INSERT を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには」を参照してください。

個々の列の TTL 値のオーバーライドまたは設定を行うには、次の CQL DML ステートメントを使用して、既存行内の列のサブセットの TTL 設定を更新します。

  • UPDATE — データの列を更新するために使用します。

列の TTL 値の設定は、テーブルのデフォルト TTL 設定と行のカスタム TTL 設定よりも優先されます。CQL 構文と例については、「UPDATE を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには」を参照してください。

テーブルでの TTL の有効化

CREATE TABLE または ALTER TABLE ステートメントのいずれかの default_time_to_live 値として 0 より大きい値を指定すると、TTL はテーブルに対して自動的に有効化されます。テーブルに対して default_time_to_live を指定せず、INSERT または UPDATE オペレーションを使用して行または列に対してカスタムの TTL 値を指定したい場合は、まず、テーブルの TTL を有効にする必要があります。ttl カスタムプロパティを使用すればテーブルの TTL を有効にすることができます。

テーブルで TTL を有効にすると、Amazon Keyspaces により各行の追加の TTL 関連メタデータの保存が開始されます。さらに、TTL により有効期限タイムスタンプが使用されて、行または列の有効期限が切れる時期が追跡されます。タイムスタンプは、行メタデータとして保存されるため、行のストレージコストに関係します。

TTL 機能は、いったん有効化されると、テーブルに対して無効化することはできません。テーブルの default_time_to_live を 0 に設定すると、新しいデータのデフォルトの有効期限は無効になりますが、TTL 機能は非アクティブにならず、テーブルが元の Amazon Keyspaces ストレージメタデータや書き込み動作に戻ることもありません。

Amazon Keyspaces の 有効期限 (TTL) および AWS サービスとの統合

次の TTL メトリクスは Amazon CloudWatch で継続的モニタリングを有効にするために使用できます。

  • TTLDeletes - 有効期限 (TTL) を使用して行のデータを削除または更新するために消費された単位。

CloudWatch のメトリクスのモニタリング方法については、「アマゾンによるアマゾンKeyspaces モニタリング CloudWatch」を参照してください。

AWS CloudFormation を使用する場合、Amazon Keyspaces ステーブルを作成するときに TTL を有効にできます。詳細については、AWS CloudFormation ユーザーガイドを参照してください。