

# Atualizar o otimizador de retenção de snapshots
<a name="update-snapshot-retention"></a>

 Você pode atualizar a configuração atual de um otimizador de retenção de snapshots para uma tabela Apache Iceberg específica usando o console do AWS Glue, a AWS CLI ou a API UpdateTableOptimizer. 

------
#### [ Console ]

**Para atualizar a configuração de retenção de snapshots**

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

1. Escolha **catálogo de dados** e escolha **Tabelas**. Na lista de tabelas, escolha a tabela do Iceberg para a qual deseja atualizar a configuração do otimizador de retenção de snapshots.

1. Na seção inferior da página de **Detalhes das tabelas**, selecione a guia **Otimização da tabela** e **Editar**. Você também pode escolher **Editar** em **Otimização** no menu **Ações** localizado no canto superior direito da página.

1.  Na página **Editar otimização**, faça as alterações necessárias. 

1.  Escolha **Salvar**. 

------
#### [ AWS CLI ]

 Para atualizar um otimizador de retenção de snapshots usando aAWS CLI, você pode usar o seguinte comando: 

```
aws glue update-table-optimizer \
 --catalog-id {{123456789012}} \
 --database-name {{iceberg_db}} \
 --table-name {{iceberg_table}} \
 --table-optimizer-configuration '{"roleArn":"arn:aws:iam::{{123456789012}}:role/{{optimizer_role}}"","enabled":'true', "vpcConfiguration":{"glueConnectionName":{{"glue_connection_name"}}},"retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":{{7}},"numberOfSnapshotsToRetain":{{3}},"cleanExpiredFiles":{{'true'}}}}}' \
 --type retention
```

 Esse comando atualiza a configuração de retenção para a tabela especificada em determinado catálogo, banco de dados e região. Os principais parâmetros são: 
+  snapshotRetentionPeriodInDays: o número de dias para reter os snapshots antes de expirá-los. O valor padrão é `1`. 
+ numberOfSnapshotsToRetain: o número mínimo de snapshots a serem mantidos, mesmo que sejam mais antigos que o período de retenção. O valor padrão é `5`. 
+ cleanExpiredFiles: um booleano que indica se os arquivos de dados expirados devem ser excluídos após a expiração dos snapshots. O valor padrão é `true`. 

   Quando definido como true, os snapshots mais antigos são removidos dos metadados da tabela e seus arquivos subjacentes são excluídos. Se esse parâmetro for definido como false, os snapshots mais antigos serão removidos dos metadados da tabela, mas seus arquivos subjacentes permanecerão no armazenamento como arquivos órfãos. 

------
#### [ API ]

Para atualizar um otimizador de tabela, você pode usar a API `UpdateTableOptimizer`. Essa API permite que você atualize a configuração de um otimizador de tabela existente para compactação, retenção ou remoção de arquivos órfãos. Os parâmetros de solicitação incluem:
+ catalogId (obrigatório): o ID do catálogo que contém a tabela 
+  databaseName (opcional): o nome do banco de dados que contém a tabela 
+  tableName (opcional): o nome da tabela 
+  type (obrigatório): o tipo de otimizador de tabela (compactação, retenção ou orphan\_file\_deletion) 
+  retentionConfiguration (obrigatório): a configuração atualizada do otimizador de tabela, incluindo o ARN do perfil, o status habilitado, a configuração de retenção e a configuração de remoção de arquivos órfãos. 

------