本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
記錄的存留時間 (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
時套用APIs。請參閱SDK適用於 Python (Boto3) 的 CreateFeatureGroup
PutRecord
UpdateFeatureGroup
-
當
TtlDuration
套用在特徵群組層級 (使用CreateFeatureGroup
或UpdateFeatureGroup
APIs) 時,套用TtlDuration
TtlDuration
會成為從 API 呼叫 時新增至特徵群組之所有記錄的預設值。TtlDuration
套用UpdateFeatureGroup
時API,這不會成為API呼叫 之前建立之記錄TtlDuration
的預設值。若要
TtlDuration
從現有功能群組中移除預設值,請使用 ,並將UpdateFeatureGroup
API和TtlDuration
Unit
Value
設定為null
。 -
當
TtlDuration
套用到記錄層級 (例如,使用PutRecord
API) 時,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
。
若要檢視過期時間 ExpiresAt
(UTC時間 ISO-8601 格式),在使用 GetRecord
或 時BatchGetRecord
APIs,您必須ExpirationTimeResponse
設定為 ENABLED
。請參閱SDK適用於 Python (Boto3) 文件中適用於 DescribeFeatureGroup
BatchGetRecord
GetRecord