# Dimensión lentamente cambiante

> Cómo registra un data warehouse los cambios de datos como la ciudad de un cliente.

- Nivel: Avanzado
- Temas: Datos
- URL: https://tidbit.legios.com.ar/es/slowly-changing-dimension/
- En inglés: [Slowly changing dimension](https://tidbit.legios.com.ar/slowly-changing-dimension/)

En un esquema en estrella, las tablas de dimensiones describen el quién, el qué y el dónde de cada evento: el cliente, el producto, el local. Casi todo eso cambia poco, pero cambia cada tanto. Un cliente se muda, un producto pasa a otra categoría, un local cambia de encargado. Una **dimensión lentamente cambiante** (slowly changing dimension, o SCD) es una dimensión que tiene que lidiar con esos cambios ocasionales, y el término suele referirse a las técnicas para manejarlos.

La elección importa porque cambia la historia. Supongamos que Ana se mudó de Córdoba a Rosario en marzo. Con el **Tipo 1** simplemente pisás la ciudad; es fácil, pero ahora todas sus compras del año pasado aparecen como ventas en Rosario. Con el **Tipo 2** conservás la fila vieja, la cerrás con una fecha de fin y agregás una fila nueva para Rosario con su propia clave sustituta, vigente desde marzo y marcada como actual. Las ventas viejas siguen asociadas a Córdoba y las nuevas a Rosario. El **Tipo 3** agrega una columna de "ciudad anterior", que guarda un solo paso de historia.

El Tipo 2 es el más usado cuando la historia importa, y por eso muchas tablas de dimensiones tienen columnas como `valid_from`, `valid_to` e `is_current`. Los números de tipo vienen del modelado dimensional de Ralph Kimball, y es común mezclarlos en una misma tabla: pisar la corrección de un error de tipeo, guardar historia de la dirección. Herramientas actuales como los snapshots de dbt y los pipelines de Microsoft Fabric pueden armar tablas Tipo 2 automáticamente.

## Una analogía

Como un pasaporte que suma un sello nuevo cada vez que te mudás en lugar de borrar la dirección anterior: siempre podés demostrar dónde vivías cuando hiciste cada viaje.

## Para quedarse

- El Tipo 1 pisa el valor viejo y pierde la historia.
- El Tipo 2 agrega una fila nueva con fechas de vigencia y conserva toda la historia.
- El Tipo 3 guarda solo el valor anterior en una columna extra.
- La elección define si los informes del pasado cambian cuando cambia una descripción.

## Para seguir leyendo

- [Dimensión de variación lenta de tipo 2 (documentación de Microsoft Fabric)](https://learn.microsoft.com/es-es/fabric/data-factory/slowly-changing-dimension-type-two)
- [Slowly changing dimension en Wikipedia (en inglés)](https://en.wikipedia.org/wiki/Slowly_changing_dimension)

## Términos relacionados

- [Esquema en estrella](https://tidbit.legios.com.ar/es/star-schema/): Diseño de data warehouse: una tabla de eventos al centro y tablas descriptivas alrededor.
- [dbt](https://tidbit.legios.com.ar/es/dbt/): Una herramienta para escribir transformaciones de datos en SQL, con tests, como software.
- [Microsoft](https://tidbit.legios.com.ar/es/microsoft/): La empresa de Windows y Office, que hoy es igual de importante como nube con Azure.
