Sin categoría

¿Qué es ETL?

Transmisión de ETL pipeline

ETL es la abreviatura de Extraer, Transformar y Cargar. Los ingenieros y profesionales de datos suelen utilizar este término para describir el proceso de varios pasos que consiste en convertir los datos sin procesar en un formato que pueda utilizarse para realizar valiosos análisis de datos que contribuyan a mejorar la prise de décision empresariales.

ETL Significado

La mejor forma de describir el significado de ETL es tomar cada letra y hablar de su función en el proceso ETL.

La etapa de extracción

La primera fase del proceso ETL consiste en extraer datos operativos en bruto de muchos sistemas fuente. Si el jeu de données que está cargando no necesita actualizarse más de una vez al día y no es demasiado grande, puede extraer una copia diaria y sobrescribir la tabla en la base de datos de destino. Las bases de datos relacionales disponen de una función SQL llamada TRUNCATE TABLE, que pone a cero la marca de agua más alta, lo que tiene el efecto de vaciar instantáneamente la tabla. Esto es más eficiente que ejecutar una operación DELETE de SQL, que debe procesar cada fila y consumir una tonelada de ciclos processeur . Este enfoque se conoce como extracción completa.

Si los datos de origen deben limpiarse o transformarse o son muy voluminosos, es mejor extraer sólo los datos más recientes, limpiarlos y cargarlos. Este enfoque se conoce como extracción parcial.

La extracción más sofisticada se conoce como extracción parcial con notificación de actualización. Este enfoque se utiliza cuando la base de datos de destino necesita actualizaciones casi en tiempo real de los cambios en los datos de origen. Por ejemplo, si se trata de un sistema de negociación de acciones, el sistema de origen puede enviar los cambios a varios sistemas de destino suscritos. Supongamos que la aplicación de origen es una red de telefonía móvil que rastrea miles de transacciones de llamadas por segundo. En ese caso, la extracción puede realizarse en microlotes que sondean los cambios en el sistema de origen cada 5 segundos aproximadamente y aplican esos cambios al sistema de destino casi en tiempo real.

Muchos sistemas de bases de datos admiten disparadores que se activan cuando se produce un evento, como una operación de inserción, eliminación o actualización. Estos disparadores pueden programarse para actualizar un registro de cambios del que puedan extraer datos los sistemas posteriores. El uso de un sistema de mensajería como Amazon SNS permite enviar notificaciones directamente a los sistemas de destino para informarles de las actualizaciones del sistema de origen. Este tipo de relación asíncrona entre los sistemas de datos de origen y de destino garantiza que los sistemas de origen operativos nunca se retrasen porque un sistema de destino no pueda acomodar la actualización por cualquier motivo.

Las relaciones entre los sistemas de origen y destino pueden ser una simple conexión punto a punto, sencilla de configurar y mantener. Con el tiempo, las empresas crean cientos de estas conexiones punto a punto, que se convierten en una carga demasiado pesada de mantener y administrar. Llegados a este punto, una herramienta ETL vendida puede consolidar la gestión de todas las conexiones, lo que las convierte en una gran inversión. Un aspecto muy importante de la extracción es recordar la procedencia de los datos, por lo que los sistemas pueden catalogarlos para mantener y auditar el rastro de la procedencia de los datos. La procedencia de los datos (también denominada "linaje de los datos") es métadonnées que se empareja con los registros que detallan el origen, los cambios y los detalles que respaldan los orígenes de las fuentes de datos. Rastrear las fuentes de este modo ayuda a controlar la duplicación y a saber si los datos pueden ser fidedignos o fiables.

La extracción de datos puede ser tan sencilla como importar una versión CSV de una hoja de cálculo o tan compleja como utilizar una API de servicio web. La mayoría de las aplicaciones empresariales proporcionan API para hacer posible la extracción mediante una aplicación o una herramienta ETL. El formato de los datos de origen a menudo dicta cómo se pueden extraer. Un flujo JSON, por ejemplo, requiere el uso de una API de servicios web. Un archivo plano puede leerse secuencialmente. Una fuente de base de datos suele tener una utilidad de exportación para descargar los datos en un archivo plano. Por ejemplo, en un sistema mainframe, un jeu de données VSAM al que se suele acceder por clave

El paso Transformar

