Time Travel no Lakehouse do Microsoft Fabric: passo a passo
Time Travel no Lakehouse do Microsoft Fabric permite ver e recuperar versões anteriores de dados Delta. Esta funcionalidade é útil para auditoria, recuperação de dados após alterações acidentais ou comparar estados históricos de uma tabela.
Pré-requisitos
- Conta Microsoft Fabric com permissões de Writer no Lakehouse.
- Um Lakehouse com pelo menos uma tabela Delta (ex.: nome_da_tabela).
- Acesso a um SQL query endpoint do Warehouse ou um Notebook com suporte a SQL.
- Permissão para executar operações de administração na tabela (RESTORE/SELECT).
Passo 1: Verificar o histórico da tabela
O primeiro passo é ver o histórico de commits da tabela para identificar a versão ou timestamp que queres recuperar. Usa DESCRIBE HISTORY para obter as versões, com autor, timestamp e mensagem.
DESCRIBE HISTORY nome_da_tabela;
Analisa as colunas version e timestamp para escolher a versão alvo. Anota o número da versão (ex.: 5) ou o timestamp.
Passo 2: Consultar uma versão específica (Time Travel read)
Antes de qualquer alteração, podes inspecionar a versão antiga sem a alterar. Usa VERSION AS OF numa SELECT para ler os dados nessa versão.
SELECT *
FROM nome_da_tabela VERSION AS OF 5
LIMIT 100;
Isto cria uma leitura consistente da versão 5. Útil para validar que os dados que queres recuperar são os correctos.
Passo 3: Exportar ou criar uma cópia da versão antiga
É recomendável criar uma cópia antes de restaurar. Podes criar uma tabela nova com o conteúdo da versão antiga ou exportar para um ficheiro em OneLake.
-- Criar uma tabela temporária com a versão antiga
CREATE TABLE nome_da_tabela_backup_v5 AS
SELECT * FROM nome_da_tabela VERSION AS OF 5;
-- Ou exportar para CSV em OneLake (ajusta o caminho conforme o teu OneLake)
COPY INTO 'OneLake:////nome_da_tabela_v5.csv'
FROM (SELECT * FROM nome_da_tabela VERSION AS OF 5)
WITH (FILE_TYPE='CSV', HEADER=TRUE);
Ter uma cópia evita perda de dados se algo correr mal durante o processo de restauração.
Passo 4: Restaurar a tabela para a versão anterior
Quando já confirmaste a versão correcta e tens uma cópia, podes restaurar a tabela para a versão desejada. O comando abaixo ajusta a tabela para o estado da versão 5.
RESTORE TABLE nome_da_tabela TO VERSION AS OF 5;
Depois de correr, a tabela passa a reflectir o conteúdo da versão especificada. Dependendo das permissões e da política da organização, este comando pode exigir permissões administrativas.
Passo 5: Validar a restauração e boas práticas
Depois da restauração, confirma que a tabela está no estado esperado e regista as alterações para auditoria. Evita correr processos que removam históricos (ex.: VACUUM) sem concordância, porque apagam meta-informação necessária ao Time Travel.
-- Verificar a versão actual
SELECT MAX(version) AS versao_actual
FROM (DESCRIBE HISTORY nome_da_tabela);
-- Ler os dados restaurados
SELECT TOP 100 * FROM nome_da_tabela;
Regista nos logs quem fez a restauração, a versão alvo e o motivo. Mantém backups (cópias em OneLake) para recuperação alternativa.
Verificar o resultado
Confirma o sucesso com estes passos: 1) DESCRIBE HISTORY nome_da_tabela deve mostrar um novo commit de restauração ou o pointer para a versão restaurada; 2) executa uma SELECT simples para validar dados; 3) compara linha a linha com a tabela de backup criada no Passo 3.
-- Comparação simples
SELECT COUNT(*) AS total_original
FROM nome_da_tabela_backup_v5;
SELECT COUNT(*) AS total_restaurado
FROM nome_da_tabela;
Conclusão
Time Travel no Lakehouse do Microsoft Fabric facilita recuperar estados anteriores de tabelas Delta para auditoria e recuperação de erros. Próximos passos: automatizar checkpoints antes de alterações críticas, integrar checks no CI/CD e definir políticas de retenção do histórico. Dica: antes de usar VACUUM ou políticas de limpeza, certifica-te de que não vais perder a capacidade de restaurar versões importantes — qual a versão mais crítica que tens de poder recuperar na tua organização?