top of page

DTSTOOLS - lastMaintenance - Descubra se sua tabela Delta tem rotina de manutenção

Fala dataholics, no post de hoje compartilharei mais uma função adicionada na DTSTOOLS.


Se você ainda não sabe o que é a DTSTOOLS corre nesse post aqui:


Se você já tiver a DTSTOOLS configurada no seu cluster Databricks, basta rodar aí o comando dtsTable.Help() e você verá que já está na versão 0.0.9.


Para quem já tem instalado no cluster ela fica nessa aba libraries:


Para quem quiser instalar apenas no contexto do Notebook, basta usar o comando abaixo:

pip install --upgrade dtstools

Descobrindo a versão atual do DTSTOOLS:


Funções disponíveis:

  • Help - Informações rápidas sobre o DTSTOOLS

  • tableSize - Descubra o verdadeiro tamanho da sua tabela

  • tableMaintenance - Apliquei Vacuum e Optimize na sua tabela

  • lastMaintenance (new) - Veja as últimas manutenções aplicadas na sua tabela

Hoje mostrarei a função lastMaintenance, ela foi criada para varrer todo o log da sua tabela Delta e sumarizar as informações das manutenções que estão ocorrendo, isso pode ser útil para você saber se aquela tabela possui rotina de manutenção, quando foi a última vez que aplicaram manutenção e as configurações utilizadas.


Esse é o retorno da função, então veja que rapidamente descubro quais manutenções aquela tabela já teve e quando teve e quais parâmetros aplicados.

Temos as seguintes colunas:

  • operation - Define se é Vacuum ou Optimize

  • earliest - Última vez que a operação foi executada

  • oldest - Operação mais antiga encontrada no log

  • occurrences - Quantidade de ocorrências identificadas no log

  • estimated_frequency - Frequência estimada baseada na quantidade de ocorrências

  • params - Parâmetros utilizados na operação

  • metrics - Métricas agrupadas de todas as operações

Lembrando que o delta_log é mantido por 30 dias, logo essa analise é sempre em cima dessa retenção, se achar viável pode ajustar essa retenção com esse parâmetro delta.logRetentionDuration.


Onde pode te ajudar?


Durante uma investigação de problemas ou para aplicar melhorias, é muito importante saber se aquela tabela tem alguma rotina de manutenção e quando ela teve alguma manutenção recente, essa função simplificará a forma que você visualiza os logs, sumarizando o resultado para você.


Imagine que você se depara com uma tabela dessa com 15 TB de dados, usando a função tableSize() para descobrir o tamanho real dela, a primeira coisa que você vai querer saber é como esta a manutenção dela.


Você consegue notar que a execução de Vacuum está usando 168 horas de retenção e liberou nos últimos 30 dias 11 TB, isso mesmo, liberou 11 TB de logs nos últimos 30 dias, ou seja, é uma rotina eficiente.

Note que o Optimize esta usando um zOrder por uma coluna de data, será que é a melhor coluna para um zOrder?


Você talvez vai se deparar com casos de tabelas que não tenham rotinas de manutenção configuradas, ou parcialmente configuradas, como é o caso dessa tabela que nunca teve um Optimize.


Espero que essas funções te ajude, aos poucos vamos incrementando a DTSTOOLS, já visando as novidades como o Delta Kernel e Delta lake 3.0, fica ligado na DTSTOOLS no PyPI.


Fiquem bem e até a próxima.

129 visualizações0 comentário
Post: Blog2 Post
bottom of page