

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á.

# Excluir registros do seu grupo de atributos
<a name="feature-store-delete-records"></a>

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](feature-store-concepts.md#feature-store-concepts-ingestion).

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.

**Topics**
+ [

## Excluir registros do armazenamento on-line
](#feature-store-delete-records-online-store)
+ [

## Excluir registros do armazenamento offline
](#feature-store-delete-records-offline-store)

## Excluir registros do armazenamento on-line
<a name="feature-store-delete-records-online-store"></a>

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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)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 do `EventTime` recurso `RecordIdentifer` 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 no `OnlineStore`, embora o marcador de exclusão de registro ainda esteja gravado no `OfflineStore`. 
+ `HardDelete` retorna o `EventTime`: `400 ValidationException` para indicar que a operação de exclusão falhou. Nenhum marcador de exclusão de registro é gravado no `OfflineStore`.

Os exemplos a seguir usam a operação [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record) do SDK para Python (Boto3) para excluir um registro de um grupo de atributos. Para excluir um registro de um grupo de atributos, você precisará:
+ 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
<a name="feature-store-delete-records-online-store-soft-delete"></a>

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
<a name="feature-store-delete-records-online-store-hard-delete"></a>

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
<a name="feature-store-delete-records-offline-store"></a>

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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) 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
<a name="feature-store-delete-records-offline-store-get-iceberg-table-name"></a>

Para fazer exclusões temporárias e definitivas da sua tabela Iceberg `OfflineStore`, você precisará obter o nome da tabela Iceberg, `iceberg-table-name`. 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 `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](feature-store-getting-started.md).

Para obter seu `iceberg-table-name`, use a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title) para obter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html). 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
<a name="feature-store-delete-records-offline-store-athena"></a>

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](#feature-store-delete-records-online-store). 

1. Obtenha o nome da sua tabela Iceberg, `iceberg-table-name`. Para obter informações sobre como obter o nome da tabela Iceberg, consulte [Obter o nome da sua tabela Iceberg](#feature-store-delete-records-offline-store-get-iceberg-table-name). 

1. Execute o comando `DELETE` para excluir temporariamente os registros no `OfflineStore`, 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 quando `is_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 o`DELETE`, consulte o `DELETE` no Guia do usuário do Athena.

   ```
   DELETE FROM iceberg-table-name WHERE record-id-feature-name IS IN ( SELECT record-id-feature-name FROM iceberg-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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) no Guia do usuário do Athena.

1. Remova o registro das versões anteriores de suas tabelas Iceberg para excluir definitivamente o registro do `OfflineStore`:

   1. 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-data-optimization.html) no guia do usuário do Athena. 

      ```
      OPTIMIZE iceberg-table-name REWRITE DATA USING BIN_PACK
      ```

   1. (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 propriedades `vacuum_min_snapshots_to_keep` e `vacuum_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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-managing-tables.html#querying-iceberg-alter-table-set-properties) 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-creating-tables.html#querying-iceberg-table-properties) 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'
      )
      ```

   1. 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 comando `VACUUM` 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 sobre `VACUUM` com o Athena e a sintaxe, consulte [https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html](https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html).

      ```
      VACUUM iceberg-table-name
      ```

### Exemplo de exclusão temporária e definitiva do armazenamento offline do Apache Spark
<a name="feature-store-delete-records-offline-store-spark"></a>

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](#feature-store-delete-records-offline-store-athena) acima, mas usando os procedimentos do Spark. Para obter uma lista completa de procedimentos, consulte [Procedimentos do Spark](https://iceberg.apache.org/docs/1.3.1/spark-procedures/) na documentação do Apache Iceberg. 
+ Ao fazer uma exclusão temporária do `OfflineStore`: em vez de usar o comando `DELETE` no Athena, use o comando [https://iceberg.apache.org/docs/latest/spark-writes/#delete-from](https://iceberg.apache.org/docs/latest/spark-writes/#delete-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 procedimento [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots).
  + Para remover arquivos de dados desnecessários de suas tabelas do Iceberg: em vez de usar o comando `VACUUM` no Athena, use o procedimento [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files).