Los datos brutos de una fuente operativa suelen necesitar cierta manipulación y limpieza para que sean aptos para el consumo general. La transformación de los datos suele realizarse en una base de datos intermedia o de preparación. Los datos brutos de origen pueden contener datos sobrantes que hay que filtrar. Pueden tener lagunas que pueden rellenarse con valores por defecto o datos interpolados. Los datos duplicados pueden agregarse o eliminarse en función del uso previsto en la base de datos de destino. Si se extraen datos relacionados de varias fuentes, pueden fusionarse para crear un único registro. Los valores de los datos pueden normalizarse. Por ejemplo, las distintas fuentes de datos de clientes pueden registrarlos de forma diferente. Un sistema puede escribir el estado como "Nueva York", y otros utilizan una abreviatura como "NY". La normalización de la abreviatura puede realizarse durante la transformación de los datos. La transformación puede incluir operaciones de calidad de los datos, como la verificación de los valores en varias fuentes antes de transmitirlos como valores de confianza.

Ilustración conceptual de una nube de datos que representa el proceso de ETL

El paso de carga

La carga de datos en el sistema de destino es el último paso del proceso ETL. La carga de datos puede realizarse mediante una utilidad de carga masiva, streaming de datos, mensajería asíncrona o un programa personalizado. Los datos existentes pueden sobrescribirse por completo, aumentarse o actualizarse parcialmente con valores nuevos. La frecuencia de actualización puede realizarse por lotes, como por la noche, periódicamente en microlotes o continuamente en un flujo de datos.

Historia de ETL

En los años 70, las bases de datos se cargaban con códigos personalizados o las introducían los empleados. Los volúmenes eran bajos en comparación con los estándares actuales, y las tasas de error podían ser elevadas debido a errores humanos. Las bases de datos se utilizaban principalmente para el funcionamiento de los sistemas operativos.

En la década de 1980, los miniordenadores y los ordenadores personales podían utilizarse para crear archivos planos que se cargaban en sistemas analíticos mediante programas de carga por lotes. La aparición de las hojas de cálculo para el análisis de datos dio lugar a la estandarización de los datos en formatos delimitados, como los archivos CSV, para compartir datos entre ordenadores. Las redes eran lentas, por lo que los datos se transportaban a menudo en cintas magnéticas y disquetes. El análisis de datos se realizaba utilizando paquetes estadísticos como X11 y Box Jenkins para el análisis de regresión multivariante, y los datos se comunicaban utilizando lenguajes escritos en código 3GL como FORTRAN.

En los años 90 surgió el almacén de datos, que trajo consigo el proceso ETL. Los sistemas de apoyo a la toma de decisiones se construyeron sobre bases de datos que funcionaban con distintas versiones de Unix y Linux. Las funciones de almacén de datos de la empresa o centralizadas podían distribuirse a sistemas más localizados con los mercados de datos específicos de la unidad de negocio o región. La integración de datos solía ser punto a punto.

En la década de 2000, los proveedores de herramientas de integración de datos estandarizaron el ETL para ayudar a las organizaciones a escalar el movimiento y transporte de datos entre sistemas y ofrecieron interfaces gráficas de usuario (GUI) de escritorio para crear y gestionar procesos ETL.

En la década de 2010, la transferencia de datos basada en Internet y las aplicaciones SaaS se hicieron muy populares, al igual que las ofertas de publicación-suscripción a escala de Internet en plataformas de nube pública. El nivel de sofisticación de los modelos ETL y de integración de datos creció con la llegada de los modelos de datos basados en hub-and-spoke.

Hoy en día, el ETL es omnipresente, y el mercado está consolidando las funciones de ETL y de gestión de bases de datos en servicios integrados basados en la nube.

¿Cómo funciona la ETL?

Podemos utilizar una aplicación Customer360 como ejemplo para ilustrar cómo funciona ETL. Los gestores de cuentas y los comerciales utilizan la base de datos de destino para vender servicios a nuevos clientes, realizar ventas cruzadas de nuevos servicios a clientes existentes y renovar las suscripciones existentes.

Antes de llamar al cliente o posible cliente, el equipo tiene que saber todo lo posible sobre él para demostrar que le importa lo suficiente haciendo una investigación avanzada. El sistema de objetivos debe mostrar cuánto tiempo llevan siendo clientes, cuánto han gastado y qué servicios tienen actualmente y en el pasado. Es fundamental conocer las medidas de satisfacción, como las puntuaciones de las encuestas y los casos de asistencia abiertos, ya que es difícil vender a clientes descontentos.

Los datos de origen deben proceder de sistemas como Salesforce, ServiceNow y SAP. Los datos de Salesforce deben extraerse exportando un archivo CSV basado en un informe específico del cliente. ServiceNow proporciona una API REST que una herramienta ETL puede interrogar desde un script de comandos. SAP puede crear un archivo CSV que puede importarse al repositorio de una herramienta de BI, que suele ser una edición Embarqué de SQL Server. Todas las fuentes de datos extraídas por el proceso ETL pueden utilizarse para crear una tableau de bord clientes 360 para los equipos de ventas o de gestión de cuentas.

