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’

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.

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.

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.

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.

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.

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í.