Integración de datos

Introducción

En términos generales, integración de datos hace referencia al proceso de tomar datos de diversas fuentes con el objetivo de combinarlos en un único repositorio de datos. El proceso de integración de datos puede dividirse en tres grandes fases o sub-procesos: extracción, transformación y carga. A continuación se detallan el propósito y tareas en cada una de estas fases.

Extracción

El propósito es obtener datos desde una o más fuentes de datos. En un proceso de integración de datos hacia un Depósito de Datos, las fuentes de datos suelen ser, en un su gran mayoría, las bases de datos de los sistemas operacionales. La fase de extracción implica la ejecución de las siguientes tareas:

  • Obtener un perfil de los datos. Consisten es realizar consultas a los datos con el propósito de extraer indicadores acerca de su volumen y contenido; por ejemplo, para cada columna de cada tabla se pueden obtener los siguientes datos:
    • Número de valores NULOS o vacíos
    • Número de valores distintos
    • Mínimo, máximo y promedio (columnas numéricas)
    • Mínimo, máximo y longitud promedio (columnas de texto)
  • Captura de Cambios en los Datos (CDC[1]). Consiste en identificar los cambios en los datos desde la última extracción con el objetivo de limitar el volumen de datos extraídos.
  • Preparación de Datos. No siempre es posible o conveniente transformar inmediatamente los datos extraídos razón por la cual se los almacena temporalmente en un área de preparación hasta que ingresan a la fase de transformación.

Transformación

El propósito es cambiar la forma y contenidos de los datos extraídos para que pueda ser almacenados según los requerimientos establecidos en el modelo dimensional del Depósito de Datos. La fase de transformación supone usualmente realizar las siguientes tareas:

  • Validación de Datos. Verificar si los datos de origen son correctos  y posiblemente filtrar datos inválidos.
  • Limpieza de datos. Consiste en corregir datos inválidos.
  • Decodificación y renombramiento. Convertir valores codificados a valores textuales descriptivos.
  • Agregación. Cuando el nivel de detalle es mayor que el nivel transaccional, es necesario realizar agregaciones durante el proceso ETL.

Carga

El propósito es almacenar los datos en el Depósito de Datos. La fase de carga supone realizar las siguientes tareas:

  • Carga o actualización de las tablas de dimensión.
    • Generación y búsqueda de claves. Al agregar filas en las tablas de dimensión, es necesario asignar una clave sustituta; al agregar filas a las tablas de hecho es necesario buscar la clave sustituta adecuada.
  • Carga o actualización de las tablas de hechos.

En este apartado se han descrito de manera general las tareas relacionadas con el proceso ETL, una lista completa de las tareas ETL agrupadas por subsistema puede encontrase en esta referencia.

Concluimos este apartado con un gráfico tomado de “Pentaho® Kettle Solutions: Building Open Source ETL Solutions with Pentaho Data  Integration”  que muestra la arquitectura usual de los sistemas ETL:

arquitectura-etl

Evolución de las herramientas para Integración de Datos

Generación 0: Scripts mantenidos manualmente.

Scripts desarrollados en lenguajes como COBOL, RPG, Perl o PL/SQL; estos sistemas suponen:

  • Tiempos de desarrollo extensos
  • Mantenimiento costoso

Generación 1: Generadores de código

Generan el código a partir del diseño del flujo ETL. Ejemplos: Talendand Oracle WarehouseBuilder. La mayor limitación es que el número de bases de datos que soportan tienden a ser limitado además del hecho de que asumen que las fuentes de datos serán siempre bases de datos.

Generación 2. Motores de integración

La transformación de datos se ejecuta en un motor independiente de  los sistemas gestores de bases de datos, procesando de manea asíncrona cada fila que ingresa al flujo ETL; esta independencia de la BD más la posibilidad de ejecutar código hace que este tipo de herramientas sean las más versátiles y flexibles para desarrollar soluciones de integración de datos. Ejemplos: PDI, SSIS

[1] Change data capture

Comments are closed.