¿Por qué es importante la ETL?

El número de fuentes y tipos de datos empresariales aumenta cada año, al igual que el número de conexiones necesarias a estos sistemas. El coste de administrar y mantener conexiones puntuales se convierte rápidamente en prohibitivo. Es esencial disponer de una herramienta que permita establecer conexiones plug-and-play con cualquier fuente de datos y que gestione las transformaciones de datos y las operaciones de carga. Una vez que una integración está en marcha, es vital que pueda programar flujos de datos con buena visibilidad. Sin un proceso ETL formal, una organización dedicaría todo su tiempo y presupuesto disponibles a mantener las conexiones en funcionamiento en lugar de a nuevos proyectos que aumenten los ingresos de la empresa.

Hombre trajeado dibujando un gráfico de barras para ilustrar qué es ETL y por qué es importante

¿Cuál es la diferencia entre ETL y ELT?

La noción de Extraer, Cargar, Transformar o ELT surgió más recientemente que el ETL tradicional. Se diferencian principalmente en dos cosas:

  • ETL carga datos transformados o limpios en el almacén de datos de destino. ELT, por su parte, transforma los datos brutos en el almacén de datos.
  • ETL utiliza un almacén de datos intermedio y un servidor para transformar los datos. ELT realiza transformaciones de datos dentro del almacén de datos de destino.

ETL puede considerarse más engorroso, ya que utiliza más servidores y almacenes de datos. Esto hace que ELT parezca un pipeline de données más ágil. La carga y descarga de datos puede ser lenta, por lo que realizar la transformación en el mismo servidor puede ser más rápido.

Si el almacén de datos de destino necesita datos personales clave depurados, entonces hacer el filtrado y en un sistema de puesta en escena hace que el ETL sea atractivo.

Cómo se utiliza ETL

El proceso ETL puede gestionarse con distintos niveles de sofisticación:

  • El nivel básico consiste simplemente en construir una conexión punto a punto entre cada sistema de origen y destino. Este enfoque no se adapta bien, es engorroso de mantener e inflexible.
  • Centralizar la gestión de ETL es más escalable, ya que proporciona un único lugar donde buscar y utiliza las mejores prácticas para crear nuevas integraciones.
  • L'approche avancée consiste à utiliser une solution d'intégration des données vendedante qui a la notion d'bus ou hub d'intégration qui maintient métadonnées sur les sources de données pour se conformer et échanger aux besoins changants de l'organisation.

¿Qué es un ETL Pipeline?

Una canalización ETL comprende la cadena de procesos utilizados para llevar los datos de las fuentes brutas al almacén de datos de destino. Una canalización puede ejecutarse como un flujo por lotes, microlotes o en tiempo real; cambia a medida que se producen en el sistema fuente.

Retos de ETL

ETL se enfrenta a muchos retos, siendo la complejidad el principal. Muchos flujos ETL contienen múltiples pasos que son difíciles de probar y mantener porque soportan sistemas aún más complejos. Una empresa puede tener cientos de flujos ETL que deben supervisarse, administrarse y mantenerse. Los sistemas informáticos no son estáticos. Necesitan continuos parches de software en la pila tecnológica que da soporte a aplicaciones que se quedan obsoletas rápidamente y deben actualizarse o migrarse para mantener la estabilidad. Dado que ETL abarca múltiples sistemas, su complejidad se agrava.

El volumen y la diversidad de las fuentes de datos que conecta una empresa son cada vez mayores. Las fuentes pueden contener datos estructurados y semiestructurados, fuentes en tiempo real, archivos planos, CSV, buckets de S3 y fuentes de streaming. El Internet de las Cosas (IoT), los registros de visitas a sitios web, el sentimiento de las redes sociales y el vídeo están creando nuevas clases de contenido para extraer información.

Los almacenes de datos recopilan datos de origen de sistemas de producción que deben estar altamente disponibles, por lo que ofrecen unas ventanas de mantenimiento inclusivas para las pruebas del sistema.

Los flujos ETL pueden atravesar múltiples silos empresariales, lo que dificulta la comprensión del flujo adecuado de información empresarial en todas las unidades de negocio. Los procesos ETL complejos pueden volverse poco fiables o incluso perder datos. Los datos pueden atascarse porque un formato o valor de datos provoque registros de excepción en los registros de errores. Todos estos registros deben supervisarse, ya que pueden dar lugar a resultados inesperados en el almacén de datos de destino.

