Realización de dimensiones que cambian lentamente (SCD tipo 2) en Databricks


Esta es una publicación colaborativa entre Databricks y Matillion. Agradecemos a David Willmer, Product Advertising and marketing en Matillion, por sus contribuciones.

A medida que más y más clientes modernizan su almacén de datos empresarial heredado y las plataformas ETL más antiguas, buscan adoptar una pila de datos en la nube moderna utilizando Databricks Lakehouse Platform y Matillion para ETL basado en GUI. La plataforma ELT visible de código bajo de Matillion facilita que cualquier persona integre datos de cualquier fuente en Almacén SQL de ladrillos de datos por lo tanto, hace que el análisis y los datos de IA estén listos para el negocio y sean más rápidos.

Este weblog le mostrará cómo crear una canalización de ETL que cargue un tipo 2 de dimensiones de cambio lento (SCD) mediante Matillion en la plataforma Databricks Lakehouse. Matillion tiene una interfaz de usuario moderna basada en navegador con funcionalidad ETL/ELT push-down. Puede integrar fácilmente su Databricks SQL almacenes o racimos con Matillion. Ahora, si se pregunta cómo conectarse a Matillion mediante Databricks, la forma más fácil de hacerlo es usar Conexión de socios, que simplifica el proceso de conexión de un almacén o clúster de SQL existente en su área de trabajo de Databricks a Matillion. Aquí están los detallados pasos.

¿Qué es una dimensión de cambio lento (SCD) tipo 2?

Un SCD Tipo 2 es una técnica común para conservar el historial en una tabla de dimensiones que se utiliza en cualquier arquitectura de modelado/almacenamiento de datos. Las filas inactivas tienen un indicador booleano como la columna ACTIVE_RECORD establecida en ‘F’ o una fecha de inicio y finalización. Todas las filas activas se muestran al devolver una consulta donde la fecha de finalización es nula o ACTIVE_RECORD no es igual a ‘F’

Tabla de dimensiones antes de los cambios de SCD2: esta tabla de almacenamiento de datos representa un escenario típico de etiquetado de registros inactivos con un "Fecha final".
Tabla de dimensiones antes de los cambios de SCD2: esta tabla de almacenamiento de datos representa un escenario típico de etiquetado de registros inactivos con una “fecha de finalización”.

Matillion ETL para Delta Lake en Databricks utiliza un enfoque de dos pasos para administrar las dimensiones de cambio lento de tipo 2. Este enfoque de dos pasos implica primero identificar los cambios en los registros entrantes y marcarlos en una tabla o vista temporal. Una vez que se marcan todos los registros entrantes, se pueden realizar acciones en la tabla de dimensiones de destino para completar la actualización.

Ahora, echemos un vistazo más de cerca a la implementación de las transformaciones de SCD de tipo 2 con Matillion, donde su objetivo es una tabla de Delta Lake y la opción informática subyacente utilizada es un Databricks SQL Warehouse.

Paso 1: Organizar los cambios de dimensión

Mientras observamos el Paso 1 a continuación, la canalización de ETL lee los datos de nuestra tabla de dimensiones de Delta Lake existente e identifica solo los registros más actuales o activos (este es el flujo de datos inferior). Al mismo tiempo, leeremos todos nuestros datos nuevos, asegurándonos de que la clave principal deseada sea única para no interrumpir el proceso de detección de cambios (este es el flujo de datos superior). Estos dos caminos luego convergen en el componente de detección de cambios.

Paso 1: Detectar cambios: esta canalización compara nuevos registros de datos con registros de datos existentes que ya están en una tabla de dimensiones de su Lakehouse.  Con el componente de detección de cambios dentro de Matillion ETL, los registros se marcan como nuevos, modificados o eliminados y se escriben en una vista intermedia.
Paso 1: Detectar cambios: esta canalización compara nuevos registros de datos con registros de datos existentes que ya están en una tabla de dimensiones de su Lakehouse. Con el componente de detección de cambios dentro de Matillion ETL, los registros se marcan como nuevos, modificados o eliminados y se escriben en una vista intermedia.

Dentro de Matillion ETL, el componente Detectar cambios es un mecanismo central para determinar las actualizaciones e inserciones de registros modificados. Compara un conjunto de datos entrantes con un conjunto de datos de destino y determina si los registros son idénticos, modificados, nuevos o eliminados mediante una lista de columnas de comparación configuradas dentro del componente. Cada registro del nuevo conjunto de datos se evalúa y se le asigna un campo indicador en la salida del componente Detectar cambios: ‘I’ para idéntico, ‘C’ para modificado, ‘N’ para nuevo y ‘D’ para eliminado.

Tabla de etapas del almacén de datos: esta tabla representa una tabla de etapas típica en un almacén de datos que llena un "Cambiar código" después de comparar los datos entrantes con una tabla de destino y determinar si los registros son idénticos, modificados, nuevos o eliminados.
Tabla de etapas del almacén de datos: esta tabla representa una tabla de etapas típica en un almacén de datos que completa un campo de “Código de cambio” después de comparar los datos entrantes con una tabla de destino y determinar si los registros son idénticos, modificados, nuevos o eliminados.

