Una cuestión didáctica (2 de 2)

El otro día hablabamos de un problema que, a lo largo de la vida de los sistemas de una organización, aparece tarde o temprano: una migración de datos. Queríamos centrarnos en el qué y no el cómo. Y por eso empezamos a hablar de herramientas ETL.

¿Cuál es nuestro problema?

Podemos traducir nuestro problema en la creación de un mapping: para cada dato origen se gestiona su destino y se determina y se solucionan los conflictos. Cabe comentar que deviene crucial realizar el proceso correctamente y de una manera que afecte lo menos posible a toda la empresa. No nos quedamos cortos en decir que el éxito de la futura aplicación depende de la migración. Si este proceso se realiza de forma errónea, todo proceso futuro que se base en el anterior está condenado al fracaso.

Fijémonos que nuestro problema apunta directamente a una de las fases del proceso de construcción de un data warehouse. El proceso de ETL es el aspecto más difícil y largo en un proyecto DW. De manera que existen probadas herramientas para crear, gestionar y mantener las reglas de extracción de información de diversas fuentes. Nuestras maneras, entonces, apuntan a echar un vistazo al mercado.

¿Que productos existen?

El mercado de herramientas ETL presenta unos marcados actores que se presentan de diferentes formas:

  • Algunos ofrecen soluciones que, en general y desmarcando contadas ocasiones, integran una herramienta para migrar los datos a un cierto sistema de información, pero con posibilidades de usarse en otros contextos.
  • Otros, los pocos y cada vez menos frecuentes, ofrecen una herramienta generalista para realizar un proceso ETL simplemente (desmarcándose directamente del marco en que esto suceda).

Actualmente, como en muchos otros mercados, existen soluciones open source y otras que no.

Enumeramos (en el sentido más estricto de la palabra) algunas soluciones no open source (no pretende ser una lista exhaustiva):

Enumeramos y comentamos brevemente algunas soluciones open source (de nuevo, no pretende ser una solución exhaustiva):

  • cloveretl: es una herramienta que se puede integrar con eclipse y que permite: trabajar con cualquier base de datos a través de JDBC, múltiples transformaciones simultaneas, pipeline-parallelism, transformaciones gráficas a partir de xml, lectura de los metadatos desde xml,…
  • talend: proporcionan una herramienta basada en Eclipse Rich Client Platform (RCP) que incluye componentes para modelizar tanto reglas de negocio como reglas ETL cuyo comportamiento interno se realiza mendiante scripts en perl y java.
  • octopus: es una herramienta ETL java que permite realizar transformaciones definidas en ficheros xml y respecto cualquier base de datos para la que exista JBDC, pero también desde ficheros xml y csv. Se proporciona un loadjob para construir los procesos y admite soporte para Ant y JUnit.
  • ketl: es una herramienta java para la extracción, transformación y carga de datos desarrollada por Kinetic Networks. Entre sus características incluye alertas, gestión de tareas (lo que en el contexto se denominan jobs y están definidos a través de xml) y ejecución de múltiples jobs.
  • pentaho data integration (aún conocido como kettle): es una herramienta desarrollada en java que se integra con la aplicación BI de pentaho. Entre sus características destacamos: encarado a lo qué se debe hacer y no al cómo se debe realizar, interficie gráfica de uso, entorno encarado al diseño de workflows para la migración, soporte para la gran mayoría de bases de datos del mercado y para carga desde ficheros excel, xml o planos, inclusión de un repositorio de transformaciones y jobs, gestión de monitores, capacidad de extensión a través de plugins,…
  • pequel etl: es una herramienta que proporciona una interficie que genera y ejecuta código perl/C para procesar y transformar datos.
  • opendigger: es un complilador para xETL (que es un específico para leer, manipular y escribir datos en cualquier formato y en cualquier base de datos y cuya última actualización data de febrero 2005) que permite realizar las operaciones de extraer, transformar y cargar.
  • jetstream: otra herramienta java cuya finalidad autodescriben como Java Extraction Transformation Service for Transmitting Records & Exchanging Application Metadata.
  • cplusql: permite la extracción y transformación de datos de bases de datos y ficheros de texto para la carga en data warehouses.

Y ahora la pregunta: si tuvierais de elegir una solución, ¿por cuál de ellas os decantaríais después de un análisis de cada una de ellas? En un futuro post, mi respuesta. Aunque si fueramos muy precisos deberíamos dedicar uno o más post a cada una de ellas.

Fuente : manageability