As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode usar a API Amazon SageMaker Feature Store para excluir registros de seus grupos de recursos. Um grupo de atributos é um objeto que contém seus dados de machine learning (ML), em que as colunas de seus dados são descritas por atributos e seus dados estão contidos em registros. Um registro contém valores para atributos associados a um identificador de registro específico.
Há duas configurações de armazenamento para seus grupos de atributos: o armazenamento on-line e o armazenamento offline. O armazenamento on-line mantém apenas o registro com a hora do evento mais recente e normalmente é usado para pesquisas em tempo real para inferência de ML. O armazenamento offline mantém todos os registros e atua como um banco de dados histórico e normalmente é usado para exploração de atributos, treinamento de ML e inferência em lote.
Para obter mais informações sobre os conceitos do Feature Store, consulte Diagramas de ingestão.
Há duas maneiras de excluir registros de seus grupos de atributos, e o comportamento é diferente dependendo da configuração de armazenamento. Nos tópicos a seguir, descreveremos como fazer exclusões de registros de forma temporária e definitiva dos armazenamentos on-line e offline e forneceremos exemplos.
Excluir registros do armazenamento on-line
Você pode excluir um registro do armazenamento on-line de forma temporária ou definitiva com a API DeleteRecord
usando o parâmetro de solicitação DeletionMode
para especificar SoftDelete
(padrão) ou HardDelete
. Para obter mais informações sobre a DeleteRecord
API, consulte DeleteRecord
a Amazon SageMaker API Reference.
Com o armazenamento on-line:
-
Quando você faz uma exclusão reversível (padrão), o registro não pode mais ser recuperado por GetRecord ou BatchGetRecord e os valores da coluna do recurso são definidos como
null
, exceto os valores doEventTime
recursoRecordIdentifer
e. -
Quando você exclui irreversivelmente, o registro é completamente removido do armazenamento on-line.
Em ambos os casos, o Feature Store anexa o marcador de registro excluído ao OfflineStore
. O marcador de registro excluído é um registro com o mesmo RecordIdentifer
que o original, mas com valor is_deleted
definido como True
, EventTime
definido para a entrada de exclusão EventTime
e outros valores de atributo definidos como null
.
Observe que o EventTime
especificado em DeleteRecord
deve ser definido posteriormente ao EventTime
do registro existente no OnlineStore
para esse mesmo RecordIdentifer
. Caso contrário, a exclusão não ocorrerá:
-
Para
SoftDelete
, o registro existente (não excluído) permanece noOnlineStore
, embora o marcador de exclusão de registro ainda esteja gravado noOfflineStore
. -
HardDelete
retorna oEventTime
:400 ValidationException
para indicar que a operação de exclusão falhou. Nenhum marcador de exclusão de registro é gravado noOfflineStore
.
Os exemplos a seguir usam a operação delete_record
-
Nome do grupo de atributos (
)feature-group-name
-
Registro do valor do identificador como uma string (
)record-identifier-value
-
Hora do evento de exclusão (
)deletion-event-time
O horário do evento de exclusão deve ser posterior ao horário do evento do registro que você deseja excluir.
Exemplo de exclusão temporária no armazenamento on-line
Para exclusões temporárias, você precisará usar a API DeleteRecord
e poderá usar o padrão DeletionMode
ou definir o DeletionMode
como SoftDelete
.
import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='
feature-group-name
', RecordIdentifierValueAsString='record-identifier-value
', EventTime='deletion-event-time
', TargetStores=[ 'OnlineStore', ], DeletionMode='SoftDelete' )
Exemplo de exclusão irreversível do armazenamento on-line
Para exclusão irreversível, você precisará usar a API DeleteRecord
e definir DeletionMode
como HardDelete
.
import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='
feature-group-name
', RecordIdentifierValueAsString='record-identifier-value
', EventTime='deletion-event-timestamp
', TargetStores=[ 'OnlineStore', ], DeletionMode='HardDelete' )
Excluir registros do armazenamento offline
Com a Amazon SageMaker Feature Store, você pode excluir temporariamente ou não um registro do formato de tabela OfflineStore
Iceberg. Com o formato de tabela Iceberg OfflineStore
:
-
Quando você exclui temporariamente um registro , a versão mais recente do arquivo da tabela Iceberg não conterá o registro, mas as versões anteriores ainda conterão o registro e poderão ser acessadas usando a viagem no tempo. Para obter informações sobre viagem no tempo, consulte Consultar dados da tabela Iceberg e realizar viagens no tempo no guia do usuário do Athena.
-
Ao excluir um registro de forma definitiva, você remove versões anteriores da tabela Iceberg que contêm o registro. Nesse caso, você deve especificar quais versões da tabela Iceberg você deseja excluir.
Obter o nome da sua tabela Iceberg
Para fazer exclusões temporárias e definitivas da sua tabela Iceberg OfflineStore
, você precisará obter o nome da tabela Iceberg,
. As instruções a seguir pressupõem que você já tenha usado o Feature Store para criar um grupo de atributos usando a configuração de armazenamento offline com o formato de tabela Iceberg, com iceberg-table-name
DisableGlueTableCreation = False
(padrão). Para obter mais informações sobre como criar um grupo de atributos, consulte Comece a usar a Amazon SageMaker Feature Store.
Para obter seu
, use a API iceberg-table-name
DescribeFeatureGroup
para obter DataCatalogConfig
. Ela contém os metadados de tabela do Glue, que servem como catálogo de dados para o OfflineStore
. A TableName
dentro da DataCatalogConfig
é seu
.iceberg-table-name
Exemplo de exclusão temporária e definitiva do armazenamento offline do Amazon Athena
As instruções a seguir usam o Amazon Athena para fazer exclusões temporárias e, em seguida, exclusões definitivas de um registro da tabela Iceberg OfflineStore
. Isso pressupõe que o registro que você pretende excluir em seu OfflineStore
é um marcador de registro excluído. Para obter informações sobre o marcador de registro excluído em seu OfflineStore
, consulte Excluir registros do armazenamento on-line.
-
Obtenha o nome da sua tabela Iceberg,
. Para obter informações sobre como obter o nome da tabela Iceberg, consulte Obter o nome da sua tabela Iceberg.iceberg-table-name
-
Execute o comando
DELETE
para excluir temporariamente os registros noOfflineStore
, de forma que a versão mais recente (ou snapshot) da tabela Iceberg não contenha os registros. O exemplo a seguir exclui os registros quandois_deleted
é'True'
e as versões anteriores de horário do evento desses registros. Você pode adicionar mais condições com base em outros atributos para restringir a exclusão. Para obter mais informações sobre como usar oDELETE
, consulte oDELETE
no Guia do usuário do Athena.DELETE FROM
iceberg-table-name
WHERErecord-id-feature-name
IS IN ( SELECTrecord-id-feature-name
FROMiceberg-table-name
WHERE is_deleted = 'True')Os registros excluídos de forma reversível ainda podem ser visualizados nas versões anteriores do arquivo por meio da viagem no tempo. Para obter informações sobre como realizar a viagem no tempo, consulte Consultar dados da tabela Iceberg e realizar viagens no tempo no Guia do usuário do Athena.
-
Remova o registro das versões anteriores de suas tabelas Iceberg para excluir definitivamente o registro do
OfflineStore
:-
Execute o comando
OPTIMIZE
para regravar os arquivos de dados em um layout mais otimizado com base no tamanho e no número de arquivos de exclusão associados. Para obter mais informações sobre como otimizar tabelas Iceberg e a sintaxe, consulte Otimizar tabelas Iceberg no guia do usuário do Athena.OPTIMIZE
iceberg-table-name
REWRITE DATA USING BIN_PACK -
(Opcional, precisa ser executado apenas uma vez) Execute o comando
ALTER TABLE
para alterar os valores do conjunto de tabelas Iceberg e defina quando as versões anteriores do arquivo devem ser excluídas definitivamente de acordo com suas especificações. Isso pode ser feito atribuindo valores a propriedadesvacuum_min_snapshots_to_keep
evacuum_max_snapshot_age_seconds
. Para obter mais informações sobre como alterar as propriedades do conjunto de tabelas Iceberg, consulte ALTERAR PROPRIEDADES DO CONJUNTO DE TABELAS no guia do usuário do Athena. Para obter mais informações sobre os pares de valores-chave das propriedades das tabelas Iceberg, consulte Prioridades da tabelas no guia do usuário do Athena.ALTER TABLE
iceberg-table-name
SET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value
', 'vacuum_max_snapshot_age_seconds'='your-specified-value
' ) -
Execute o comando
VACUUM
para remover arquivos de dados que não são mais necessários para suas tabelas Iceberg, não referenciados pela versão atual. O comandoVACUUM
deve ser executado depois que o registro excluído não for mais referenciado no snapshot atual. Por exemplo,vacuum_max_snapshot_age_seconds
após a exclusão. Para obter mais informações sobreVACUUM
com o Athena e a sintaxe, consulteVACUUM
.VACUUM
iceberg-table-name
-
Exemplo de exclusão temporária e definitiva do armazenamento offline do Apache Spark
Para excluir temporariamente e, depois, definitivamente um registro da tabela Iceberg OfflineStore
usando o Apache Spark, siga as mesmas instruções do Exemplo de exclusão temporária e definitiva do armazenamento offline do Amazon Athena acima, mas usando os procedimentos do Spark. Para obter uma lista completa de procedimentos, consulte Procedimentos do Spark
-
Ao fazer uma exclusão temporária do
OfflineStore
: em vez de usar o comandoDELETE
no Athena, use o comandoDELETE FROM
no Apache Spark. -
Para remover o registro das versões anteriores das suas tabelas Iceberg para excluir definitivamente o registro do
OfflineStore
:-
Ao alterar a configuração da tabela Iceberg: em vez de usar o comando
ALTER TABLE
do Athena, use o procedimentoexpire_snapshots
. -
Para remover arquivos de dados desnecessários de suas tabelas do Iceberg: em vez de usar o comando
VACUUM
no Athena, use o procedimentoremove_orphan_files
.
-