Slowly Changing Dimensions (SCD) – dimensiones que cambian lentamente con el tiempo, en lugar de cambiar en el horario regular, base de tiempo. En el almacén de datos es necesario realizar un seguimiento de los cambios en los atributos de dimensión para informar de los datos históricos. En otras palabras, la implementación de uno de los tipos SCD debería permitir a los usuarios asignar el valor de atributo de dimension adecuado para una fecha determinada. Ejemplo de tales dimensiones podría ser: cliente, geografía, empleado.,
hay muchos enfoques sobre cómo lidiar con la SCD. Los más populares son:
- Tipo 0 – el método pasivo
- Tipo 1 – sobrescribir el valor antiguo
- Tipo 2 – Crear un nuevo registro adicional
- Tipo 3 – Agregar una nueva columna
- Tipo 4 – Usar tabla histórica
- Tipo 6 – combinar enfoques de tipos 1,2,3 (1+2+3=6)
Tipo 0 – el método pasivo. En este método no se realiza ninguna acción especial sobre los cambios dimensionales. Algunos datos de dimensión pueden seguir siendo los mismos que se insertaron por primera vez, otros pueden sobrescribirse.,
Tipo 1 – Sobrescribir el valor antiguo. En este método no se guarda ningún historial de cambios de dimensión en la base de datos. El valor de la dimensión Antigua simplemente se sobrescribe como el nuevo. Este tipo es fácil de mantener y a menudo se usa para datos cuyos cambios son causados por correcciones de procesamiento (por ejemplo, eliminación de caracteres especiales, corrección de errores ortográficos).,
Antes de que el cambio:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporativo |
Después del cambio:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Retail |
Tipo 2 – la Creación de un nuevo registro adicional., En esta metodología, toda la historia de los cambios de dimensión se mantiene en la base de datos. Para capturar el cambio de atributo, agregue una nueva fila con una nueva clave sustituta a la tabla de dimensiones. Tanto las filas anteriores como las nuevas contienen como atributos la clave natural (u otro identificador duradero). En este método también se utilizan las columnas «fecha efectiva» e «indicador actual». Solo podría haber un registro con el indicador actual establecido en «Y». Para las columnas de’ fecha efectiva’, es decir, start_date y end_date, el end_date para el registro actual generalmente se establece en el valor 9999-12-31., Introducir cambios en el modelo dimensional en el tipo 2 podría ser una operación de base de datos muy costosa, por lo que no se recomienda usarlo en dimensiones donde se podría agregar un nuevo atributo en el futuro.,
Antes de que el cambio:
Customer_ID | Customer_Name | Customer_Type | Start_Date | End_Date | Current_Flag |
---|---|---|---|---|---|
1 | Cust_1 | Corporativo | 22-07-2010 | 31-12-9999 | Y |
Después del cambio:
el Tipo 3 – Agregar una nueva columna. En este tipo generalmente solo el valor actual y anterior de dimension se mantiene en la base de datos., El nuevo valor se carga en la columna ‘ current / new ‘y el antiguo en la columna’ old/previous’. En términos generales, el historial se limita al número de columnas creadas para almacenar datos históricos. Esta es la técnica menos comúnmente necesaria.,iv id=»2f5bdb6350″>
Después del cambio:
Customer_ID | Customer_Name | Current_Type | Previous_Type |
---|---|---|---|
1 | Cust_1 | Retail | Corporativo |
Tipo 4 – Uso histórico de la tabla., En este método se utiliza una tabla histórica separada para rastrear todos los cambios históricos de atributos de dimensión para cada una de las dimensiones. La tabla de dimensiones’ main ‘ mantiene solo los datos actuales, por ejemplo, las tablas customer y customer_history.
tabla Actual:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporativo |
Histórico de la tabla:
Tipo 6 – Combinar los enfoques de los tipos de 1,2,3 (1+2+3=6)., En este tipo tenemos en la tabla de dimensiones columnas adicionales como:
- current_type-para mantener el valor actual del atributo. Todos los registros de historial para un elemento dado del atributo tienen el mismo valor actual.
- historical_type – para mantener el valor histórico del atributo. Todos los registros de historial para un elemento dado del atributo podrían tener valores diferentes.
- start_date-para mantener la fecha de inicio de la ‘fecha efectiva’ del historial del atributo.
- end_date-para mantener la fecha final de la ‘fecha efectiva’ del historial del atributo.,
- current_flag-para mantener información sobre el registro más reciente.
en este método para capturar el cambio de atributo añadimos un nuevo registro como en el tipo 2. La información current_type se sobrescribe con la nueva como en el tipo 1. Almacenamos el historial en un historical_column como en el tipo 3.