Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AA5-Ev1-Validación de Técnicas de Migración y Herramientas ETCL
AA5-Ev1-Validación de Técnicas de Migración y Herramientas ETCL
SENA
Para reemplazar los sistemas heredados que no pueden mantenerse al día con los
requisitos de desempeño en evolución de la organización.
Para reducir la huella de almacenamiento migrando a un sistema que consume
menos energía y espacio. En consecuencia, reduciendo los costes operativos.
Mantener la competitividad mediante la adopción de tecnologías de vanguardia,
allanando el camino para la migración de datos.
Para preparar un plan de recuperación de desastres; Como la migración de datos
puede ayudar a crear un seguro
Para transferir datos a la nube, eliminando el costo de la infraestructura de TI en las
instalaciones.
Tipos de migración de datos
La migración de datos se puede clasificar en cuatro categorías:
Migración de base de datos
Este tipo de migración implica mover datos entre dos motores de base de datos. Sin
embargo, cuando los datos originales cambian, afecta simultáneamente el idioma o el
protocolo de los datos. El cambio se refleja también en la capa de aplicación. La migración
de la base de datos modifica los datos sin modificar el esquema.
Las circunstancias que demandan este tipo de migración incluyen:
La ejecución manual de estas tareas puede requerir mucho tiempo y recursos para grandes
conjuntos de datos. Por lo tanto, encontrar una solución que automatice estas tareas puede
hacer que el proceso de migración sea eficiente y sin errores.
4. Ordenar datos
Una vez que haya perfilado los datos en una forma de alta calidad y utilizable, la siguiente
fase es categorizarlos de acuerdo con los requisitos de migración. La categorización se
puede realizar en base al tipo de producto, ID o cualquier otro criterio. Facilita el
enrutamiento de datos a los cubos correctos.
Continuando con el ejemplo anterior, figura. 3 muestra los datos perfilados ordenados con
respecto a la identificación del producto.
Fig.3: Aplicando Transformación de Ordenación
5. Validar datos
Este paso implica revisar el proceso de ejecución. Evalúe las reglas de datos y verifique si
están funcionando de la manera en que deben hacerlo, y planifique las excepciones en su
flujo de datos. Incluso si el proceso es automatizado, es mejor mantenerlo controlado para
asegurarse de que no se encuentre con ningún desafío inesperado al implementar el
proceso.
Después de ordenar los datos, aplicaremos las reglas de calidad de los datos para
determinar los errores según las reglas definidas. En este escenario, estamos usando
reglas de calidad de datos para identificar y eliminar los registros en los que el campo
'Cantidad' tiene un valor de cero.
Fig.4: Aplicando Reglas de Calidad de Datos
6. Emigrar
Este es el paso final en el que todo encaja. Los pasos mencionados anteriormente le darán
conjuntos de datos limpios y bien organizados; todo lo que tienes que hacer es migrarlos
de un sistema a otro. Una vez que los datos se migran al destino objetivo, que puede ser
una base de datos o un repositorio de datos, como un data mart o un almacén de datos.
Luego, los empleados pueden acceder a él para impulsar el análisis de datos, optimizar los
flujos de trabajo, mejorar la seguridad de los datos y más.
En el ejemplo a continuación, los datos se migran al servidor SQL después de ser perfilados,
ordenados y verificados en busca de errores.
Decíamos que las herramientas de este tipo, deberían de proporcionar, de forma general, las
siguientes funcionalidades:
• Acceso a diferentes tecnologías, haciendo un uso efectivo del hardware, software, datos y recursos
humanos existentes.
• Proporcionar la gestión integrada del Data Warehouse y los Data Marts existente, integrando la
extracción, transformación y carga para la construcción del Data Warehouse corporativo y de los
Data Marts.
• Uso de la arquitectura de metadatos, facilitando la definición de los objetos de negocio y las reglas
de consolidación.
• Manejo de excepciones.
• Planificación, logs, interfaces a schedulers de terceros, que nos permitiran llevan una gestión de la
planificación de todos los procesos necesarios para la carga del DW.
Es hora de ampliar las definiciones y entrar un poco mas a fondo en lo que son realmente las ETL´s:
ETL son las siglas en inglés de Extraer, Transformar y Cargar (Extract, Transform and Load). Es el
proceso que permite a las organizaciones mover datos desde múltiples fuentes, reformatearlos y
limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse para analizar, o en otro
sistema operacional para apoyar un proceso de negocio.
Los procesos ETL también se pueden utilizar para la integración con sistemas
heredados (aplicaciones antiguas existentes en las organizaciones que se han de integrar con los
nuevos aplicativos, por ejemplo, ERP´s. La tecnología utilizada en dichas aplicaciones puede hacer
dificil la integración con los nuevos programas).
Extraer
La primera parte del proceso ETL consiste en extraer los datos desde los sistemas de origen. La
mayoría de los proyectos de almacenamiento de datos fusionan datos provenientes de diferentes
sistemas de origen. Cada sistema separado puede usar una organización diferente de los datos o
formatos distintos. Los formatos de las fuentes normalmente se encuentran en bases de datos
relacionales o ficheros planos, pero pueden incluir bases de datos no relacionales u
otras estructuras diferentes. La extracción convierte los datos a un formato preparado para iniciar el
proceso de transformación.
Una parte intrínseca del proceso de extracción es la de analizar los datos extraídos, de lo que resulta
un chequeo que verifica si los datos cumplen la pauta o estructura que se esperaba. De no ser así
los datos son rechazados.
Un requerimiento importante que se debe exigir a la tarea de extracción es que ésta cause un
impacto mínimo en el sistema origen. Si los datos a extraer son muchos, el sistema de origen se
podría ralentizar e incluso colapsar, provocando que éste no pueda utilizarse con normalidad para
su uso cotidiano. Por esta razón, en sistemas grandes las operaciones de extracción suelen
programarse en horarios o días donde este impacto sea nulo o mínimo.
Interfaz Gráfico herramienta ETL
Transformar
La fase de transformación aplica una serie de reglas de negocio o funciones sobre los datos
extraídos para convertirlos en datos que serán cargados. Algunas fuentes de datos requerirán alguna
pequeña manipulación de los datos. No obstante en otros casos pueden ser necesarias aplicar
algunas de las siguientes transformaciones:
Seleccionar sólo ciertas columnas para su carga (por ejemplo, que las columnas con valores nulos
no se carguen).
Traducir códigos (por ejemplo, si la fuente almacena una “H” para Hombre y “M” para Mujer pero el
destino tiene que guardar “1” para Hombre y “2” para Mujer).
Codificar valores libres (por ejemplo, convertir “Hombre” en “H” o “Sr” en “1”).
Calcular totales de múltiples filas de datos (por ejemplo, ventas totales de cada región).
Dividir una columna en varias (por ejemplo, columna “Nombre: García, Miguel”; pasar a dos
columnas “Nombre: Miguel” y “Apellido: García”).
Datos erróneos: Ejecutar políticas de tratamiento de excepciones (por ejemplo, rechazar el registro
completo, dar al campo erróneo un valor nulo o un valor centinela).
Interfaz Grafico de la herramienta ETL Kettle - Pentaho
Carga
La fase de carga es el momento en el cual los datos de la fase anterior (transformación) son cargados
en el sistema de destino. Dependiendo de los requerimientos de la organización, este proceso puede
abarcar una amplia variedad de acciones diferentes. En algunas bases de datos se sobrescribe la
información antigua con nuevos datos. Los data warehouse mantienen un historial de los registros
de manera que se pueda hacer una auditoría de los mismos y disponer de un rastro de toda la historia
de un valor a lo largo del tiempo.
Rolling: El proceso de Rolling por su parte, se aplica en los casos en que se opta por mantener varios
niveles de granularidad. Para ello se almacena información resumida a distintos niveles,
correspondientes a distintas agrupaciones de la unidad de tiempo o diferentes niveles jerárquicos en
alguna o varias de las dimensiones de la magnitud almacenada (por ejemplo, totales diarios, totales
semanales, totales mensuales, etc.).
La fase de carga interactúa directamente con la base de datos de destino. Al realizar esta operación
se aplicarán todas las restricciones y triggers (disparadores) que se hayan definido en ésta (por
ejemplo, valores únicos, integridad referencial, campos obligatorios, rangos de valores). Estas
restricciones y triggers (si están bien definidos) contribuyen a que se garantice la calidad de los datos
en el proceso ETL, y deben ser tenidos en cuenta.
Procesamiento
De datos: Consiste en dividir un único archivo secuencial en pequeños archivos de datos para
proporcionar acceso paralelo.
Estos tres tipos de paralelismo no son excluyentes, sino que pueden ser combinados para realizar
una misma operación ETL.
Una dificultad adicional es asegurar que los datos que se cargan sean relativamente consistentes.
Las múltiples bases de datos de origen tienen diferentes ciclos de actualización (algunas pueden ser
actualizadas cada pocos minutos, mientras que otras pueden tardar días o semanas). En un sistema
de ETL será necesario que se puedan detener ciertos datos hasta que todas las fuentes estén
sincronizadas. Del mismo modo, cuando un almacén de datos tiene que ser actualizado con los
contenidos en un sistema de origen, es necesario establecer puntos de sincronización y de
actualización.
Desafíos
Los procesos ETL pueden ser muy complejos. Un sistema ETL mal diseñado puede provocar
importantes problemas operativos.
En un sistema operacional el rango de valores de los datos o la calidad de éstos pueden no coincidir
con las expectativas de los diseñadores a la hora de especificarse las reglas de validación o
transformación. Es recomendable realizar un examen completo de la validez de los datos (Data
profiling) del sistema de origen durante el análisis para identificar las condiciones necesarias para
que los datos puedan ser tratados adecuadamente por las reglas de transformación especificadas.
Esto conducirá a una modificación de las reglas de validación implementadas en el proceso ETL.
Normalmente los data warehouse son alimentados de manera asíncrona desde distintas fuentes,
que sirven a propósitos muy diferentes. El proceso ETL es clave para lograr que los datos extraídos
asíncronamente de orígenes heterogéneos se integren finalmente en un entorno homogéneo.
La escalabilidad de un sistema de ETL durante su vida útil tiene que ser establecida durante el
análisis. Esto incluye la comprensión de los volúmenes de datos que tendrán que ser procesados
según los acuerdos de nivel de servicio (SLA: Service level agreement). El tiempo disponible para
realizar la extracción de los sistemas de origen podría cambiar, lo que implicaría que la misma
cantidad de datos tendría que ser procesada en menos tiempo. Algunos sistemas ETL son escalados
para procesar varios terabytes de datos para actualizar un data warehouse que puede contener
decenas de terabytes de datos. El aumento de los volúmenes de datos que pueden requerir estos
sistemas 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.
Ab Initio
Benetl
CloverETL
Pervasive
Informática PowerCenter
SmartDB Workbench
Sunopsis (Oracle)
SAS Dataflux
Sybase
Syncsort: DMExpress.
Libres
Jitterbit.
Las herramientas ETL no se tienen porque utilizar solo en entornos de construcción de un DW, sino
que pueden ser utiles para multitud de propositos, como por ejemplo:
Tareas de Bases de datos: También se utilizan para consolidar, migrar y sincronizar bases de datos
operativas.
Migración de datos entre diferentes aplicaciones por cambios de versión o cambio de aplicativos.
Sincronización entre diferentes sistemas operacionales (por ejemplo, nuestro entorno ERP y la Web
de ventas).
Consolidación de datos: sistemas con grandes volumenes de datos que son consolidades en
sistemas paralelos para mantener historicos o para procesos de borrado en los sistemas originales.
Interfases de datos con sistemas externos: envio de información a clientes, proveedores. Recepción,
proceso e integración de la información recibida.
Las características mas importantes que ha de incluir una herramienta ETL según Gartner son las
siguientes:
Capacidades de entrega de datos: habilidad para proporcionar datos a otras aplicaciones, procesos
o bases de datos en varias formas, con capacidades para programación de procesos batch, en
tiempo real o mediante lanzamiento de eventos.
Capacidades de Metadatos y Modelado de Datos: recuperación de los modelos de datos desde los
origenes de datos o aplicaciones, creación y mantenimiento de modelos de datos, mapeo de modelo
fisico a lógico, repositorio de metados abierto (con posiblidad de interactuar con otras herramientas),
sincronización de los cambios en los metadatos en los distintos componentes de la herramienta,
documentación, etc.
Capacidades de diseño y entorno de desarrollo: representación grafica de los objetos del repositorio,
modelos de datos y flujos de datos, soporte para test y debugging, capacidades para trabajo en
equipo, gestion de workflows de los procesos de desarrollo, etc.
Adaptación a las diferentes plataformas hardware y sistemas operativos existentes: Mainframes (IBM
Z/OS), AS/400, HP Tandem, Unix, Wintel, Linux, Servidores Virtualizados, etc.
Capacidades SOA.
Observamos que en el informe del año 2009, se incluye por primera vez una herramienta ETL
OpenSource, que es Talend. También se habla de Pentaho, cuya herramienta Kettle, tambien es
OpenSource. Ambas herramientas serán las que utilizemos en nuestro proyecto para la construcción
de los procesos ETL.
Interfaz Grafico de la herramienta ETL Talend
Podeis echar un vistazo al directorio EOS de productos OpenSource para ver otros productos ETL
Open, así como valoraciones de estos y casos reales de uso.
La elección de una herramienta ETL puede ser una tarea compleja que va a tener mucha repercusión
en el desarrollo posterior de un proyecto. Podeis ver la comparativa de ETL´s OpenSource vs ETL´s
Propietarias a continuación ( gracias a http://www.jonathanlevin.co.uk/). Aqui se habla de que las
herramientas OpenSource ya estan empezando a ser una alternativa real a los productos existentes
y se estan desarrollando con rapidez.
https://www.oracle.com/technetwork/es/documentation/317502-esa.pdf
https://mundobi.wordpress.com/2007/06/24/herramientas-etl-%E2%80%A6o-mundo-etl/
https://churriwifi.wordpress.com/2009/12/29/11-herramientas-etl-%C2%BFque-son-para-que-
valen-productos-mas-conocidos-etl%C2%B4s-open-source/
https://www.dataprix.com/es/blogs/respinosamilla/herramientas-etl-que-son-para-que-valen-
productos-mas-conocidos-etl-s-open-sour
https://www.benetl.net/
https://repository.unilibre.edu.co/bitstream/handle/10901/11161/PAUTAS%20PARA%20UNA%20
CORRECTA%20MIGRACION%20DE%20BASES%20DE%20DATOS%20(1).pdf?sequence=1&isAllowed
=y
http://www.oracle.com/us/corporate/pricing/price-lists/business-intelligence-price-list-
071347.pdf