Proceso ETL: Extracción, transformación y carga de datos

ETL: Extracción, transformación y carga de datos

La tecnología moderna ha cambiado el enfoque de la mayoría de las organizaciones a ETL, por varias razones. La más grande es la llegada de potentes almacenes de análisis como Amazon Redshift y Google BigQuery. Estas nuevas bases de datos analíticas basadas en la nube tienen la potencia para realizar transformaciones en lugar de requerir un área de almacenamiento especial. 

En su forma más básica, el proceso ETL abarca la extracción, transformación y carga de datos. Si bien la abreviatura implica un proceso ordenado de tres pasos (extraer, transformar, cargar), esta simple definición no captura su mayor importancia ni nos dice mucho. Por tanto, comencemos con una definición más profunda de lo que es ETL.

Qué es ETL

ETL se define como un proceso que extrae los datos de diferentes sistemas fuente RDBMS, luego transforma los datos (como la aplicación de cálculos, concatenaciones, etc.) y finalmente carga los datos en el sistema de Data Warehouse. Siendo la forma completa de ETL: Extraer, Transformar y Cargar.

Es tentador pensar que crear un almacén de datos es simplemente extraer datos de múltiples fuentes y cargarlos en la base de datos de un almacén de datos. Esto está lejos de la verdad y requiere un proceso complejo de ETL.

El proceso de ETL requiere aportaciones activas de varias partes interesadas, incluidos desarrolladores, analistas, evaluadores, altos ejecutivos por lo que es técnicamente desafiante.

Para mantener su valor como una herramienta para quienes toman decisiones, el sistema de almacenamiento de datos debe cambiar constantemente. ETL es una actividad recurrente (diaria, semanal, mensual) de un sistema de almacenamiento de datos y debe ser ágil, automatizada y bien documentada.

Componentes

Independientemente del proceso ETL exacto que elijas, hay algunos componentes críticos que debes considerar:

Compatibilidad con la captura de datos modificados (CDC): la carga incrementa te permite actualizar tu almacén de análisis con nuevos datos sin tener que recargar por completo todo el conjunto de datos. 

Auditoría y registro: necesitas un registro detallado dentro de la canalización de ETL para garantizar que los datos puedan auditarse después de que se carguen y que los errores se puedan depurar.

Manejo de múltiples formatos de origen: para obtener datos de diversos orígenes, como la API de Salesforce, tu aplicación financiera back-end y bases de datos como MySQL y MongoDB, tu proceso debe ser compatible con los datos en una variedad de formatos.

Tolerancia a fallas: En cualquier sistema, los problemas ocurren inevitablemente. Los sistemas ETL deben poder recuperarse correctamente, asegurándose de que los datos puedan pasar de un extremo a otro del canal, incluso cuando la primera ejecución encuentra problemas.

Soporte de notificación: si deseas que tu organización confíe en tus análisis, debes crear sistemas de notificación para que te avise cuando los datos no sean precisos. Estos podrían incluir:

  • Notificación proactiva directamente a los usuarios finales cuando caducan las credenciales de la API.
  • Transmitir un error de una API de terceros con una descripción que puede ayudar a los desarrolladores a depurar y solucionar un problema.
  • Si se produce un error inesperado en un conector, se crea automáticamente un ticket para que un ingeniero lo examine.
  • Utilizando el monitoreo a nivel de sistemas para cosas como errores en redes o bases de datos.

Baja latencia: algunas decisiones deben tomarse en tiempo real, por lo que la actualización de los datos es fundamental. Si bien las integraciones de datos de origen particulares impondrán restricciones de latencia, los datos deberían fluir a través de su proceso ETL con la menor latencia posible.

Escalabilidad: a medida que tu empresa crezca, también lo hará su volumen de datos. Todos los componentes de un proceso ETL deben escalarse para admitir un rendimiento arbitrariamente grande.

Precisión: los datos no se pueden eliminar ni modificar de una manera que dañe su significado. Cada punto de datos debe ser auditable en cada etapa de su proceso.

Pasos de ETL

El proceso ETL se basa en tres pasos que son:

Extracción

En este paso, los datos se extraen del sistema de origen al área de preparación. Las transformaciones, si las hay, se realizan en el área de preparación para que el rendimiento del sistema fuente no se degrade.

Además, si los datos dañados se copian directamente desde la fuente a la base de datos del almacén de datos, la reversión será un desafío. El área de preparación otorga la oportunidad de validar los datos extraídos antes de que se muevan al almacén de datos.

  • Existen tres métodos de extracción de datos:
  • Extracción completa
  • Extracción parcial sin notificación de actualización
  • Extracción parcial con notificación de actualización

Independientemente del método utilizado, la extracción no debe afectar el rendimiento y el tiempo de respuesta de los sistemas de origen.

Estos sistemas fuente son bases de datos de producción en vivo. Cualquier desaceleración o bloqueo podría afectar el balance final de la compañía.

Transformación

Los datos extraídos del servidor de origen son sin formato y no se pueden utilizar en su forma original. Por lo tanto, necesitan ser limpiados, mapeados y transformados.

De hecho, este es el paso clave en el que el proceso de ETL agrega valor y cambia los datos, de manera que se puedan generar informes de BI perspicaces.

Carga

Cargar datos en la base de datos del datawarehouse objetivo es el último paso del proceso ETL. En un almacén de datos típico, se necesita cargar un gran volumen de datos en un período relativamente corto (noches). Por lo tanto, el proceso de carga debe optimizarse para el rendimiento.

En caso de falla de carga, los mecanismos de recuperación deben configurarse para reiniciarse desde el punto de falla sin pérdida de integridad de datos. Los administradores de Data Warehouse deben supervisar, reanudar y cancelar las cargas según el rendimiento del servidor actual.