el propietario del almacén de datos debe decidir cómo responder a los cambios en las descripciones de las entidades dimensionales como empleado, cliente, Producto, Proveedor, ubicación y otros. En 30 años de estudiar este tema, he encontrado que solo se necesitan tres tipos diferentes de respuestas. Llamo a estos tipos de dimensión de cambio lento (SCD) 1, 2 y 3. En la columna del mes pasado, describí el tipo 1, que sobrescribe la información cambiada en la dimensión., En esta columna describo los tipos 2 y 3.
Tipo 2: Agregar un nuevo registro de dimensión
alteremos el escenario de la columna anterior donde sobrescribí el campo de la ciudad natal en el registro de Empleados de Ralph Kimball para asumir que Ralph Kimball realmente se mudó de Santa Cruz a Boulder Creek el 18 de julio de 2008. Supongamos que nuestra política es rastrear con precisión las direcciones de las casas de los empleados en el almacén de datos. Este es un cambio clásico de tipo 2.
el SCD tipo 2 requiere que emitamos un nuevo registro de empleado para Ralph Kimball a partir del 18 de julio de 2008., Esto tiene muchos efectos secundarios interesantes:
- El tipo 2 requiere que generalicemos la clave primaria de la dimensión empleado. Si la clave natural del empleado de Ralph Kimball es G446, entonces esa clave natural será el «pegamento» que mantiene los múltiples registros de Ralph Kimball juntos. No recomiendo crear una clave primaria inteligente para SCDs de tipo 2 que contenga la clave natural literal. Los problemas con las teclas inteligentes se vuelven especialmente obvios si está integrando varios sistemas de Recursos Humanos incompatibles con claves naturales con un formato diferente., Más bien, debe crear claves primarias completamente artificiales que son simplemente números enteros asignados secuencialmente. A estas llaves las llamamos llaves sustitutas. Debe crear una nueva clave primaria sustituta cada vez que procese un cambio de tipo 2 en una dimensión.
- Además de la clave sustituta primaria, recomiendo agregar cinco campos adicionales a una dimensión que se está procesando en Tipo 2. Estos campos se muestran en la Figura 1. Los datetimes son sellos de tiempo completo que representan el lapso de tiempo entre el momento en que el cambio se hizo efectivo y cuando el siguiente cambio se hace efectivo., La fecha y hora de finalización efectiva de un registro de dimensión de tipo 2 debe ser exactamente igual a la fecha y hora de inicio efectiva del siguiente cambio para ese miembro de dimensión. El registro de dimensión más actual debe tener una fecha y hora efectiva final igual a una fecha y hora ficticia en el futuro. El texto de la razón para el cambio debe extraerse de una lista planificada de razones para un cambio, en nuestro ejemplo, a los atributos del empleado. Por último, el indicador current-flag proporciona una forma rápida de aislar exactamente el conjunto de miembros de dimensión que está en vigor en el momento de la consulta., Estos cinco campos administrativos permiten a los usuarios finales y las aplicaciones realizar muchas consultas potentes.
- con una dimensión que se somete a procesamiento de tipo 2, se debe tener mucho cuidado de usar las claves sustitutas contemporáneas correctas de esta dimensión en cada tabla de hechos afectada. Esto asegura que los perfiles de dimensión correctos están asociados con la actividad de la tabla de hechos. El proceso de extracción, transformación y carga (ETL) para alinear las tablas de dimensiones con las tablas de hechos en tiempo de carga se llama la tubería de claves sustitutas y se trata ampliamente en mis artículos y libros.,
Tipo 3: Agregue un nuevo campo
aunque los SCD de tipo 1 y 2 son las técnicas principales de trabajo para responder a los cambios en una dimensión, necesitamos una tercera técnica para manejar realidades alternativas. A diferencia de los atributos físicos que solo pueden tener un valor en un punto en el tiempo, algunos atributos asignados por el usuario pueden legítimamente tener más de un valor asignado dependiendo del punto de vista del observador. Por ejemplo, una categoría de producto puede tener más de una interpretación., En una tienda de papelería, se podría asignar un bolígrafo a la categoría de artículos para el hogar o a la categoría de artículos de arte. Los usuarios finales y las aplicaciones deben poder elegir en el momento de la consulta cuál de estas realidades alternativas se aplica.
el requisito de una vista de realidad alternativa de un atributo de dimensión generalmente va acompañado de un requisito sutil de que las versiones separadas de la realidad estén disponibles en todo momento en el pasado y en el futuro, a pesar de que la solicitud de hacer visibles estas realidades llegó al Almacén de datos hoy.,
en la variación más simple, solo hay una realidad alternativa. En este caso, para el ejemplo de categoría de producto, agregamos un nuevo campo en la dimensión, tal vez llamado categoría alternativa. Si la categoría principal de nuestra pluma de marcado solía ser artículos para el hogar y ahora debería ser artículos de arte, entonces en un tratamiento de Tipo 3, empujamos la etiqueta de artículos para el hogar en el campo de categoría alternativa y actualizamos el campo de categoría regular con artículos de arte sobrescribiendo. El paso de sobrescritura es similar a un SCD de tipo 1 y provoca las mismas advertencias en la columna del mes pasado.,
con la maquinaria Tipo 3 instalada, los usuarios finales y las aplicaciones pueden cambiar sin problemas entre estas realidades alternativas. Si el entorno requiere más de una realidad alternativa, este enfoque puede generalizarse agregando más campos alternativos, aunque obviamente este enfoque no se escala con gracia más allá de unas pocas opciones.
los tres enfoques de SCD para manejar la variación de tiempo en las dimensiones tienen una enorme aplicabilidad en las situaciones del mundo real encontradas por el almacén de datos., El tipo 2, en particular, nos permite cumplir con la promesa del almacén de datos de preservar fielmente la historia.