# Processos de otimização do Iceberg

O Adaptive Optimizer for Apache Iceberg é um agente inteligente que audita continuamente seus arquivos de dados e otimiza a forma como eles são organizados e armazenados para consultas mais rápidas e custos de armazenamento mais baixos.

O Qlik usa processos de otimização para melhorar o desempenho e a capacidade de gerenciamento das tabelas Iceberg em seu Qlik Open Lakehouse. Esses processos são projetados para manter um armazenamento eficiente e garantir um desempenho de consulta premium. Ao otimizar automaticamente seu lakehouse em segundo plano, isso reduz a sobrecarga operacional de monitoramento manual, solução de problemas e manutenção de tarefas.

## Adaptive Optimizer

O Adaptive Optimizer executa análises algorítmicas para determinar como otimizar suas tabelas do Iceberg de forma a causar o maior impacto possível. O agente decide quando e como otimizar seus dados do Iceberg e calcula quando excluir arquivos com base em fatores como perfil de dados, propriedades da tabela, frequência de alterações no nível da linha, custo e características de desempenho.

Usando algoritmos avançados, o Adaptive Optimizer avalia e combina continuamente esses fatores para produzir as melhores otimizações possíveis para cada tabela, garantindo que as velocidades de consulta permaneçam altas e os custos de armazenamento sejam baixos. Durante a ingestão e a compactação, o Adaptive Optimizer coleta e atualiza as estatísticas da tabela sem a necessidade de analisar cada tabela. Essas estatísticas ajudam os mecanismos de consulta no planejamento e na execução de consultas em tabelas do Iceberg.

Otimizações inteligentes se adaptam exclusivamente aos seus dados para melhorar a higiene do lake e o desempenho das consultas. Nem todas as tabelas são criadas da mesma forma em seu lakehouse de dados, portanto, o Adaptive Optimizer se ajusta às características individuais dos dados brutos. Ele estrutura, organiza e otimiza cada tabela de forma exclusiva.

Os seguintes processos-chave de otimização são executados automaticamente pelo Qlik e não requerem intervenção:

### Compactação contínua

O processo de compactação é contínuo e otimizado especificamente para dados de fluxo, mas é compatível com todas as cargas de trabalho. A compactação envolve:

* Monitoramento e seleção: verificação regular de possíveis oportunidades de compactação.

* Critérios de otimização: seleção de compactações que ofereçam os maiores ganhos de desempenho de consulta previstos e redução de custos. Essa decisão é relativa ao custo de execução da compactação, uma abordagem que garante que as tabelas Iceberg permaneçam otimizadas para desempenho de consulta sem incorrer em custos computacionais desnecessários.

### Expiração do snapshot

As operações do Iceberg geram novos snapshots que estão disponíveis para consultas do usuário. Os snapshots permitem recursos como viagem no tempo. No entanto, o armazenamento desses snapshots pode levar ao aumento dos requisitos de armazenamento. Para gerenciar isso, o Qlik remove automaticamente os snapshots antigos. O processo de limpeza é executado a cada poucas horas, garantindo que apenas os snapshots necessários sejam retidos para otimizar o uso do armazenamento.

### Limpeza de arquivos pendentes

Às vezes, os arquivos podem ficar sem referência ou "pendurados" durante as operações do Iceberg. Os arquivos pendentes podem se acumular, levando a um aumento nos custos de armazenamento. O Qlik realiza uma limpeza diária dos arquivos pendentes detectados para reduzir os custos adicionais de armazenamento. A operação de limpeza encontra e remove automaticamente arquivos pendentes do local de armazenamento da tabela, mantendo um ambiente de armazenamento organizado e econômico.