

# Expiração do registro de tabelas
<a name="s3-tables-record-expiration"></a>

Por padrão, os registros nas tabelas do S3 não expiram. Para ajudar a minimizar os custos de armazenamento de tabelas, você pode habilitar e configurar a expiração de registros das tabelas. Com essa opção, o Amazon S3 remove automaticamente os registros de uma tabela quando eles expiram.

Se você habilitar a expiração de registros para uma tabela, especifique o número de dias para retê-los na tabela até a expiração. Pode ser qualquer número de dias, entre 1 dia e 2.147.483.647 dias. Por exemplo, para reter os registros da tabela por um ano, especifique `365` dias. Os registros serão mantidos por 365 dias. Após 365 dias, eles expiram e o Amazon S3 os remove automaticamente.

É possível habilitar e configurar a expiração de registros para tabelas gerenciadas pela AWS que armazenam conjuntos de dados específicos de determinados Serviços da AWS, no momento a Lente de Armazenamento do Amazon S3 e o Catálogo do Amazon SageMaker. Atualmente, as opções de expiração de registros não estão disponíveis para outras tabelas gerenciadas pela AWS. A exceção são as tabelas de diário de metadados do Amazon S3. As tabelas de diário usam configurações distintas de expiração de registros que são especificadas em nível de serviço. Para ter informações sobre como configurar a expiração de registros para esse tipo de tabela, consulte [Registros expirados da tabela de diário](metadata-tables-expire-journal-table-records.md). Observe que as opções de expiração de registros não estão disponíveis para as tabelas do S3 que você cria.

Após a habilitação da expiração de registros para uma tabela, é possível desabilitá-la a qualquer momento. Em seguida, o Amazon S3 para de encerrar e remover registros da tabela.

