本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何使用存留時間 (TTL) 將資料過期
您可以使用 Amazon Keyspaces 間(對於 Apache 卡桑德拉)控制台或 CQL 來啟用,更新和禁用上線時間設置。
主題
建立啟用預設存留時間 (TTL) 設定的新表格 (主控台)
請依照下列步驟建立新的表格,並使用 Amazon Keyspaces 間主控台啟用「即時存取時間」設定。
登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home
。 -
在導覽窗格中,選擇 Tables (資料表),然後選擇 Create table (建立資料表)。
-
在「表格詳細資訊」段落的「建立表格」頁面中,選取索引鍵空間並輸入新表格的名稱。
-
在 [結構描述] 區段中,建立資料表的結構定義。
在 [表格設定] 區段中,選擇 [自訂設定]。
-
繼續前往存留時間 (TTL)。
在此步驟中,您可以選取表格的預設 TTL 設定。
對於「預設 TTL」期間,請輸入到期時間並選擇您輸入的時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。
-
選擇 建立資料表 。您的資料表會以指定的預設 TTL 值建立。
注意
您可以使用 CQL 編輯器中的資料操作語言 (DML),覆寫特定列或欄的資料表預設 TTL 設定。
更新現有表格 (主控台) 上的預設存留時間 (TTL) 設定
請依照下列步驟使用 Amazon Keyspaces 間主控台更新現有資料表的即時時間設定。
-
登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home
。 -
選擇您要更新的表格,然後選擇 [其他設定] 索引標籤。
-
繼續至存留時間 (TTL),然後選擇 「編輯」。
-
對於「預設 TTL」期間,請輸入到期時間並選擇您輸入的時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。這不會變更現有資料列的 TTL 值。
-
定義 TTL 設定後,請選擇 [儲存變更]。
停用現有表格 (主控台) 上的預設存留時間 (TTL) 設定
請按照以下步驟使用 Amazon Keyspaces 間停用現有表格的存留時間 AWS Management Console設定。
-
登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home
。 -
選擇您要更新的表格,然後選擇 [其他設定] 索引標籤。
-
繼續至存留時間 (TTL),然後選擇 「編輯」。
-
選取預設 TTL 週期,並將值設定為零。依預設,這會針對 future 資料停用資料表的 TTL。它不會變更現有資料列的 TTL 值。
-
定義 TTL 設定後,請選擇 [儲存變更]。
若要使用 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 預設設定,您可以使用下列 CQL 陳述式。
CREATE TABLE
my_keyspace.my_table
(id int primary key) WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
啟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 秒 (一天),請使用下列陳述式。
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