Contenido del curso
Modelos dimensionales
- 6

Data Warehouse, Data Lake y Data Lakehouse: ¿Cuál utilizar?
07:02 min - 7

Tipos de esquemas dimensionales
05:14 min - 8

Dimensiones lentamente cambiantes
04:33 min - 9

Dimensión tipo 1
07:13 min - 10

Dimensión tipo 2
06:04 min - 11

Dimensión tipo 3
Viendo ahora - 12

Tabla de hechos (fact)
09:04 min - 13

Configuración de herramientas para Data Warehouse y ETL
03:22 min - 14

Modelado dimensional: identificación de dimensiones y métricas
08:55 min - 15

Modelado dimensional: diseño de modelo
11:24 min
ETL para inserción en Data Warehouse
- 16

Documento de mapeo
19:26 min - 17

Creación del modelo físico
07:09 min - 18

Extracción: querys en SQL
17:28 min - 19

Extracción en Pentaho
09:26 min - 20

Transformación: dimensión de cliente
15:19 min - 21

Carga: dimensión de cliente
15:01 min - 22

Soluciones ETL de las tablas de dimensiones y hechos
12:21 min - 23

Parámetros en ETL
17:26 min - 24

Orquestar ETL en Pentaho: job
24:27 min - 25

Revisión de todo el ETL
07:27 min
Cierre
Dimensión tipo 3
Resumen
Cuando se trabaja con data warehousing, una de las decisiones más importantes es cómo gestionar los cambios en los datos a lo largo del tiempo. La dimensión lentamente cambiante tipo tres (Slowly Changing Dimension Type 3 o SCD Type 3) ofrece un enfoque práctico: en lugar de crear registros nuevos, se agregan columnas adicionales para conservar el valor anterior y el valor actual de un atributo.
¿Cómo funciona la dimensión lentamente cambiante tipo tres?
A diferencia de la SCD tipo dos, que genera un registro nuevo cada vez que ocurre un cambio, la tipo tres mantiene un único registro por entidad y agrega columnas para reflejar la historia. En el ejemplo presentado [0:15], Pepito Pérez cambia de la Facultad de Mercadeo a la Facultad de Ingeniería. El resultado no es una fila nueva, sino dos columnas:
- Facultad old: almacena el valor anterior (mercadeo).
- Facultad new: almacena el valor vigente (ingeniería).
El ID del registro permanece igual, ya que se trata del mismo estudiante. Solo se actualizan los atributos de historia.
¿Qué sucede en la primera carga del ETL?
Durante la primera ejecución del proceso ETL [0:37], el registro se inserta tal como existe en el origen. En el ejemplo, Pepito Pérez pertenece a la Facultad de Salud con fecha de actualización del 24 de febrero. Al cargarlo en la dimensión:
- Se le asigna un ID surrogado calculado a partir del máximo registro existente. Como la dimensión está vacía, el ID es 1.
- La columna facultad old queda en nulo, porque no existe historia previa.
- La columna facultad new se llena con salud.
- La fecha de inserción corresponde al 24 de febrero.
¿Cómo se actualiza cuando cambia un dato?
Un mes después [1:12], Pepito Pérez es reasignado a la Facultad de Ingeniería. La dimensión tipo tres no crea un registro nuevo ni sobreescribe el existente sin dejar rastro. Lo que hace es:
- Mantener el mismo ID mediante el cruce por código de estudiante.
- Mover el valor de facultad new (salud) hacia facultad old.
- Actualizar facultad new con el nuevo valor: ingeniería.
- Registrar la fecha de la última carga como marzo.
De esta forma, el registro final muestra que Pepito Pérez perteneció anteriormente a salud y actualmente pertenece a ingeniería, todo en una sola fila.
¿Cuáles son las ventajas y limitaciones de este enfoque?
La principal ventaja es la simplicidad de consulta: cada entidad ocupa un solo registro, lo que facilita las búsquedas y reduce el volumen de datos. Además, la fecha de inserción permite identificar rápidamente qué registros cambiaron en la última carga, evitando reprocesar toda la historia.
Sin embargo, la limitación más evidente es que solo se conserva un nivel de historia. Si Pepito Pérez cambiara nuevamente de facultad, el valor que estaba en facultad old se perdería, reemplazado por el que estaba en facultad new. Solo se pueden comparar el estado actual y el inmediatamente anterior.
¿Cómo se combinarían la SCD tipo dos y la tipo tres?
Una pregunta interesante que se plantea al final [2:07] es cómo funcionaría una dimensión que combine ambos enfoques: crear registros nuevos para almacenar historia completa (como la tipo dos) y a la vez mantener columnas con el valor anterior y actual (como la tipo tres). Esta combinación se conoce como SCD tipo seis (o hybrid SCD), y permite tener lo mejor de ambos mundos: trazabilidad completa por filas y acceso rápido al cambio más reciente por columnas.
¿Has implementado alguna de estas dimensiones en tus proyectos? Comparte en los comentarios cómo resolverías la combinación de la tipo dos con la tipo tres.