**Topics**
+ [Como funciona](#s3-tables-record-expiration-how-it-works)
+ [Configurar a expiração de registros](#s3-tables-record-expiration-configure)
+ [Monitorar a expiração do registro](#s3-tables-record-expiration-monitor)
+ [Considerações](#s3-tables-expiration-considerations)

## Como funciona a expiração de registros
<a name="s3-tables-record-expiration-how-it-works"></a>

A expiração de registros remove automaticamente os registros de uma tabela do S3 quando eles são mais antigos do que o número de dias especificado nas respectivas configurações de expiração de registros. Para determinar quando os registros expiram, o Amazon S3 usa carimbos de data/hora específicos nos registros. A escolha da coluna de carimbo de data/hora é deduzida diretamente do esquema de uma tabela. Não é necessário especificar qual coluna de carimbo de data/hora usar. As tabelas são gerenciadas pela AWS e o Amazon S3 escolhe automaticamente a coluna apropriada a ser usada quando a expiração de registros de uma tabela é habilitada.

É possível habilitar e definir as configurações de expiração de registros para tabelas gerenciadas pela AWS que armazenam métricas específicas da Lente de Armazenamento do Amazon S3 ou metadados específicos do Catálogo do Amazon SageMaker. As opções de expiração de registros estão disponíveis para as seguintes tabelas gerenciadas pela AWS desses serviços:
+ Lente de Armazenamento do S3: `bucket_property_metrics`, `default_activity_metrics`, `default_storage_metrics`, `expanded_prefixes_activity_metrics` e `expanded_prefixes_storage_metrics`. Para determinar quando os registros nessas tabelas expiram, o Amazon S3 usa o campo `report_time` nos registros.
+ Catálogo do Amazon SageMaker: `ASSET`. Para determinar quando os registros nessa tabela expiram, o Amazon S3 usa o campo `snapshot_time` nos registros.

Após a habilitação da expiração de registros de uma tabela, o Amazon S3 começa a executar trabalhos de expiração de registros que realizam as seguintes operações para a tabela:

1. Identifica os registros mais antigos do que a configuração de expiração especificada.

1. Cria um snapshot que exclui referências aos registros expirados.

A remoção também se baseia na expiração do snapshot e nas configurações de remoção de arquivos sem referência nas configurações de manutenção de tabelas. Para saber mais sobre as configurações de capacidade, consulte . [Manutenção de tabelas](s3-tables-maintenance.md).

**Atenção**  
O Amazon S3 encerra e remove os registros no prazo de 24 a 48 horas depois que eles de tornam elegíveis para expiração. Os registros da tabela são removidos do snapshot mais recente. Os dados e o armazenamento dos registros são removidos por meio de operações de manutenção de tabelas. Depois que os registros da tabela expiram, eles não podem mais ser recuperados.

## Configurar a expiração de registros para uma tabela
<a name="s3-tables-record-expiration-configure"></a>

É possível habilitar, configurar ou gerenciar as configurações de expiração de registros para uma tabela do Amazon S3 usando o console do Amazon S3, a API REST do Amazon S3, a AWS Command Line Interface (AWS CLI) ou SDKs da AWS.

Para tentar realizar essas tarefas em uma tabela, é necessário ter as seguintes permissões do AWS Identity and Access Management (IAM):
+ `s3tables:GetTableRecordExpirationConfiguration`: esta ação permite acessar as configurações atuais de expiração de registros de tabelas.
+ `s3tables:PutTableRecordExpirationConfiguration`: esta ação permite habilitar, configurar e desabilitar as configurações de expiração de registros de tabelas.
+ `s3tables:GetTableRecordExpirationJobStatus`: esta ação permite monitorar o status das operações de expiração de registros (trabalhos) de tabelas e métricas de acesso.

As seções a seguir explicam como habilitar, configurar e desabilitar as configurações de expiração de registros de uma tabela usando o console do Amazon S3 e a AWS CLI. Para realizar essas tarefas com a API REST do Amazon S3 ou um SDK da AWS, use a operação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html). Para ter mais informações, consulte [Desenvolvimento com o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/developing-s3.html) na *Referência de API do Amazon Simple Storage Service*.

### Usar o console do S3
<a name="configure-table-record-expiration-console"></a>

Para habilitar e definir as configurações de expiração de registros de uma tabela do S3 usando o console, siga as etapas abaixo.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de tabela**.

1. Na página **Buckets de tabela**, escolha o bucket que armazena a tabela.

1. Na guia **Tabelas**, escolha a tabela.

1. Na guia **Manutenção**, na seção **Expiração dos registros**, escolha **Editar**.

1. Em **Expiração dos registros**, escolha **Habilitar**.

1. Em **Dias após os quais os registros expiram**, insira o número de dias para reter registros na tabela. Pode ser qualquer número inteiro entre 1 e 2.147.483.647. Por exemplo, para reter registros por um ano, insira **365**.
**Atenção**  
Ao determinar o período de retenção adequado dos registros na tabela, observe que os registros não podem ser recuperados após a expiração.

1. Escolha **Salvar alterações**.

Para alterar posteriormente o período de retenção, repita as etapas anteriores.

Para desabilitar posteriormente a expiração de registros, repita as Etapas de 1 a 5. Em seguida, para a Etapa 6, escolha **Desabilitar**. Quando terminar, escolha **Salvar alterações**.

### Como usar o AWS CLI
<a name="configure-table-record-expiration-CLI"></a>

Para configurar e gerenciar as configurações de expiração de registros de uma tabela do S3 usando a AWS CLI, execute o comando [https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html).

Para começar, crie um arquivo JSON contendo as configurações de expiração de registros a serem aplicadas à tabela. O exemplo a seguir mostra o conteúdo de um arquivo JSON que habilita a expiração de registros de uma tabela. Ele também especifica um período de retenção de registros de trinta dias na tabela. Em outras palavras, ele especifica que os registros da tabela devem expirar após trinta dias.

```
{
    "status": "enabled",
        "settings": {
            "days": 30
        {
}
```

Para usar o exemplo precedente, substitua `user input placeholders` pelas suas próprias informações.

**Atenção**  
Ao determinar o período de retenção adequado dos registros na tabela, observe que os registros não podem ser recuperados após a expiração.

Para desabilitar a expiração de registros de uma tabela, especifique `disabled` para o campo `status` e omita o objeto `settings` do arquivo. Por exemplo:

```
{
    "status": "disabled"
}
```

Depois de criar um arquivo JSON com as configurações a serem aplicadas, execute o comando `put-table-record-expiration-configuration`. Para o parâmetro `table-arn`, especifique o nome do recurso da Amazon (ARN) da tabela. Para o parâmetro `value`, especifique o nome do arquivo que armazena as configurações.

Por exemplo, o comando a seguir atualiza a configuração de expiração de registros de uma tabela. As configurações são especificadas em um arquivo chamado *`record-expiration-config.json`*.

```
aws s3tables put-table-record-expiration-configuration \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table \
    --value file://./record-expiration-config.json
```

Para usar o exemplo precedente, substitua `user input placeholders` pelas suas próprias informações.

## Monitorar a expiração do registro de uma tabela
<a name="s3-tables-record-expiration-monitor"></a>

Para monitorar o status e os resultados das operações de expiração de registros de tabelas do S3, use a operação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html) ou, se estiver usando a AWS CLI, execute o comando [https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html). Em sua solicitação, especifique o nome do recurso da Amazon (ARN) da tabela.

Por exemplo, o comando AWS CLI a seguir recupera o status das operações de expiração de registros de uma tabela específica em um bucket de tabela. Para usar esse exemplo, substitua os `user input placeholders` por suas próprias informações.

```
aws s3tables get-table-record-expiration-job-status \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table
```

Se sua solicitação tiver êxito, você receberá uma resposta que fornece determinados detalhes, como a data mais recente em que o Amazon S3 executou operações de expiração de registros de uma tabela e o status dessa execução. Se a execução tiver êxito, a resposta também incluirá métricas de processamento, como o número de arquivos e registros de dados que foram removidos e o tamanho total dos dados que foram removidos. Se ocorrerem erros durante a execução mais recente, a resposta incluirá uma mensagem de falha que descreve por que a execução falhou.

## Considerações
<a name="s3-tables-expiration-considerations"></a>

Ao definir e gerenciar as configurações de expiração de registros para tabelas do S3 gerenciadas pela AWS, lembre-se do seguinte:
+ A expiração de registros está disponível somente para determinadas tabelas gerenciadas pela AWS criadas por Serviços da AWS compatíveis, como a Lente de Armazenamento do Amazon S3 e o Catálogo do Amazon SageMaker. Além disso, a expiração de registros está disponível somente para tabelas individuais, não para buckets de tabela inteiros.
+ Para determinar quando os registros expiram, o Amazon S3 usa carimbos de data/hora específicos nas tabelas. Esses carimbos de data/hora representam quando os dados foram criados, não quando o Amazon S3 ingeriu os registros em uma tabela. A coluna de carimbo de data/hora usada depende do serviço que publica a tabela: para métricas da Lente de Armazenamento do S3, o campo `report_time`; e, para metadados do Catálogo do Amazon SageMaker, o campo `snapshot_time`. Não é possível especificar qual campo usar porque as tabelas são gerenciadas pela AWS.
+ Se houver atrasos na exportação de dados para uma tabela, os registros poderão se tornar elegíveis para expiração antes do esperado. Por esse motivo, é recomendável considerar possíveis atrasos na ingestão adicionando uma folga ao período de retenção nas configurações de expiração para tabelas.
+ Os registros expiram e são removidos no prazo de 24 a 48 horas depois que se tornam elegíveis para expiração. O Amazon S3 não encerra nem remove registros imediatamente depois que eles se tornam elegíveis para expiração.
+ Os registros não podem ser recuperados depois que eles expiram e são removidos.