Duração do tempo de vida (TTL) dos registros
O Amazon SageMaker Feature Store oferece a opção de excluir permanentemente os registros do armazenamento on-line após atingir um período de duração, com duração do tempo de vida (TTL) (TtlDuration). O registro expirará depois que o EventTime do registro mais a TtlDuration forem atingidos, ou ExpiresAt = EventTime + TtlDuration. O TtlDuration pode ser aplicado em um nível de grupo de atributos, em que todos os registros dentro do grupo de atributos terão o TtlDuration por padrão, ou em um nível de registro individual. Se TtlDuration não for especificado, o valor padrão será null e o registro permanecerá no armazenamento on-line até ser sobrescrito.
Um registro excluído usando TtlDuration é excluído permanentemente ou completamente removido do armazenamento on-line, e o registro excluído é adicionado ao armazenamento offline. Para obter mais informações sobre exclusão permanente e modos de exclusão, consulte DeleteRecord no guia de referência da API do Amazon SageMaker. Quando um registro é excluído permanentemente, ele fica imediatamente inacessível usando as APIs do Feature Store.
Importante
A TTL normalmente exclui itens expirados depois de alguns dias. Dependendo do tamanho e do nível de atividade de uma tabela, a operação de exclusão real de um item expirado pode variar. Como o TTL deve ser um processo em segundo plano, a natureza da capacidade usada para expirar e excluir itens via TTL é variável (mas gratuita). Para obter mais informações sobre como os itens são excluídos de uma tabela do DynamoDB, consulte Como funciona: tempo de vida (TTL) do DynamoDB.
A TtlDuration deve ser um dicionário contendo a Unit e o Value, em que a Unit deve ser uma string com valores “Segundos”, “Minutos”, “Horas”, “Dias” ou “Semanas” e o Value deve ser um número inteiro maior ou igual a 1. A TtlDuration pode ser aplicada ao usar as APIs CreateFeatureGroup, UpdateFeatureGroup e PutRecord. Consulte a sintaxe de solicitação e resposta na documentação do SDK para Python (Boto3) para as APIs CreateFeatureGroupUpdateFeatureGroupPutRecord
-
Quando a
TtlDurationé aplicada em um nível de grupo de atributos (usando as APIsCreateFeatureGroupouUpdateFeatureGroup), aTtlDurationaplicada se torna aTtlDurationpadrão para todos os registros adicionados ao grupo de atributos a partir do momento em que a API é chamada. Ao aplicar aTtlDurationcom a APIUpdateFeatureGroup, ela não se tornará aTtlDurationpadrão para registros criados antes da chamada da API.Para remover o
TtlDurationpadrão de um grupo de atributos existente, use a APIUpdateFeatureGroupe definaTtlDurationUniteValuecomonull. -
Quando a
TtlDurationé aplicada em um nível de registro (por exemplo, usando a APIPutRecord), a duraçãoTtlDurationse aplica a esse registro e é usada em vez daTtlDurationpadrão do nível de grupo de atributos. -
Quando a
TtlDurationé aplicada em um nível de grupo de atributos, pode levar alguns minutos que aTtlDurationentre em vigor. -
Se a
TtlDurationfor usada quando não houver armazenamento on-line, você receberá um erroValidation Exception (400).
O código de exemplo a seguir mostra como aplicar uma TtlDuration durante a atualização de um grupo de atributos, de forma que os registros adicionados ao grupo de atributos após a execução da API expirem por padrão quatro semanas após o horário do evento.
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 } } )
Você pode usar a API DescribeFeatureGroup para ver a TtlDuration padrão.
Para visualizar os prazos de expiração ExpiresAt (no formato ISO-8601 da hora em UTC), ao usar as APIs GetRecord ou BatchGetRecord, você deve definir ExpirationTimeResponse como ENABLED. Consulte a sintaxe de solicitação e resposta na documentação do SDK para Python (Boto3) para as APIs DescribeFeatureGroupGetRecordBatchGetRecord