Una breve discusión sobre las dimensiones que cambian lentamente en los almacenes de datos

Aunque mi negocio principal es el cálculo en tiempo real y el cálculo por lotes, no el posicionamiento de posiciones, definitivamente tengo que lidiar con el posicionamiento de posiciones en mi trabajo diario. Además, he participado en la construcción de almacenes fuera de línea, por lo que no puedo olvidar los conceptos básicos del modelado dimensional. Piense en este artículo como si fuera una copia de notas.

Como sugiere el nombre, las dimensiones que cambian lentamente (SCD) se refieren a aquellas dimensiones en la tabla de dimensiones del almacén de datos que cambian muy poco con el tiempo, pero aún cambian. Considere las dos situaciones siguientes:

Manejar dimensiones que cambian lentamente es un tema eterno en el sistema de almacenamiento de datos de Kimball. Debido a la naturaleza de los almacenes de datos y al papel fundamental de las tablas de dimensiones en el modelado dimensional, casi siempre tenemos que realizar un seguimiento de los cambios en las dimensiones para preservar el historial y proporcionar resultados precisos de consultas y análisis. En el Capítulo 5 de la tercera edición de "Data Warehousing Toolkit", Kimball propuso múltiples tipos y métodos de procesamiento de dimensiones que cambian lentamente. Los primeros cinco son nativos y los últimos métodos son técnicas híbridas, así que echemos un vistazo a los primeros cinco. Los tipos son del tipo 0 al tipo 4.

Un tipo SCD especial, es decir, no importa cómo cambie el valor real del atributo de dimensión, el valor de la dimensión en el almacén de datos seguirá siendo el primer valor. Se aplica principalmente a aquellas dimensiones cuyo significado es "original", como el nombre de usuario original (nombre_usuario_original) utilizado por el usuario al registrarse en la tabla de dimensiones del usuario. Si se modifica, el valor modificado no es válido y se descartará.

El tipo SCD más simple, es decir, una vez que cambia el valor real del atributo de dimensión, se sobrescribirá directamente en el almacén de datos. Los atributos de dimensión en el almacén de datos siempre contienen la última asignación. Los ejemplos en el libro son los siguientes:

En la figura anterior, la dimensión del nombre del departamento ha cambiado y el nuevo valor sobrescribe directamente el valor anterior. Si bien es fácil de implementar, pierde todo el historial de cambios y puede dar resultados incorrectos al realizar consultas en dominios de tiempo. En la práctica, este enfoque casi siempre es un mal diseño.

El tipo de SCD más importante y comúnmente utilizado es la tecnología de vigilancia con cremallera en nuestra construcción diaria de almacenes basados ​​en colmenas.

Este tipo agrega dos columnas auxiliares a la tabla de dimensiones: la fecha de vigencia y la fecha de vencimiento de la fila, que indican respectivamente el momento a partir del cual la fila entra en vigencia y el momento después del cual pasa a ser efectiva. inválido. Siempre que una o más dimensiones cambian, se crea una nueva fila que contiene el valor de dimensión modificado, mientras que la fila anterior contiene el valor de dimensión sin cambios y la fecha de vencimiento de la fila anterior se modifica simultáneamente. Los ejemplos en el libro son los siguientes:

En la figura anterior, la fecha de vencimiento de la columna actualmente válida (columna actual) se registrará como 9999-12-31. Cuando cambia la dimensión del nombre del departamento, la fecha de vencimiento de la fila anterior con la clave de producto 12345 se actualiza a la fecha de modificación y se crea una nueva fila con la clave 25984 con los nuevos datos.

Cabe señalar que la clave de producto aquí es la llamada clave sustituta, que no representa un significado comercial específico, sino que solo representa la identificación única de la fila de datos en la tabla. Cuando se trata de SCD, las claves sustitutas se pueden utilizar directamente para distinguir versiones antiguas y nuevas de datos con la misma clave natural. El SKU en la imagen de arriba es una clave natural.

Este tipo de procesamiento SCD puede preservar el historial de manera eficaz y precisa y reflejar los cambios, pero tiene la desventaja de provocar una gran cantidad de datos porque se crean nuevas filas incluso si solo cambia una dimensión.

Aunque el Tipo 2 es bueno, no es tan conveniente cuando se quieren asociar valores nuevos y valores antiguos en la misma dimensión temporal. Por ejemplo, en la tabla de la sección anterior, si consulta registros posteriores al 1 de febrero de 2013, solo podrá encontrar registros con el nombre de departamento "Estrategia" y "Educación" estará bloqueado. El tipo 3 es el tipo complementario del tipo 2. En el método de procesamiento de tipo 3, no se agregarán nuevas filas, pero se agregará una nueva columna de atributo, que contiene el último valor modificado de la dimensión correspondiente. Un ejemplo del libro es el siguiente:

En la imagen de arriba se agregó una columna llamada "Nombre del departamento anterior", que contiene el último valor modificado. Esto también resuelve el problema de expansión de datos del Tipo 2, pero sólo puede guardar un historial de cambios, lo que se denomina "realidad alternativa".

Además, cabe señalar que si muchas dimensiones en la tabla de dimensiones sufren cambios similares, se agregarán muchas columnas, lo que obviamente no es confiable. Por lo tanto, este tipo se utiliza a menudo para tratar pequeñas cantidades de ECF, donde los cambios son predecibles y "a nivel de todo el sistema".

Por supuesto, también puede agregar varias filas para guardar el historial de múltiples modificaciones según las necesidades reales:

Cuando los cambios de dimensión no son tan "lentos", los primeros tres procesos son inadecuados (especialmente para tablas de dimensiones muy grandes, como millones o incluso decenas de millones de filas). Generalmente, esta dimensión ya no se llama SCD, sino que se llama "dimensión que cambia rápidamente" (RCD). Cuando la escala del RCD es relativamente pequeña, se puede utilizar el soporte tipo 2 o 3. Cuando la escala es relativamente grande, solo se puede utilizar el soporte tipo 4. El método Tipo 4 consiste en separar esas dimensiones que cambian rápidamente de la tabla de dimensiones grandes original y procesarlas por separado. Esta es una mini dimensión.

Tome el contenido del libro como ejemplo. Si algunas dimensiones demográficas en la dimensión del cliente son RCD, se dividirán en tablas de dimensiones separadas:

Entre ellas, las microdimensiones. Las dimensiones de la tabla son preferiblemente varios valores discretos con bandas, como por ejemplo:

La siguiente tabla todavía proviene de la caja de herramientas original del almacén de datos. Tenga en cuenta que además de los tipos 0 ~ 4, existen tres métodos de mezcla, a saber, los tipos 5 ~ 7.

Finalmente, les recuerdo que deben leer la versión en inglés del libro "Data Warehousing Toolbox" (Tercera edición), y nunca leer la versión en chino. La traducción al chino está llena de errores y muchos lugares son poco sólidos y resulta asfixiante para leer.

Buenas noches Namin~