本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
存留時間 (TTL) 記錄持續時間
Amazon SageMaker Feature Store 提供選項,可讓您在達到持續時間,即達到存留時間 (TTL) 持續時間 (TtlDuration
) 後從線上儲存硬刪除記錄。記錄將在記錄的 EventTime
加上 TtlDuration
(或 ExpiresAt
= EventTime
+ TtlDuration
) 達到之後到期。TtlDuration
可以套用於特徵群組層級,預設情况下,特徵群組中的所有記錄都將具有 TtlDuration
,也可以套用於單個記錄層級。如果未指定 TtlDuration
,則預設值為 null
,且記錄將保留在線上儲存中,直到覆寫為止。
使用 TtlDuration
刪除的記錄會被硬刪除,或從線上儲存完全移除,而刪除的記錄會新增至離線儲存。如需有關硬刪除和刪除模式的更多資訊,請參閱 Amazon SageMaker API 參考指南中的 DeleteRecord
。當記錄被硬刪除時,它會立即無法使用 Feature Store APIs存取。
重要
TTL 通常會在幾天內刪除過期的項目。視資料表的大小和活動層級而定,已過期項目的實際刪除操作可能有所不同。由於 TTL 是要用作為背景處理程序,因此透過 TTL 讓項目過期和刪除項目所用的容量性質不定 (但是免費)。如需有關如何從 DynamoDB 資料表中刪除項目的更多資訊,請參閱運作方式:DynamoDB 存留時間 (TTL)。
TtlDuration
必須是包含 Unit
和 Value
的字典,其中 Unit
必須是值為 “秒”、“分鐘”、“小時”、“天” 或 “週” 的字串,且 Value
必須是大於或等於 1 的整數。TtlDuration
可以在使用 CreateFeatureGroup
、UpdateFeatureGroup
和 PutRecord
API 時套用。請參閱 CreateFeatureGroup
UpdateFeatureGroup
PutRecord
-
在特徵群組層級 (使用
CreateFeatureGroup
或UpdateFeatureGroup
API) 套用TtlDuration
時,從調用 API 的時間點起,套用的TtlDuration
將成為新增至特徵群組的所有記錄的預設TtlDuration
。使用UpdateFeatureGroup
API 套用TtlDuration
時,這不會成為調用 API 之前建立的記錄的預設值TtlDuration
。若要
TtlDuration
從現有的功能群組中移除預設值,請使用UpdateFeatureGroup
API,並將TtlDuration
Unit
和Value
設定為null
。 -
當在記錄層級 (例如,使用
PutRecord
API) 套用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
。請參閱 DescribeFeatureGroup
GetRecord
BatchGetRecord