如何使用存留時間 (TTL) 將資料過期 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如何使用存留時間 (TTL) 將資料過期

您可以使用 Amazon Keyspaces 間(對於 Apache 卡桑德拉)控制台或 CQL 來啟用,更新和禁用上線時間設置。

建立啟用預設存留時間 (TTL) 設定的新表格 (主控台)

請依照下列步驟建立新的表格,並使用 Amazon Keyspaces 間主控台啟用「即時存取時間」設定。

  1. 登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home

  2. 在導覽窗格中,選擇 Tables (資料表),然後選擇 Create table (建立資料表)。

  3. 在「表格詳細資訊」段落的「建立表格」頁面中,選取索引鍵空間並輸入新表格的名稱。

  4. 在 [結構描述] 區段中,建立資料表的結構定義。

  5. [表格設定] 區段中,選擇 [自訂設定]

  6. 繼續前往存留時間 (TTL)

    在此步驟中,您可以選取表格的預設 TTL 設定。

    對於「預設 TTL」期間,請輸入到期時間並選擇您輸入的時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。

  7. 選擇 建立資料表 。您的資料表會以指定的預設 TTL 值建立。

注意

您可以使用 CQL 編輯器中的資料操作語言 (DML),覆寫特定列或欄的資料表預設 TTL 設定。

更新現有表格 (主控台) 上的預設存留時間 (TTL) 設定

請依照下列步驟使用 Amazon Keyspaces 間主控台更新現有資料表的即時時間設定。

  1. 登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home

  2. 選擇您要更新的表格,然後選擇 [其他設定] 索引標籤。

  3. 繼續至存留時間 (TTL),然後選擇 「編輯」

  4. 對於「預設 TTL」期間,請輸入到期時間並選擇您輸入的時間單位,例如秒、天或年。Amazon Keyspaces 將存儲在幾秒鐘內的值。這不會變更現有資料列的 TTL 值。

  5. 定義 TTL 設定後,請選擇 [儲存變更]。

停用現有表格 (主控台) 上的預設存留時間 (TTL) 設定

請按照以下步驟使用 Amazon Keyspaces 間停用現有表格的存留時間 AWS Management Console設定。

  1. 登錄到 AWS Management Console,並打開 Amazon Keyspaces 控制台 https://console.aws.amazon.com/keyspaces/home

  2. 選擇您要更新的表格,然後選擇 [其他設定] 索引標籤。

  3. 繼續至存留時間 (TTL),然後選擇 「編輯」

  4. 選取預設 TTL 週期,並將值設定為零。依預設,這會針對 future 資料停用資料表的 TTL。它不會變更現有資料列的 TTL 值。

  5. 定義 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 設定,請使用下列範例所示的cqlshdescribe陳述式。輸出會將表格的預設 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 設定,請使用下列範例所示的cqlshdescribe陳述式。輸出會將表格的預設 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