en el artículo de hoy me gustaría centrarme en Slowly changing dimension, también conocido como SCD. Dimensión es una palabra extraída del Data warehousing como tal. No sin razón, SCD se utiliza muy a menudo en términos de temas de Data Warehouse (DW) y se puede usar con fines de auditoría en sistemas OLTP.

el objetivo del artículo es revisar los tipos de dimensión que cambian lentamente, ya que hay pocas versiones de ellos.

los datos cambian con el tiempo., Es posible que no le importe la versión histórica de los datos en su base de datos OLTP, pero puede ser un requisito comercial para mantener todos los cambios históricos. En otras palabras, debe ser capaz de mostrar, en un informe de ventas, una oficina regional correcta de una persona de ventas, sin importar cuándo la persona haya cambiado la región. En ese caso debemos conservar los datos antes del cambio y después de la actualización.

¿cómo funcionan las transformaciones?

hay pocos tipos de SCD.

dependiendo del tipo SCD, puede mantener ninguno, uno o más cambios históricos de filas.,la idea es simple: cada vez que la fila está cambiando, una versión antigua (antes de actualizar o eliminar) de la fila se mantendrá en la tabla SCD.la implementación de estas cosas no siempre es fácil. Echemos un vistazo a los ejemplos.

como ejemplo de datos de origen utilizaré la siguiente fila de datos:

Ejemplo de datos de origen SCD

en el ejemplo anterior, CustomerId es una PrimaryKey en la base de datos de origen (OLTP).,
introducimos la clave sustitutiva (CustomerKey) en DW para evitar la duplicación del CustomerId original y optimizar el rendimiento, especialmente cuando el sistema de origen utiliza caracteres o claves complejas.

SCD data in Data Warehouse example

SCD Type 0

Este tipo no guarda ningún cambio de atributos. Mantiene solo el valor original sin ningún cambio. Se utiliza principalmente para atributos que no se pueden cambiar, como la fecha de nacimiento.,

SCD tipo 1: sobrescribir el historial de un atributo

Este método no puede realizar un seguimiento de los cambios en los datos, y sobrescribe los datos antiguos con nuevos. Una vez que nuestro cliente cambie su dirección, la nueva dirección sobrescribiría:

SCD Type 1

como puede ver, es muy simple implementar y mantener el proceso, es una simple actualización. En otras manos, el inconveniente de este enfoque es la falta de historial de row en el almacén de datos.,

SCD tipo 2: adición de nuevas filas

la metodología está preservando el historial al agregar nuevas filas y no hay límite en el número de cambios de mantenimiento.,iv id=»f3da287bb9″>

SCD Type 2

Además, puede decidir de qué manera desea conocer las filas más antiguas manteniendo la columna de bandera actual y/o actualizando:

SCD Type 2 con bandera actual

o versión de la fila que se incrementará secuencialmente:

SCD tipo 2 con versión

SCD tipo 3: columnas históricas adicionales

en este enfoque, puede administrar una cantidad limitada de historial agregando columnas adicionales para los atributos de seguimiento.,
queriendo tener ciudad anterior y actual del cliente puede implementar columnas: PreviousCity y CurrentCity. Solo habrá una fila en el almacén de datos (DW) por base de datos de origen, por lo tanto, el tipo 3 tiene una usabilidad limitada y es menos popular que el tipo 1 y 2.

SCD Type 3

debe tener cuidado si desea utilizar el tipo 3 de SCD. Asegúrese de que el analista de negocios y/o su cliente son conscientes de las limitaciones de la historia.,

SCD Tipo 4: Tabla histórica separada

este tipo utiliza tablas separadas para mantener los registros actuales y los cambios históricos. Vale la pena usarlo cuando:
• La dimensión cambia bastante a menudo O
• La dimensión es una tabla de varios millones de filas

SCD Type 4 current table

SCD Type 4-historical table

Margy Ross de Kimball group llama a tales tablas como «mini – Dimension».,

SCD Tipo 6:

Este enfoque está numerado como 6 como 1+2+3 = 6 así como 1x2x3 = 6. Por lo tanto, es una combinación de estos tres tipos:
• mantener los valores anteriores y actuales para el atributo (como Tipo 3, Mira columnas: «HistoricCity», «CurrentCity»)
• anula todos los registros para la versión actual del atributo (como tipo 1, mira columna «CurrentCity»)
• mantiene la versión histórica del atributo (como tipo 2, Mira columnas: «IsCurrent», «StartDate», «EndDate»)
echemos un vistazo a cómo se está cambiando la fila y cómo afecta a DW., La primera carga de la fila:

SCD Tipo 6 (paso 1)

Filas en DW de atención al Cliente de la tabla siguiente primer cliente de reubicación:

SCD Tipo 6 (paso 2)

Filas en DW de atención al Cliente de la tabla siguiente segundo cliente de reubicación:

SCD Tipo 6 (paso 3)

Que Tipo debo elegir?,

como consultor profesional respondo profesionalmente:

depende

pregunte a su equipo de Negocios, Business analytics o a su cliente: qué necesitan en data warehouse.
tal vez no lo dije lo suficientemente alto, pero en la misma tabla puede aplicar diferentes tipos de SCD a cada columna.por ejemplo: escriba 2 en la columna ciudad, escriba 1 en la columna Fecha de nacimiento. Todo en la misma mesa.
Por lo tanto, pregúnteles por cada dimensión:r• * qué atributos son constantes,
* qué atributos son variables?,r• * ¿qué atributos deben ser completamente rastreados, cuáles deben mantener solo la versión anterior y actual?
* ¿cuántas filas hay en la tabla en este momento / se esperan en los próximos 10 años?mantenga estas respuestas como evidencia. A la gente, especialmente a los clientes, les encanta cambiar de opinión. Sabes a lo que me refiero.
si todavía no está seguro de cuál elegir, recuerde que:

mantener un historial de los cambios es bueno para usted

simplemente porque los requisitos podrían cambiar.
Además de los tipos 0 y 1, en mi opinión, Los más populares son tipo 2 y tipo 4.

¿cómo cargar datos en SCD?,

Buena pregunta. Pero este tema es una historia completamente diferente.
antes de preparar el siguiente post sobre esto – eche un vistazo a esta herramienta:
SCD Merge Wizard
la herramienta le ayuda a crear, administrar y mantener la asignación entre la base de datos de origen (por ejemplo, preparación) y la base de datos de destino (almacén de datos). Además, con este enfoque, utilizará la instrucción MERGE para realizar operaciones de carga utilizando el tipo SCD configurado para cada columna.
en más posts, explicaré cómo aplicar diferentes tipos de SCD en esta herramienta.

buena suerte con tus cargas,
Kamil