翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Time to Live (TTL) を使用してデータの有効期限が切れる方法
Amazon Keyspaces (Apache Cassandra 向け) コンソールまたは CQL を使用して、有効期限 (TTL、Time to Live) 設定を有効化、更新、および無効化することができます。
トピック
- デフォルトの有効期限 (TTL) 設定を有効にして新しいテーブルを作成するには (コンソール)
- 既存のテーブルでデフォルト有効期限 (TTL) 設定を更新するには (コンソール)
- 既存のテーブルのデフォルト有効期限 (TTL) 設定を無効にするには (コンソール)
- CQL を使用してデフォルトの有効期限 (TTL) 設定で新しいテーブルを作成するには
- ALTER TABLE を使用して CQL でデフォルトの有効期限 (TTL) 設定を編集するには
- カスタムプロパティを使用して新しいテーブルの有効期限 (TTL) を有効にする方法
- カスタムプロパティを使用して既存のテーブルの有効期限 (TTL) を有効にする方法
- INSERT を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには
- UPDATE を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには
デフォルトの有効期限 (TTL) 設定を有効にして新しいテーブルを作成するには (コンソール)
次の手順に従って、Amazon Keyspaces コンソールを使用し、有効期限設定が有効になっている新規テーブルを作成します。
にサインインし AWS Management Console、https://console.aws.amazon.com/keyspaces/home
で Amazon Keyspaces コンソールを開きます。 -
ナビゲーションペインで [Tables] (テーブル) を選択して、[Create table (テーブルの作成)] を選択します。
-
[Table details (テーブルの詳細)] セクションの [Create table (テーブルの作成)] ページで、キースペースを選択し、新しいテーブルに名前を付けます。
-
[Schema (スキーマ)] セクションで、テーブルのスキーマを作成します。
[Table settings (テーブルの設定)] セクションで、[Customize settings (設定のカスタマイズ)] を選択します。
-
有効期限 (TTL) に進みます。
このステップでは、テーブルのデフォルトの TTL 設定を選択します。
[Default TTL period] (デフォルト TTL 期間) で、有効期限を入力し、入力したの時間の単位 (秒、日、年など) を選択します。Amazon Keyspaces では、値が秒単位で保存されます。
-
[Create table (テーブルの作成)] を選択します。テーブルは、指定したデフォルトの TTL 値で作成されます。
注記
CQL エディタのデータ操作言語 (DML) を使用して、特定の行または列に対して、そのテーブルのデフォルト TTL 設定をオーバーライドすることができます。
既存のテーブルでデフォルト有効期限 (TTL) 設定を更新するには (コンソール)
次のステップに従い、Amazon Keyspaces コンソールを使用して、既存のテーブルの有効期限 (TTL) 設定を更新します。
-
にサインインし AWS Management Console、https://console.aws.amazon.com/keyspaces/home
で Amazon Keyspaces コンソールを開きます。 -
更新するテーブルを選択し、次に [Additional settings (追加設定)] タブを選択します。
-
[有効期限 (TTL)] に進み、[編集] を選択します。
-
[Default TTL period] (デフォルト TTL 期間) で、有効期限を入力し、入力したの時間の単位 (秒、日、年など) を選択します。Amazon Keyspaces では、値が秒単位で保存されます。これによって既存の行の TTL 値が変更されることはありません。
-
TTL 設定が定義されたら、[Save changes] (変更を保存) を選択します。
既存のテーブルのデフォルト有効期限 (TTL) 設定を無効にするには (コンソール)
次のステップに従い、Amazon Keyspaces の AWS Management Consoleを使用して既存のテーブルの有効期限 (TTL) 設定を無効にします。
-
にサインインし AWS Management Console、https://console.aws.amazon.com/keyspaces/home
で Amazon Keyspaces コンソールを開きます。 -
更新するテーブルを選択し、次に [Additional settings (追加設定)] タブを選択します。
-
[有効期限 (TTL)] に進み、[編集] を選択します。
-
[Default TTL Period] (デフォルトの TTL 期間) を選択して、値を 0 (ゼロ) に設定します。これにより、その後のデータではテーブルの TTL がデフォルトで無効になります。既存の行の TTL 値は変更されません。
-
TTL 設定が定義されたら、[Save changes] (変更を保存) を選択します。
CQL を使用してデフォルトの有効期限 (TTL) 設定で新しいテーブルを作成するには
デフォルトの TTL 値が 3,024,000 秒 (35 日間) に設定されている新しいテーブルを作成する場合は TTL を有効にします。
CREATE TABLE
my_table
( userid uuid, time timeuuid, subject text, body text, user inet, PRIMARY KEY (userid, time) ) WITH default_time_to_live = 3024000;
新しいテーブルの TTL 設定を確認するには、次の例に示すように、cqlsh
describe
ステートメントを使用します。出力では、テーブルのデフォルト TTL 設定が default_time_to_live
として表示されます。
describe
my_table
;
ALTER TABLE
を使用して CQL でデフォルトの有効期限 (TTL) 設定を編集するには
既存のテーブルの TTL 設定を 2,592,000 秒 (30 日間) に更新します。
ALTER TABLE
my_table
WITH default_time_to_live = 2592000;
更新されたテーブルの TTL 設定を確認するには、次の例に示すように、cqlsh
describe
ステートメントを使用します。出力では、テーブルのデフォルト TTL 設定が default_time_to_live
として表示されます。
describe
my_table
;
カスタムプロパティを使用して新しいテーブルの有効期限 (TTL) を有効にする方法
テーブル全体の TTL デフォルト設定を有効にしないで行と列に適用できる有効期限 (TTL) カスタム設定を有効にするには、次の CQL ステートメントを使用します。
CREATE TABLE
my_keyspace.my_table
(id int primary key) WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
ttl
を有効にした後、そのテーブルに対してそれを無効にすることはできません。
カスタムプロパティを使用して既存のテーブルの有効期限 (TTL) を有効にする方法
テーブル全体の TTL デフォルト設定を有効にしないで行と列に適用できる有効期限 (TTL) カスタム設定を有効にするには、次の CQL ステートメントを使用します。
ALTER TABLE
my_table
WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
ttl
を有効にした後、そのテーブルに対してそれを無効にすることはできません。
INSERT
を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには
次の CQL ステートメントでは、テーブルにデータの行が挿入され、デフォルトの TTL 設定が 259,200 秒 (3 日間に相当) に変更されます。
INSERT INTO
my_table
(userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123') USING TTL 259200;
挿入された行の TTL 設定を確認するには、次のステートメントを使用します。
SELECT TTL (subject) from
my_table
;
UPDATE
を使用して CQL でカスタムの有効期限 (TTL) 設定を編集するには
以前に挿入された「件名」列の TTL 設定を 259,200 秒 (3 日間) から 86,400 秒 (1 日間) に変更するには、次のステートメントを使用します。
UPDATE
my_table
USING TTL 86400 set subject = 'Updated Message' WHERE userid = B79CB3BA-745E-5D9A-8903-4A02327A7E09 and time = 96a29100-5e25-11ec-90d7-b5d91eceda0a;
簡単な選択クエリを実行すると、有効期限が切れる前に更新されたレコードを確認できます。
SELECT * from
my_table
;
クエリには次の出力が表示されます。
userid | time | body | subject | user --------------------------------------+--------------------------------------+-------+-----------------+----------------- b79cb3ba-745e-5d9a-8903-4a02327a7e09 | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | Updated Message | 205.212.123.123 50554d6e-29bb-11e5-b345-feff819cdc9f | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123
有効期限が正常に終了したことを確認するには、設定した有効期限が切れた後に同じクエリをもう一度実行します。
SELECT * from
my_table
;
このクエリでは、「件名」列の有効期限が切れた後に次の出力が表示されます。
userid | time | body | subject | user --------------------------------------+--------------------------------------+-------+---------+----------------- b79cb3ba-745e-5d9a-8903-4a02327a7e09 | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | null | 205.212.123.123 50554d6e-29bb-11e5-b345-feff819cdc9f | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123