Procesos ETL (Extract, Transform and Load)

ETL son las siglas en inglés que representan Extract, Transform and Load (Extraer, Transformar, Cargar). Este proceso permite a una organización mover datos desde diferentes fuentes, transformarlos y arreglarlos a medida, y guardarlos en otra base de datos o en otro sistema para su posterior utilización por el negocio.


Los procesos ETL también se pueden utilizar para integrar sistemas legacy a los nuevos sistemas emergentes en la organización.

La latencia de los procesos ETL varía desde los lotes (a veces, de forma mensual o semanal, pero en la mayoría de los casos diariamente), al tiempo casi real con actualizaciones más frecuentes (cada hora, cada pocos minutos, etc.).

Extraer

La primera parte del proceso ETL consiste en extraer los datos desde los sistemas de origen. Es común que se utilice un ETL para fusionar datos provenientes de diferentes sistemas., por lo que sería ideal tener un ICD (Interface Control Document) para controlar que las interfaces del sistema de origen concuerden con la del sistema de destino, de lo que resulta un chequeo que verifica si los datos cumplen la pauta o estructura que se esperaba y viceversa. De no ser así los datos serían rechazados.

Cada sistema puede usar una configuración o formato distinto de los datos (bases de datos relacionales / no relacionales, ficheros planos, etc.) por lo que el proceso de extracción deberá convertir los datos a un formato apto para iniciar el proceso de transformación.

En sistemas de grandes empresas la extracción de datos suele programarse en horarios donde el sistema es menos utilizado por los usuarios ya que 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.

Transformar

El proceso de transformación aplica reglas de negocio a los datos extraídos para transformarlos en los datos que serán cargados.

Generalmente, en la transformación de los datos se seleccionan sólo ciertas columnas para su carga, se traducen/agregan códigos, se obtienen nuevos valores calculados, se unen datos de múltiples fuentes, se divide una columna en varias, se validan los datos, etc.

Carga

El proceso de carga es el momento en el cual los datos del proceso de transformación son cargados en el sistema de destino. La fase de carga interactúa directamente con la base de datos de destino.

Existen dos formas básicas de desarrollar el proceso de carga:
  • Acumulación simple: Se realiza un resumen de todas las transacciones comprendidas en el período de tiempo seleccionado y se transporta el resultado calculado como una única transacción hacia la base de datos.
  • Rolling: Se aplica cuando se desean 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.).
Al realizar esta operación se aplicarán todas las constraints y triggers que se hayan definido en la base de datos del sistema de destino y deben ser tenidos en cuenta ya que contribuyen a que se garantice la calidad de los datos en el proceso ETL.

Por que motivo se debe implementar un ETL?


Existen muchos motivos para implementar procesos ETL.
  • Los volúmenes de datos en el sistema se incrementan de forma exponencial, y se deben procesar y granular grandes cantidades de datos (productos vendidos, llamadas telefónicas, transacciones bancarias) para su posterior auditoría.
  • Se fusionan empresas y se debe hacer un matching de los datos de los distintos sistemas legacy para generar una única salida de datos equivalentes.
  • La inteligencia de negocio requiere que se almacenen las estructuras de datos históricos en aplicaciones OLAP, para el análisis, notificación y cuadros de mando operacional y táctico (dashboarding) y estratégico (scorecarding).
Entre muchas otras posibilidades que día a día se presentan y resultaría mucho más ágil y prolijo resolverlo con esta solución.

No hay comentarios:

Publicar un comentario en la entrada