本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
存留時間 (TTL) 記錄持續時間
Amazon SageMaker Feature Store 提供選項,可讓您在達到持續時間,即達到存留時間 (TTL) 持續時間 (TtlDuration) 後從線上儲存硬刪除記錄。記錄將在記錄的 EventTime 加上 TtlDuration (或 ExpiresAt = EventTime + TtlDuration) 達到之後到期。TtlDuration 可以套用於特徵群組層級,預設情况下,特徵群組中的所有記錄都將具有 TtlDuration,也可以套用於單個記錄層級。如果未指定 TtlDuration,則預設值為 null,且記錄將保留在線上儲存中,直到覆寫為止。
使用 TtlDuration 刪除的記錄會被硬刪除,或從線上儲存完全移除,而刪除的記錄會新增至離線儲存。如需有關硬刪除和刪除模式的更多資訊,請參閱 Amazon SageMaker API 參考指南中的 DeleteRecord。當記錄被硬刪除時,它會立即無法使用特徵商店 APIs存取。
重要
TTL 通常會在幾天內刪除過期的項目。視資料表的大小和活動層級而定,已過期項目的實際刪除操作可能有所不同。由於 TTL 是要用作為背景處理程序,因此透過 TTL 讓項目過期和刪除項目所用的容量性質不定 (但是免費)。如需有關如何從 DynamoDB 資料表中刪除項目的更多資訊,請參閱運作方式:DynamoDB 存留時間 (TTL)。
TtlDuration 必須是包含 Unit 和 Value 的字典,其中 Unit 必須是值為 “秒”、“分鐘”、“小時”、“天” 或 “週” 的字串,且 Value 必須是大於或等於 1 的整數。TtlDuration 可以在使用 CreateFeatureGroup、UpdateFeatureGroup 和 PutRecord API 時套用。請參閱 CreateFeatureGroupUpdateFeatureGroupPutRecord
-
在特徵群組層級 (使用
CreateFeatureGroup或UpdateFeatureGroupAPI) 套用TtlDuration時,從調用 API 的時間點起,套用的TtlDuration將成為新增至特徵群組的所有記錄的預設TtlDuration。使用UpdateFeatureGroupAPI 套用TtlDuration時,這不會成為調用 API 之前建立的記錄的預設值TtlDuration。若要
TtlDuration從現有的功能群組中移除預設值,請使用UpdateFeatureGroupAPI 並將TtlDurationUnit和Value設定為null。 -
當在記錄層級 (例如,使用
PutRecordAPI) 套用TtlDuration時,TtlDuration持續時間會套用至該記錄,並使用此持續時間來取代特徵群組層級預設值TtlDuration。 -
在特徵群組層級上套用
TtlDuration時,TtlDuration可能需要幾分鐘才能生效。 -
如果在沒有線上儲存時使用
TtlDuration,您將收到Validation Exception (400)錯誤。
以下範例程式碼示範如何在更新特徵群組時套用 TtlDuration,以便在執行 API 之後新增到特徵群組的記錄預設情況下將在其事件時間後四週過期。
import boto3 sagemaker_client = boto3.client("sagemaker") feature_group_name = '<YOUR_FEATURE_GROUP_NAME>' sagemaker_client.update_feature_group( FeatureGroupName=feature_group_name, OnlineStoreConfig={ TtlDuration:{ Unit: "Weeks", Value: 4 } } )
您可以透過 DescribeFeatureGroup API 來檢視預設 TtlDuration。
要在使用 GetRecord 或 BatchGetRecord API 時檢視過期時間 ExpiresAt (UTC 時間 ISO-8601 格式),必須將 ExpirationTimeResponse 設定為 ENABLED。請參閱 DescribeFeatureGroupGetRecordBatchGetRecord