¿Qué Software es apto para su empresa?

Acceda a nuestros evaluadores

Al abordar un proyecto de Business Intelligence (BI) es importante la correcta valoración de la herramienta ETL (Extract, Transform and Load) que se va a utilizar para implementar los procesos de abastecimiento del Datamart, Datawarehouse o estructura de almacenamiento en base a la cual posteriormente se explotarán los datos. Se trata de una pieza fundamental para el diseño, construcción y posterior evolución del sistema BI.

ETL son las siglas en inglés de Extraer, Transformar y Cargar (Extract, Transform and Load). En base a estos tres pasos básicos en el diseño de los procesos, se va a proponer aspectos a considerar en la selección de una herramienta de este tipo. Posteriormente se verán las cuestiones relativas a su explotación.

Herramienta ETL

Diseño de los procesos

Extracción

El primer paso es la extracción de los datos desde los sistemas de origen que pueden ser múltiples y con múltiples formatos. Es importante en esta fase una correcta validación de los datos de origen y una homogeneización de los mismos. Es primordial considerar el volumen que se va a tratar y realizar este paso sin causar impacto en los sistemas de origen (procesos batch). Es decir, se van a considerar en este paso tanto la extracción, como la validación de los datos leídos.

En lo que respecta a esta etapa, una herramienta ETL es conveniente que cumpla los siguientes aspectos:

  • Conectividad: capacidad para mapear múltiples orígenes como diferentes SGDB (del inglés Database management system- Sistema de Gestión de Base de Datos) diferentes tipos de modelos (relacionales, no relacionales), tipos de ficheros y formatos (host, XML, Excel, etc…), tipos de sistemas origen (ERP’s, SCM, sistemas propios), formatos de mensajes estándar (ej. SWIFT), colas de mensajería, etc…
  • Facilidades para el análisis y mapeos de los formatos o modelos de datos origen.
  • Admitir múltiples frecuencias de actualización. Las múltiples fuentes de datos de origen tienen diferentes ciclos de recepción y de actualización. La frecuencia de recepción puede cambiar de una a otra, así como las necesidades de actualización. Importante, la capacidad de incluir puntos de control entre las fuentes en los que garanticemos su sincronización.
  • Capacidad de incorporar datos de formatos no estructurados (documentos ofimáticos, e-mails, websites, logs, etc). El campo de los datos no estructurados es inmenso y en plena evolución, es complicado de evaluar.
  • Gestión de las variaciones técnicas: nulos, valores únicos, integridad referencial, campos obligatorios, rangos de valores, etc…y de las validaciones de negocio: reglas para comprobar las consistencia de los datos basándonos en los requerimientos de negocio.
  • Gestión de errores. Detección de los mismos y aplicación de acciones.
  • En caso de tratarse de una herramienta que desde la metadata genera código, ver la posibilidad de realizar ingeniería inversa: del código a la metadata.

Transformación

La fase de transformación consiste en realizar pasos de transformación o creación de nuevos datos en base a los recibidos y aplicando las reglas de negocio particulares de cada sistema. Existen pasos comunes a casi todos los procesos de transformación, tales como: selección de columnas a tratar, transformación de codificaciones (columnas codificadas de forma diferente en sistema origen respecto al sistema destino), calcular nuevas columnas en base a las columnas recibidas, realizar agregaciones, cruces de datos entre diferentes fuentes, etc…

  • Componentes predefinidos que incorpora la herramienta para realizar diferentes tipos de transformaciones muy extendidas (filtrados, cruces, mapeos, etc..)
  • Soporte para test y debugging que facilite el seguimiento de las transformaciones del proceso.
  • Posibilidades de incorporar código externo (no generado por la herramienta).
  • Posibilidad de crear procedimientos propios y utilizarlos otros procesos (reutilización de código/procesos).
  • Posibilidades para optimizar los proceso de tratamientos de datos voluminosos o costosos ante problemas de rendimiento.
  • Trazabilidad del dato. Disponer de un rastro de todas las transformaciones de un valor a lo largo del proceso.
  • En el caso ideal, metadata consultable por el usuario, para que pueda realizar seguimiento en caso de detectar datos correctamente cargados, pero incoherentes de cara a negocio.

Carga

Esta última etapa, consiste en el volcado de los datos ya leídos, validados y tratados en la estructura analítica para su posterior explotación.

  • Considerar diferentes tipos de tablas destino, en general objetos BBDD (Base de datos orientada objetos) de almacenamiento.
  • Considerar diferentes tipos de carga: borrado y volcado completo, carga incremental, etc…
  • Creación de procesos de agregación. Considerar diferentes niveles de agregación y organización de los datos (cubos, BBDD multidimensional).
  • Volcados de datos que consideren diferentes niveles de agregación y organización de los datos en las tablas destino (cubos, BBDD multidimensional).
  • En esta etapa es igualmente importante el rendimiento: Procesamiento de volcados en paralelo para optimizar tiempos de volcado.

Una vez analizados los aspectos relevantes en el diseño de los procesos, se revisarán los aspectos a considerar en la explotación y mantenimiento y evolución de la herramienta.

Explotación y mantenimiento de la herramienta

  • Adaptación a las diferentes plataformas hardware y sistemas operativos existentes.
  • Facilidad de uso. Interfaz intuitiva. Sencilla representación grafica de los objetos del repositorio, modelos de datos y flujos de datos.
  • Posibilidad de realizar análisis de impacto. Ver las implicaciones que un cambio en el modelo de datos o en los procesos tiene en todo el proyecto.
  • Versionado de código. Control de cambios. Gestión del trabajo en grupo.
  • Posibilidades de documentación.
  • Rapidez de consulta y actualización de la metadata o posibilidades de optimizarla (índices).
  • Posibilidades para planificar jobs: planificaciones batch, ejecuciones basadas en eventos, disparadores, etc…
  • Gestión de la cadena de ejecución. Dependencias entre procesos. Re arranque de jobs.
  • Sistema de logs. Logs detallados de ejecución/errores y recolección de estadísticas de ejecución (logs de resumen de cargas: fecha carga, registros cargados, registros erróneos, etc..).
  • Herramientas para monitorizar procesos y evaluar el rendimiento de los jobs (resource analyzer).
  • Compatibilidad con CWM (Comun Warehouse Metamodel). Capacidad para exportar o importar metadatos a otras herramientas ETL.
  • Actualización continua: El aumento de los volúmenes de datos pueden hacer que los lotes que se procesaban a diario pasen a procesarse en micro-lotes (varios al día) o incluso a la integración con colas de mensajes o a la captura de datos modificados (CDC: Change Data Capture) en tiempo real para una transformación y actualización continua.
  • Integración con el resto de componentes de la plataforma analítica, con el resto de los componentes de la plataforma de integración de datos (data profiling, calidad de datos) y con los componentes más orientados a explotación, análisis y presentación (capa reporting, dashboards, minería de datos, etc..).
  • Capacidad de adaptación a estándares que permitan el fácil intercambio de datos (ejemplo SOA).
  • Capacidad de interoperabilidad con otras herramientas (ej. Vía API).
  • Cuestiones de seguridad propias de cualquier herramienta.
  • Como es lógico, este breve compendio, trata aspectos generales que posteriormente deberán ser complementados con la problemática particular de cada sistema, infraestructura tecnológica, requerimientos de negocio y necesidades de información.

Por Juan Vidal
www.dataprix.com

 

¿Qué Software es apto para su empresa?

Acceda a nuestros evaluadores