Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Visualização do Histórico da Tabela (Noções Básicas de Time Travel) | Conceitos Fundamentais do Databricks
Fundamentos do Databricks: Um Guia para Iniciantes

Visualização do Histórico da Tabela (Noções Básicas de Time Travel)

Deslize para mostrar o menu

Note
Definição

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, DELETE ou MERGE);
  • 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?

question mark

Qual comando SQL permite visualizar a lista de todas as versões anteriores e operações realizadas em uma tabela?

Selecione a resposta correta

question mark

Você atualizou acidentalmente a tabela diamonds e deseja ver os dados de 10 minutos atrás. Qual sintaxe deve ser utilizada?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 5. Capítulo 3
some-alt