Time Travel Snowflake

O Time Travel no Snowflake é uma funcionalidade avançada, incluída em nosso plano Enterprise, que permite a recuperação e restauração de dados em estados anteriores. Essa funcionalidade também pode ser contratada como um adicional em outros planos.

Se você estiver interessado em habilitar o Time Travel no seu ambiente ou quiser saber mais detalhes sobre como utilizá-lo, entre em contato com o nosso time de Sucesso do Cliente através do email [email protected]. Nossa equipe está à disposição para orientá-lo no processo de ativação e esclarecer qualquer dúvida, garantindo que você aproveite ao máximo essa poderosa ferramenta de recuperação de dados.

O Time Travel é útil para recuperação de dados, auditoria e validação de alterações. Abaixo, apresentamos um guia rápido com o passo a passo para utilização desse recurso.

1. Criação da Tabela

Comece criando uma tabela de teste ou duplicando uma estrutura existente. Isso servirá como base para experimentações com Time Travel.

CREATE OR REPLACE TABLE ESQUEMA.NOME_TABELA(
	COLUNA1 TIPO,
	COLUNA2 TIPO,
)

Após a criação, consulte a tabela para garantir que a estrutura está correta.

SELECT * FROM ESQUEMA.NOME_TABELA;

2. Inserção de Dados

Insira dados na tabela para realizar operações futuras.

INSERT INTO ESQUEMA.NOME_TABELA
SELECT * FROM OUTRA_TABELA;

Valide o conteúdo inserido com uma consulta simples.

SELECT * FROM ESQUEMA.NOME_TABELA;

3. Atualização de Dados

Faça alterações na tabela, como por exemplo, atualize colunas específicas.

UPDATE ESQUEMA.NOME_TABELA
SET COLUNA = VALOR
WHERE CONDICAO;

4. Validação do Time Travel

4.1. Usando a cláusula AT(OFFSET)

Você pode consultar o estado da tabela antes de uma alteração, usando o deslocamento de tempo (em segundos) desde a operação:

SELECT *
FROM ESQUEMA.NOME_TABELA  
AT(OFFSET => -60*3); -- Exemplo: 3 minutos atrás

4.2 Usando a cláusula BEFORE(STATEMENT)

Outra abordagem é consultar o estado da tabela antes de uma determinada query, utilizando o QUERY_ID da operação

SELECT * 
FROM ESQUEMA.NOME_TABELA 
BEFORE(STATEMENT => 'QUERY_ID');

5. Restauração da Tabela

5.1 Restauração usando BEFORE(STATEMENT)

Para restaurar a tabela ao estado anterior a uma query específica, utilize o comando abaixo com o QUERY_ID relevante:

CREATE OR REPLACE TABLE ESQUEMA.NOME_TABELA AS 
SELECT *  
FROM ESQUEMA.NOME_TABELA  
BEFORE(STATEMENT => 'QUERY_ID');

Verifique o estado restaurado com uma consulta simples

SELECT * FROM ESQUEMA.NOME_TABELA;

5.2 Restauração usando AT(OFFSET)

Outra opção é restaurar a tabela utilizando o deslocamento de tempo

CREATE OR REPLACE TABLE ESQUEMA.NOME_TABELA AS 
SELECT * 
FROM ESQUEMA.NOME_TABELA 
AT(OFFSET => -60*2); -- Exemplo: 2 minutos atrás

Novamente, valide o estado restaurado da tabela

SELECT * FROM ESQUEMA.NOME_TABELA;

O recurso de Time Travel do Snowflake oferece flexibilidade para consultar e restaurar dados em estados anteriores. Seja para corrigir alterações acidentais ou para auditorias, ele garante que você possa voltar no tempo e visualizar ou recuperar dados com facilidade.

Para mais detalhes, consulte a documentação oficial: Time Travel Snowflake .