Conectar sistemas dispares que se diseñaron como monolitos puede provocar efectos secundarios en los datos posteriores a medida que se realizan cambios en los sistemas individuales.

Herramientas ETL de Actian

Existe una gran variedad de herramientas ETL. Algunas se concibieron para centrarse únicamente en resolver retos de ETL; muchas herramientas, como Actian DataConnect, se dirigen a un mercado de integración de datos más amplio.

DataFlow de Actian está diseñado para funcionar como flujos paralelos, lo que mejora enormemente el rendimiento de las operaciones ETL, como los filtros y las transformaciones de datos. El constructor de expresiones de DataFlow le ayuda a construir expresiones para Derivar campos, Filtrar filas, Analizador de calidad de datos, Filtrar filas existentes y Unir nodos. Este cuadro de diálogo proporciona una lista de los campos, operadores y funciones disponibles que puede utilizar para construir expresiones.

En raras ocasiones, las bases de datos están diseñadas para soportar la portabilidad de datos. Por ejemplo, el formato de archivo de la base de datos Actian Zen es el mismo en Unix y Windows, lo que facilita el paso de extracción, especialmente cuando se trata de cientos de conjuntos de datos de registro de IoT.

Actian Data Connect es un ejemplo de solución ETL integral. Actian DataConnect se puede utilizar para diseñar y gestionar integraciones desplegadas en la nube, on-prem o entornos híbridos. DataConnect admite un amplio conjunto de tipos de datos y se adapta a grandes volúmenes de datos. Una interfaz de usuario de escritorio permite a los usuarios crear o modificar visualmente mapas de integración, artefactos, reglas y programas de trabajo, sin codificación ni secuencias de comandos. Se hace hincapié en la reutilización y la adaptabilidad para que las empresas puedan integrar de forma rentable diversos datos y aplicaciones.

Actian X ayuda a las empresas con ETL evitando los esfuerzos de desarrollo de código personalizado para satisfacer un único requisito empresarial. A medida que crecen los requisitos de integración, empiezan a surgir problemas con el código personalizado: incapacidad de reutilización, dificultad de mantenimiento debido a la escasa o nula documentación y a que el desarrollador original ya no está disponible. DataConnect para Actian X permite un enfoque organizado para añadir funciones de integración de datos a las aplicaciones existentes de forma incremental.

Actian Data Platform es un almacén de datos con capacidades de integración nativas incorporadas. Actian Data Platform tiene cargadores directos para extraer datos masivos de fuentes de datos populares como S3, ADLS y Hadoop. Actian Data Platform también incluye más de 200 conectores y plantillas para obtener y mover datos fácilmente desde aplicaciones SaaS a través de ODBC, JDBC, .Net y Python.

Buenas prácticas

Los siguientes consejos provienen de la documentación de Actian DataConnect sobre las mejores prácticas para la integración de datos, que se aplican igualmente al subconjunto ETL:

Arquitectar la solución - Al iniciar un nuevo proyecto de integración, identifique primero los problemas de negocio para los que necesita aportar soluciones. Conforme a la metodología ágil, cree el documento de requisitos, pero invierta sólo el tiempo necesario para que el equipo comprenda los objetivos y los resultados requeridos. Asegúrese de actualizar este documento de requisitos a medida que avance.

Diseño para la reutilización - Hay varias formas de crear integraciones organizadas y fáciles de entender. Aporta más claridad entre los miembros del equipo al proporcionar patrones familiares y reconocibles a medida que aumenta el tamaño del proyecto o el número de proyectos. Durante la fase de diseño, establezca espacios de trabajo colaborativos, utilice convenciones de nomenclatura, asigne procesos de negocio a los flujos de datos, cree plantillas y reutilice conexiones a través de canalizaciones de datos ETL.

La creación de plantillas también es beneficiosa, ya que proporciona un lugar para documentar visualmente los pasos de ETL.

Entre las técnicas más comunes que deben tenerse en cuenta se encuentran la reutilización de scripts mediante el uso de parámetros, el uso de constantes, el paralelismo siempre que sea posible y la validación de datos. Además, hay que tener en cuenta las zonas horarias y la localización.

Es importante probar los procesos ETL utilizando datos de muestra durante el desarrollo y, lo que es aún más importante, realizar una prueba del sistema en paralelo al sistema existente hasta que esté seguro de que puede cambiar al nuevo proceso.

Durante la producción, utilice un gestor de registros para controlar las excepciones, de modo que pueda detectar cualquier efecto secundario no intencionado de los cambios del sistema en su canalización ETL.

Visite el sitio web de Actian para obtener más información sobre nuestra completa gama de productos y soluciones de datos.