ETL es un acrónimo proveniente de las prácticas de Data Warehouse y significa, por sus siglas en inglés  Extract-Transform-Load. El proceso ETL es el punto de comunicación entre el sistema origen de datos y el punto destino de almacenamiento o Data Warehouse. Por lo general, el proceso ETL abarca también un proceso de limpieza como un paso separado pero indispensable. Este paso adicional lo convierte entonces en un proceso de tipo  Extraer-Limpiar-Transformar-Cargar. A continuación tenemos una breve descripción del proceso ETL.

Proceso de Extracción

Este paso extrae la información de la fuente de datos y la hace accesible para el procesamiento posterior. El objetivo principal del paso de extracción es obtener toda la información requerida desde el sistema fuente con los menos recursos posibles. EL proceso de extracción debe ser diseñado de manera que no afecte negativamente la fuente de la información en términos de performance, tiempo de respuesta o cualquier tipo de saturación.

Existen distintas formas para extraer información:

Aviso de actualización. Si el sistema fuente puede proporcionar una notificación que un registro ha sido actualizado, ha cambiado y puede describir el cambio, esta es la manera más simple de realizar una extracción.

Extracción incremental.  Algunos sistemas pueden no proveer una notificación al realizarse una actualización. Sin embargo, puede que sí tengan la capacidad de identificar qué registros han cambiado, han sido modificados, y proporcionar la identificación de esos registros. Durante los pasos futuros en el ETL, el sistema requiere identificar estos cambios y propagarlos. Toma nota que al utilizar extracción diaria, bien podríamos no tener la capacidad de identificar apropiadamente los registros eliminados.

Extracción completa. Algunos sistemas no tienen la capacidad de identificar ningún cambio en absoluto, por lo que una extracción completa es el único camino para lograr obtener la información. La extracción completa requiere tener una copia de la extracción previa de manera que sea posible identificar los cambios. La extracción completa maneja sin problema los registros eliminados.

Proceso de limpieza

El paso adicional de limpieza en los ETL es uno de los más importantes en todo el proceso y asegura la calidad de los datos en el Data Warehouse. La limpieza debe ejecutar reglas básicas de unificación de datos, tales como:

Crear identificadores únicos (Femenino/Masculino/Desconocido, F/M/null, Hombre/Mujer/NoDisponible se trasladarán, por ejemplo, a Femenino/Masculino/Desconocido)

Convertir valores nulos en un manejo estandarizado NoDisponible/NoProporcionado, por ejemplo.

Convertir números de teléfono, códigos postales, a una forma estándar.

Validar campos de dirección, convertirlos a direcciones apropiadamente formados, por ejemplo, Calle/C./AV.

Validar los campos de dirección contra sí mismos (Estado/País, Ciudad/Estado, Ciudad/CódigoPostal, Ciudad/Calle)

Proceso de transformación

El paso de transformación aplica una serie de reglas con el objetivo de transformar la información obtenida en la fuente y que se insertará en el sistema destino. Esto incluye convertir todo dato a la misma dimensión, utilizando las mismas unidades de manera que puedan ser entrelazadas después. Este paso también incluye el entrelazamiento de datos provenientes de fuentes diversas, generando agregados, llaves, ordenamientos, derivando nuevas columnas y cálculos, y aplicando reglas avanzadas de validación.

Proceso de carga

Durante el proceso de carga, un punto importante es asegurarse que la carga se ejecuta correctamente y con los recursos mínimos necesarios. El destino del proceso de carga es casi siempre, por lo general, una base de datos. Para asegurarse que la carga se realiza de manera eficiente, ayuda deshabilitar cualquier constraint e index antes de la carga y habilitarlos después, cuando la carga haya finalizado. Toda integridad referencial debe ser conservada por el proceso ETL para asegurar consistencia en los datos.

Proceso unificado ETL

El proceso ETL en apariencia es un proceso directo. Sin embargo, con cada aplicación, existe la posibilidad de que el proceso falle en algún punto. Esto puede ser ocasionado por discrepancias en la fuente de la información, carencia de información en uno de los sistemas fuente, valores que no existen en tablas de referencia, o simplemente una falla en la fuente de poder. Es por esto que todo proceso ETL debe ser diseñado con la recuperación a prueba de fallas en mente.

Diseño por etapas

Debe ser posible reiniciar, al menos, algunas de las fases del proceso ETL independientemente de las otras fases. Por ejemplo, si el paso de transformación falla, no debería ser necesario reiniciar el paso de extracción también. Esto podemos lograrlo implementando apropiadamente un diseño por etapas (Staging). Staging simplemente significa que la información se deja en un área intermedia entre la fuente y el destino para que pueda ser consumida por el siguiente paso. Sin embargo, esta área intermedia sólo debe ser visitada por el proceso ETL, nunca debe estar a disposición de nadie más, particularmente por usuarios finales. La staging area o área intermedia contiene información incompleta o a medio procesar.

Herramienta ETL

Una decisión fundamental al llegar a este punto es la herramienta ETL que deseas utilizar. Por lo general, dependerá de los sistemas y bases de datos que ya tienes implementados. Los beneficios más importantes de utilizar una herramienta ETL ya existente en el mercado es que tienen ya, por lo general, conectores hacia base de datos y otras fuentes de información, archivos, por ejemplo. La idea es realizar la transformación de datos con la menor cantidad de problemas y de manera consistente. Entre las herramientas más conocidas están el Data Transformation Services SSIS, de Microsoft, Alteryx, Oracle Data Integrator y SAP Data Integrator.

El proceso ETL en apariencia es un proceso directo. Sin embargo, con cada aplicación, existe la posibilidad de que el proceso falle en algún punto.