Viajando en el tiempo con Fabric Warehouse

Table of contents

Desde hace unas semanas, tenemos en disponibilidad general una de esas cosas que no sabes que necesitas hasta que la pruebas; me refiero al Time Travel, que ya teníamos disponible en el LakeHouse, y que en el WareHouse lo teníamos como “preview”.
¿Qué es el Time Travel?
Si hacemos una traducción literal, sería viaje en el tiempo, concepto que, si asociamos a que estamos trabajando con datos, quiere decir viaje en el tiempo dentro de los datos.
Es decir, vamos a ser capaces de recuperar versiones antiguas (históricas) de dichos datos, y con una ventaja muy importante: no es necesario tener guardado de forma explícita esos datos históricos.
Debemos tener en cuenta, sin embargo, un pequeño matiz: solamente podremos irnos hacia atrás en el tiempo 30 días (período de retención).
Ahora que ya sabemos lo que es el Time Travel, vamos a pasar a explicar cómo usarlo.
Podemos utilizarlo de dos formas distintas:
A nivel de consulta
Si queremos consultar una tabla en el tiempo, debemos incluir en la consulta de la misma la cláusula OPTION. Veamos un ejemplo:
SELECT *
FROM [dbo].[customer];
SELECT *
FROM [dbo].[customer]
OPTION (FOR TIMESTAMP AS OF '2024-08-14T11:49:00.000');
En el primer caso estamos realizando una consulta normal, mientras que en el segundo caso estamos haciendo uso del Time Travel a la fecha indicada.
A nivel de tabla
En Warehouse tenemos la capacidad de clonar tablas, lo cual se hace únicamente a nivel de metadata, pues los datos siguen estando en los ficheros originales.
Tenemos ahora la oportunidad de hacer este clonado en el rango de los últimos 30 días, de forma que la tabla clon apuntará a los datos de la fecha que nosotros queramos.
Si nos situamos en la tabla que queremos clonar y pulsamos botón derecho, nos saldrá la opción de clonado. Saltará entonces una ventana nueva en la que podemos indicar si queremos un clonado actual o de los últimos 30 días; eligiendo este último únicamente tendremos que indicar la fecha/hora hacia la que queremos viajar en el tiempo, y ya tendremos nuestra nueva tabla con los datos históricos de ese momento.
También podremos realizar el clonado a nivel de TSQL usando la siguiente sintaxis:
CREATE TABLE [dbo].[customer-Clone1] AS CLONE OF [dbo].[customer] AT '2024-08-14T11:49:00.000';
Como podemos observar, la fecha a la que se quiere hacer el clonado se indica al final con la clausula AT
Para finalizar, debemos tener en cuenta una serie de consideraciones a la hora de usar el Time Travel:
La fecha tiene que estar en formato UTC
Si usamos una consulta en la que se trabaja con varias tablas, la cláusula OPTION solamente se indicará una vez al final, y la fecha afectará a todas las tablas involucradas.
Si ejecutamos una consulta con una fecha fuera del período de retención devolverá error.
Subscribe to my newsletter
Read articles from Kilian Baccaro Salinas directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
