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.