Time Travel en Snowflake: como recuperar datos borrados o modificados
En esta guia aprenderas
Time Travel es tu red de seguridad en Snowflake. Cuando alguien borra datos por error o necesitas consultar como estaban ayer, esta funcionalidad te salva.
- Que es Time Travel y como funciona internamente
- Recuperar tablas borradas con UNDROP
- Consultar datos historicos con AT y BEFORE
- Configurar periodos de retencion por tabla
- Diferencias entre ediciones Standard y Enterprise
Preparate para SnowPro Core
Time Travel es uno de los temas clave del examen. En el curso trabajamos todos los escenarios de recuperacion con ejercicios practicos.
Ver temario del cursoQue es Time Travel en Snowflake
Time Travel es una funcionalidad nativa de Snowflake que almacena automaticamente versiones historicas de tus datos. Cada vez que modificas o eliminas datos, Snowflake guarda el estado anterior durante un periodo configurable.
Esto significa algo clave para tu negocio: puedes recuperar cualquier dato modificado o borrado sin necesidad de backups manuales. Alguien borro una tabla? La recuperas en segundos.
Time Travel te permite:
- Consultar datos como existian en el pasado (hace minutos, horas o dias)
- Recuperar tablas, schemas o databases borrados con un simple comando
- Crear clones de datos historicos para analisis o testing
- Auditar cambios y entender que paso con tus datos
Tip rapido: Time Travel esta activo por defecto en todas las cuentas de Snowflake. No necesitas configurar nada para empezar a usarlo.
Por que Time Travel es esencial para proteger tus datos
Sin Time Travel, recuperar datos borrados o modificados requiere restaurar desde backups externos, un proceso lento y propenso a errores. Con Time Travel, la recuperacion es inmediata.
Estos son los escenarios donde Time Travel te salva:
- DELETE o UPDATE accidental: recuperas el estado anterior en segundos
- DROP TABLE por error: restauras la tabla con UNDROP
- Auditoria de cambios: consultas exactamente que datos habia ayer
- Testing con datos reales: clonas una tabla de hace 1 hora sin afectar produccion
En el examen SnowPro Core, Time Travel tiene peso significativo porque es una de las funcionalidades que diferencia a Snowflake de otras bases de datos.
Como recuperar datos borrados paso a paso
1. Recuperar objetos borrados con UNDROP
Si alguien ejecuto DROP TABLE, DROP SCHEMA o DROP DATABASE, puedes restaurarlo asi:
-- Recuperar tabla borrada
UNDROP TABLE clientes;
-- Tambien funciona con schemas y databases
UNDROP SCHEMA ventas;
UNDROP DATABASE produccion;
Tip rapido: UNDROP restaura el objeto con todos sus datos, permisos y configuracion. Es como si nunca se hubiera borrado.
2. Consultar datos de un momento especifico con AT/BEFORE
Si los datos fueron modificados (UPDATE/DELETE) pero la tabla sigue existiendo:
-- Ver datos de hace 1 hora (3600 segundos)
SELECT * FROM clientes AT (OFFSET => -3600);
-- Ver datos de un timestamp exacto
SELECT * FROM clientes AT (TIMESTAMP => '2024-12-21 10:30:00'::timestamp);
-- Ver datos ANTES de un statement especifico
SELECT * FROM clientes BEFORE (STATEMENT => '01b2c3d4-query-id');
3. Crear un clon de datos historicos
Ideal para testing o analisis sin afectar produccion:
-- Clonar tabla como estaba hace 2 horas
CREATE TABLE clientes_backup CLONE clientes AT (OFFSET => -7200);
-- Clonar schema completo de ayer
CREATE SCHEMA ventas_ayer CLONE ventas AT (TIMESTAMP => '2024-12-20 23:59:59'::timestamp);
Cuanto tiempo puedo viajar atras
El periodo de retencion depende de tu edicion de Snowflake:
| Edicion | Retencion por defecto | Maximo configurable |
|---|---|---|
| Standard | 1 dia | 1 dia |
| Enterprise | 1 dia | Hasta 90 dias |
| Business Critical | 1 dia | Hasta 90 dias |
Para cambiar el periodo de retencion:
-- Configurar 30 dias de retencion para una tabla critica
ALTER TABLE clientes SET DATA_RETENTION_TIME_IN_DAYS = 30;
-- Ver configuracion actual
SHOW PARAMETERS LIKE 'DATA_RETENTION%' IN TABLE clientes;
Error comun: Pensar que Time Travel es gratis. Mas dias de retencion = mas almacenamiento = mas coste. Configura solo lo necesario para tablas criticas.
Errores comunes y como solucionarlos
1. Object not found or retention time exceeded
Intentas acceder a datos mas alla del periodo de retencion. Verifica el periodo configurado.
-- Solucion: verificar periodo de retencion
SHOW PARAMETERS LIKE 'DATA_RETENTION%' IN TABLE clientes;
2. Cannot UNDROP - a table with the same name already exists
Borraste una tabla y creaste otra con el mismo nombre.
-- Solucion: renombrar la tabla actual primero
ALTER TABLE clientes RENAME TO clientes_nueva;
UNDROP TABLE clientes;
3. Confundir AT y BEFORE
AT devuelve datos en ese momento exacto. BEFORE devuelve datos justo antes de ese momento o statement. Para recuperar datos antes de un DELETE, usa BEFORE.
Mejores practicas para Time Travel
Estas son las practicas que aplican los arquitectos certificados:
1. Configura retencion segun criticidad
-- Tablas criticas de produccion: 7-30 dias
ALTER TABLE clientes SET DATA_RETENTION_TIME_IN_DAYS = 30;
ALTER TABLE pedidos SET DATA_RETENTION_TIME_IN_DAYS = 14;
-- Tablas de staging/temporal: 0-1 dias
ALTER TABLE staging_temp SET DATA_RETENTION_TIME_IN_DAYS = 0;
2. Documenta los periodos de retencion
Cada tabla importante debe tener documentado su periodo de retencion para que el equipo sepa cuanto tiempo tiene para recuperar datos.
3. Prueba la recuperacion periodicamente
Haz simulacros de recuperacion antes de que ocurra una emergencia real.
4. Monitoriza el coste de almacenamiento
-- Ver almacenamiento usado por Time Travel
SELECT * FROM TABLE(INFORMATION_SCHEMA.STORAGE_USAGE())
WHERE USAGE_DATE >= DATEADD('day', -30, CURRENT_DATE());
Checklist de configuracion Time Travel:
- Tablas criticas con 7+ dias de retencion
- Tablas temporales con 0-1 dias
- Documentacion de periodos por tabla
- Simulacros de recuperacion trimestrales
- Monitorizacion mensual de costes de almacenamiento
Preguntas frecuentes
Time Travel consume almacenamiento adicional?
Si. Snowflake almacena los cambios historicos, lo que incrementa el almacenamiento. Puedes ver el impacto en la vista STORAGE_USAGE.
Que pasa cuando expira el periodo de Time Travel?
Los datos pasan a Fail-safe, un periodo adicional de 7 dias donde solo Snowflake Support puede recuperarlos. Despues, se eliminan permanentemente.
Puedo desactivar Time Travel?
Si, configurando DATA_RETENTION_TIME_IN_DAYS = 0. Pero no es recomendable para datos de produccion.
Time Travel funciona con tablas externas?
No. Las tablas externas y los stages internos no soportan Time Travel porque los datos residen fuera de Snowflake.
Cual es la diferencia entre AT y BEFORE?
AT devuelve datos en ese momento exacto. BEFORE devuelve datos justo antes de ese momento o statement. Para recuperar datos antes de un DELETE accidental, usa BEFORE con el statement ID.
Conclusion: Time Travel es tu red de seguridad
Time Travel es una de las funcionalidades mas poderosas de Snowflake para proteger tus datos. Dominar su uso te permite:
- Recuperar datos borrados en segundos con UNDROP
- Consultar estados historicos para auditoria y debugging
- Crear clones para testing sin duplicar almacenamiento
- Cumplir requisitos de compliance con periodos de retencion configurables
Si estas preparando la certificacion SnowPro Core, Time Travel es un tema con peso significativo en el examen. Y si trabajas con Snowflake en produccion, entender esta funcionalidad puede salvarte de situaciones criticas.
Domina Time Travel con el curso SnowPro Core
Time Travel, Fail-safe, Cloning y todas las funcionalidades de Data Protection son temas clave del examen.
- Guias de estudio para los 6 dominios del examen
- Laboratorios practicos con escenarios de recuperacion
- Tests de practica con preguntas tipo examen
- Acceso de por vida y actualizaciones incluidas

Comments (0)
Be the first to comment on this article.
Leave a comment
Log in to leave a comment.