Qué son los procesos ETL
El origen de los datos puede ser muy diverso y estos encontrarse en distintos formatos. Es por esta razón, en muchas ocasiones es necesario estandarizar la información cruda recibida para una mejor organización dentro del almacén de datos.
Qué es ETL: funciones y fases
El proceso ETL consiste básicamente en mover datos entre distintas fuentes y aplicar transformaciones en el camino si es preciso.
En muchos casos es necesario migrar información de una base de datos a otra o recoger información que provienen de servidores exteriores y guardarlos de forma ordenada limpia en un almacén de datos, o también conocido como data warehouse.
Vamos a analizar cada uno de las fases de un proceso ETL:
Algoritmos de minería de datos o data mining
¿Sabes cuáles son los algoritmos más populares en minería de datos? Entra y descubre los 9 métodos de data mining que debes conocer para dominar el data mining.
Ver artículo1. Extracción
Esta parte consiste en recopilar datos en bruto de distintas fuentes de información. Normalmente el origen son archivos planos o bases de datos del tipo relacional (SQL).
No obstante, se pueden hacer conexiones a bases de datos no relacionales (NoSQL) o información que provienen de sistemas real-time.
En la parte de extracción también se comprueba que la información recibida por el emisor tiene el formato correcto y la estructura necesaria para que los siguientes pasos del ETL puedan tener lugar.
2. Transformación
La parte de transformación consiste en aplicar ciertas modificaciones a los datos recibidos de la fase de extracción según un conjunto de reglas de negocio.
Algunas de estás transformaciones consisten en calcular nuevos valores a partir de los existentes, seleccionar solo ciertas columnas, codificar valores categóricos, girando columnas y filas a través de la pivotación etc.
Otros posts que te gustarán
Una vez los datos ya cumplen con las reglas predefinidas es momento de pasar a la siguiente fase: la carga.
3. Carga
La última fase consiste en cargar los datos ya limpios y con la estructura correcta en el sistema de destino. Normalmente este volcado de datos se hace en una data warehouse. Allí quedan almacenados de forma segura y pueden ser analizados y visualizados posteriormente con herramientas BI como Power BI o Tableau.
Procesos ELT: data lakes
ELT son las siglas de Extract, Load y Transform y es un método que se diferencia de los procesos ETL en que la transformación de los datos tiene lugar después de la carga en el sistema de destino. Es decir, el sistema que guarda la información tiene que ser capaz de aplicar las transformaciones necesarias.
En este caso, el formato de guardado de los datos consiste en un data lake. Un data lake es un almacén de datos en bruto el cual no tiene ninguna estructura predefinida.
Podríamos decir que los datos se guardan de forma desordenada, a diferencia de los almacenes data warehouses (típicos de procesos ETL) donde la información se guarda de forma ordenada siguiendo un cierto esquema.
El proceso ELT normalmente se usan en bases de datos no relacionales o NoSQL.
Diferencias entre ETL y ELT
No hay un método mejor o peor. Cada proceso es optimo para unas ciertas funcionalidades.
El ingeniero Big Data tiene que ser capaz de diseñar un buen pipeline según las necesidades que ser requieran en cada aplicación.
La diferencia principal entre ETL y ELT es el momento en que se procesan los datos, se limpian y se seleccionan. En el caso de ETL ocurre antes de guardarse en el lugar de destino, por lo que hay cierta información que se pierde durante el proceso.
En cambio, ELT, los datos son transformados directamente en el lugar de destino, con lo que se conservan los datos iniciales.
Normalmente, la infrastructura de almacenamiento en los que se usa un proceso ETL se conoce como data warehouse. En el caso de los procesos ELT, esta infraestructura recibe el nombre de data lake. Los data lakes no tienen ningún esquema, son los datos en bruto y no están ordenados.
Por el contrario, los data warehouses son estructuras de datos ordenadas a través de un esquema predeterminado.
Usar uno u otro depende del objetivo del proyecto. Por ejemplo, si la velocidad de ingesta es muy importante entonces optaremos por un proceso ELT ya que no perderemos el tiempo transformando los datos antes de guardarlos en el sistema de destino.