ETL significa extracción, transformación y carga, y describe el proceso de tomar datos de los sistemas de origen, convertirlos a una estructura coherente y cargarlos en un destino, como un almacén de datos. Es la base del análisis de datos, y su fiabilidad determina si los informes generados a partir de él son confiables.
Cada etapa presenta dificultades distintas. La extracción debe obtener datos de sistemas que no fueron diseñados para ser consultados externamente, gestionar los límites de velocidad de la API, la detección de cambios incrementales y fuentes que no ofrecen una forma fiable de identificar los cambios. La transformación debe conciliar formatos inconsistentes, identificadores diferentes, definiciones contradictorias y valores faltantes. La carga debe gestionar el volumen, mantener el historial y procesar los registros que llegan tarde o fuera de orden.
La variante ELT invierte las dos últimas etapas, cargando los datos sin procesar en el destino y transformándolos allí. Esto se ha vuelto común porque las plataformas de almacenamiento modernas cuentan con la capacidad de procesamiento suficiente para que la transformación in situ sea eficiente, y porque conservar los datos sin procesar permite revisar y volver a aplicar las transformaciones sin necesidad de extraerlas nuevamente de las fuentes. Además, esto significa que los errores en la lógica de transformación son recuperables en lugar de permanentes.
El procesamiento incremental es una necesidad práctica que complica la mayoría de las implementaciones. Reprocesar todos los datos históricos en cada ejecución es sencillo, pero se vuelve insostenible a medida que aumenta el volumen de datos; por lo tanto, las canalizaciones deben identificar qué ha cambiado desde la última ejecución. Las fuentes sin marcas de tiempo de cambio fiables, los registros que se actualizan retroactivamente y las eliminaciones que no dejan rastro hacen que esto sea más difícil de lo que parece, y una lógica incremental incorrecta produce datos incompletos sin previo aviso.
La gestión de fallos determina si una canalización es apta para producción. Las canalizaciones fallan con frecuencia debido a cambios en los esquemas de los sistemas de origen, la caducidad de las credenciales, la indisponibilidad de los servicios ascendentes o la llegada de datos inesperados. Las propiedades clave son que los fallos se detecten de inmediato, que las ejecuciones parciales no dejen el destino en un estado inconsistente, que las reejecuciones produzcan el mismo resultado en lugar de duplicar registros, y que se notifique a alguien en lugar de que el fallo se descubra cuando un informe parezca erróneo.
La validación de la calidad de los datos debe realizarse dentro del proceso, no después. Comprobar el número de filas con respecto a las expectativas, verificar que los campos clave estén completos, confirmar que los valores se encuentren dentro de rangos plausibles y comprobar la coherencia referencial permite detectar errores en el punto de entrada. Sin estas pruebas, los datos erróneos se propagan a los informes y las decisiones, y normalmente se descubren semanas después cuando alguien observa una cifra inverosímil.
La planificación y la gestión de dependencias determinan la coherencia del resultado. Las canalizaciones rara vez se ejecutan de forma aislada, y un proceso posterior que comienza antes de que finalice su proceso anterior produce resultados parciales que parecen completos. Existen herramientas de orquestación para expresar estas dependencias explícitamente, y las canalizaciones encadenadas por suposiciones de tiempo en lugar de por dependencias declaradas fallan intermitentemente de maneras difíciles de reproducir.
La documentación y el linaje son fundamentales porque los flujos de datos perduran más que quienes los construyen. Conocer el origen de cada campo, las transformaciones aplicadas y las reglas de negocio codificadas es esencial para comprender el significado de un dato y evaluar el impacto de modificar un sistema de origen. Los flujos de datos sin documentar se convierten en sistemas que nadie se atreve a modificar, lo que genera flujos de datos paralelos que producen cifras contradictorias.
Dado que la fiabilidad, más que la sofisticación, determina el valor entregado, la disciplina de ingeniería aplicada a los oleoductos debe coincidir con la aplicada al software de producción. En la práctica, los oleoductos se construyen y operan mediante... desarrollo de productos o el Departamento de TI, la lógica de transformación que codifica las definiciones de negocio se especifica con análisis de datosy conviene acordar las reglas de validación antes de construir la primera canalización, en lugar de añadirlas después del primer incidente.