La acción remaining en el Paso 1 de este enfoque de dos pasos es agregar una fecha de carga a cada registro antes de escribir cada nuevo registro, ahora marcado con su indicador de cambio, en una tabla Delta Lake de dimensión temporal. Esto se convertirá en la entrada del Paso 2.

Paso 2: Finalización de los cambios de dimensión

A medida que avanzamos en el Paso 2, comenzamos leyendo la tabla de dimensiones intermedias o temporales en nuestra casa del lago. Usaremos el campo indicador que se derivó del componente Detectar cambios y crearemos 3 rutas separadas usando un componente de filtro easy. No haremos nada para los registros Idénticos (identificados con una ‘I’) ya que no son necesarios cambios, por lo que estos registros se filtran. Para ser explícitos en nuestra explicación dentro de este weblog, hemos dejado este camino. Aún así, sería innecesario para propósitos prácticos a menos que se necesitara hacer algo específico con estos registros.

Paso 2: Escribir en la tabla de dimensiones: leyendo la tabla intermedia, Matillion filtra los registros en función de su indicador de cambio respectivo y toma las medidas adecuadas para escribir los nuevos datos en la tabla de dimensiones.
Paso 2: Escribir en la tabla de dimensiones: leyendo la tabla intermedia, Matillion filtra los registros en función de su indicador de cambio respectivo y toma las medidas adecuadas para escribir los nuevos datos en la tabla de dimensiones.

La ruta siguiente, para registros nuevos o modificados, generará un registro nuevo y precise para cada registro nuevo o modificado identificado. El Componente de filtro procesa solo aquellos registros con una ‘N’ (para Nuevo) o ‘C’ (para Modificado) como los identifica el componente Detectar cambios. El componente de cambio de nombre actúa como un mapeador de columnas para mapear los datos modificados de los campos de los nuevos registros (identificados por el prefijo compare_) a los nombres de columna reales definidos por la tabla de dimensiones de destino de Delta Lake. Finalmente, el componente “Nuevos campos” es un componente de calculadora configurado para establecer la marca de tiempo de vencimiento de los registros activos en “infinito”, identificándolos así como el registro más precise.

Componente de cambio de nombre: el componente de cambio de nombre actúa como un asignador de columnas para asignar los datos modificados de los nuevos campos de registros (identificados por el prefijo compare_) a los nombres de columna reales de la tabla de dimensiones de destino dentro de Lakehouse.
Componente de cambio de nombre: el componente de cambio de nombre actúa como un asignador de columnas para asignar los datos modificados de los nuevos campos de registros (identificados por el prefijo compare_) a los nombres de columna reales de la tabla de dimensiones de destino dentro de Lakehouse.

La ruta remaining es cerrar o hacer caducar los registros existentes identificados como modificados o eliminados. Recuerde, en SCD2, los cambios se agregan como un nuevo registro (como se describe en la ruta Nuevo o Modificado anterior) y, por lo tanto, cada registro anterior debe marcarse como vencido o inactivo. Del mismo modo, los registros eliminados necesitan una fecha de caducidad para que ya no se identifiquen como activos. Aquí, la ruta Modificado o Eliminado procesa cada ‘C’ (para Modificado) o ‘D’ (para Eliminado) asignando las columnas apropiadas que identifican de manera única el registro para el vencimiento. Una vez identificado, la fecha de vencimiento se establece en la marca de tiempo precise y la actualización se realiza dentro de la tabla de dimensiones de destino de Delta Lake.

Tabla de dimensiones después de las actualizaciones de SCD2: esta tabla representa la tabla de dimensiones final del almacén de datos una vez que se han aplicado todas las transacciones de la tabla de etapas.
Tabla de dimensiones después de las actualizaciones de SCD2: esta tabla representa la tabla de dimensiones remaining del almacén de datos una vez que se han aplicado todas las transacciones de la tabla de etapas.

Conclusión

Le mostramos cómo implementar dimensiones que cambian lentamente en la plataforma Databricks Lakehouse mediante la integración de datos de código bajo/sin código de Matillion. Es una excelente opción para todas aquellas organizaciones que prefieren herramientas ETL basadas en GUI, como Matillion, para implementar y mantener canalizaciones de ingeniería de datos, ciencia de datos y aprendizaje automático en la nube. Realmente desbloquea el poder de Delta Lake en Databricks y mejora los datos productividadbrindándole el rendimiento, la velocidad y la escalabilidad para potenciar su análisis de datos en la nube.

Si desea obtener más información sobre la integración de Matillion y Databricks, no dude en consultar la documentación detallada aquí.

Pruebe Databricks free of charge durante 14 días.

Related Articles

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

spot_img

Stay in touch!

Follow our Instagram