Visualização do Histórico da Tabela (Noções Básicas de Time Travel)
Deslize para mostrar o menu
Time Travel é um recurso do Delta Lake que permite consultar versões anteriores de uma tabela. Utilizando o Transaction Log, o Databricks pode reconstruir o estado dos seus dados em qualquer ponto do histórico registrado.
Um dos "redes de segurança" mais poderosos no Databricks é a capacidade de ver exatamente quem alterou uma tabela, quando a alteração foi feita e como os dados estavam antes dessa modificação.
Para nossa tabela diamonds em workspace.workshop.diamonds, toda atualização ou exclusão é rastreada automaticamente.
1. O Comando DESCRIBE HISTORY
Para visualizar toda a linha do tempo dos seus dados, utilize o comando DESCRIBE HISTORY — ele fornece um registro detalhado de cada versão da tabela.
DESCRIBE HISTORY workspace.workshop.diamonds
Ao executar este comando, será exibida uma tabela com as seguintes colunas principais:
- version: um número inteiro começando em 0 (primeira criação da tabela);
- timestamp: data e hora exatas em que a alteração ocorreu;
- userName: pessoa que realizou a ação;
- operation: o que aconteceu (por exemplo,
WRITE,UPDATE,DELETEouMERGE); - operationParameters: detalhes técnicos sobre a alteração.
2. Consultando uma Versão Específica
Se uma atualização recente alterou a coluna "Price", é possível consultar uma versão anterior para visualizar os valores originais utilizando a sintaxe VERSION AS OF.
-- Look at the diamonds table exactly as it was in Version 0
SELECT * FROM workspace.workshop.diamonds VERSION AS OF 0
3. Consultando por Timestamp
Caso não saiba o número da versão, mas saiba que os dados estavam corretos em um determinado momento, é possível "viajar no tempo" utilizando TIMESTAMP AS OF.
-- Look at the data as it existed at a specific time
SELECT * FROM workspace.workshop.diamonds TIMESTAMP AS OF '2026-02-11 09:00:00'
4. Por Que Isso É Importante
Em bancos de dados tradicionais, se um comando DELETE for executado sem uma cláusula WHERE, é necessário acionar um Administrador de Banco de Dados para restaurar um backup — um processo que pode levar horas.
Com o Delta Lake Time Travel, é possível corrigir o erro rapidamente selecionando os dados de uma versão anterior e sobrescrevendo a tabela atual corrompida com os dados históricos saudáveis.
5. Gerenciando o Histórico
Por padrão, o Delta Lake mantém 30 dias de histórico. Embora seja extremamente útil, armazenar o histórico exige manter arquivos de dados antigos, mas os arquivos de dados subjacentes de versões excluídas/sobrescritas são mantidos por apenas 7 dias (delta.deletedFileRetentionDuration) antes que o comando VACUUM possa removê-los.
Em ambientes profissionais, engenheiros de dados utilizam o comando VACUUM para limpar arquivos muito antigos e reduzir custos de armazenamento. Para este curso, seu histórico está seguro e pronto para exploração.
VACUUM é um comando de limpeza que exclui permanentemente os arquivos de dados antigos que o Delta Lake não precisa mais — aqueles deixados para trás após atualizações, exclusões ou sobrescritas.
VACUUM workspace.workshop.diamonds
Por padrão, o Delta mantém 30 dias de histórico de arquivos para Time Travel. O VACUUM remove arquivos mais antigos do que esse limite para economizar espaço de armazenamento.
Também é possível definir uma janela de retenção personalizada:
VACUUM workspace.workshop.diamonds RETAIN 7 HOURS
1. Qual comando SQL permite visualizar a lista de todas as versões anteriores e operações realizadas em uma tabela?
2. Você atualizou acidentalmente a tabela diamonds e deseja ver os dados de 10 minutos atrás. Qual sintaxe deve ser utilizada?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo