168

¿Qué son los procesos ETL? Conócelos a fondo

8398Puntos

hace un año

Curso de Ingeniería de Datos con Python
Curso de Ingeniería de Datos con Python

Curso de Ingeniería de Datos con Python

Genera un set de datos capaz de generar predicciones a partir de algoritmos de machine learning. Encuentra fuentes ideales de datos. Trata, limpia y alista información para crear tu dataset y da el primer paso para formarte en la Carrera de Ciencia de Datos.

ETL por sus siglas en inglés (Extract, Transform, Load) representa extracción, transformación y carga. Básicamente consiste en “Extraer” los datos crudos desde su origen (Source), “Transformarlos” según nuestras necesidades de analítica o la estructura que deseamos y “Cargarlos” a una base de datos orientada a procesos analíticos (Target).

ETL

Los datos llegaron para quedarse. Para nadie es un secreto que una buena parte de nuestra economía se basa en datos y los encontramos en cualquier parte, incluso el simple de hecho de estar revisando nuestro smartphone para hablar con otras personas, buscar algo en Google, jugar o pasear por las redes sociales. Todo esto genera una gran cantidad de datos minuto a minuto y así en cada dispositivo o cada organización que existe. Piensa en cuántos datos pueden pasar por un banco en un minuto o en una organización que dependa de sensores como la industria petrolera o las startups.

Pero lo interesante acá es el valor que se genera con estos datos gracias a la analítica de datos, visualización, creación de modelos con machine learning, ayuda en toma de decisiones y demás.


Conoce Platzi para empresas 👇
Banner-Platzienterprise-01.png


Pero ¿todos los datos están listos para ser analizados? La respuesta es NO, la gran mayoría de los datos nacen con una estructura que no es adecuada para el análisis de datos, vienen en formatos desestructurados como JSON o XML, con valores nulos, datos errados, carácteres inválidos, registros duplicados y demás problemas a los que los científicos de datos e ingenieros de datos nos enfrentamos día a día. Pero calma, a pesar de este caos hay una solución: un proceso de ETL.

Extracción:

Acá nace la magia. En este punto es cuando, valga la redundancia, extraemos los datos. Vale la pena resaltar que nuestro origen de datos o “source” puede contener múltiples fuentes de datos. Imagina que requieres extraer la información de una base de datos en PostgreSQL, otra base de datos en Oracle y un archivo CSV que te genera a diario el área de contabilidad. Es muy importante que en este punto tengas en cuenta cuál es el formato y las características de nuestros datos, pues esto nos indicara la mejor manera de extraerlos.

Un ejemplo de esto es si quieres consultar millones de registros de una base de datos, posiblemente hacerlo en un solo “select” estresara el motor de base de datos y tu proceso ETL empezará a tener inconvenientes, lo mejor seria ejecutar este proceso en pequeños lotes incrementales hasta terminar el total de los datos. El éxito de una buena extracción es que cause el menor impacto en el origen de los datos.

Teniendo eso en cuenta puedes hacer tus extracciones de dos formas:

  • Totales: cada ejecución de extrae en un único llamado la totalidad de tus datos a procesar .
  • Incremental: el ETL extrae los datos en pequeños lotes múltiples veces. Un ejemplo es un ETL que se ejecuta diariamente, pero solo consulta los datos del día anterior a su ejecución para trabajar con ellos.

Transformación:

En este punto aplicaremos las reglas que tu negocio demanda para realizar un buen proceso de analítica, estas reglas suelen incluir procesos como:

  • Filtrar filas por ciertas características.
  • Eliminar duplicados.
  • Transformar datos (por ejemplo, si el país es Colombia, reemplázalo por 1) México, 2) Perú, 3) Ecuador, etc.).
  • Calcular datos nuevos (por ejemplo, con la fecha de nacimiento calcular la edad).
  • Agrupar datos (máximo valor, mínimo valor, promedios, conteos, etc.).
  • Unir o combinar datos de distintas fuentes.
  • Pivotar las tablas.
  • Dividir columnas (nombre completo se puede transformar en primer nombre, segundo nombre, primer apellido y segundo apellido).

Y estas solo son algunas de las transformaciones más comunes, este proceso depende mucho de lo que quieras obtener de los datos una vez la cargues al destino o “Target”.

Tal vez en este punto te preguntes “¿y en dónde se realizan estas transformaciones? ¿En el “Source” o en el “Target”?”. Y la respuesta es: ninguna de las dos. Estas transformaciones se realizan en el área de “Staging”, un repositorio temporal para procesar estos datos, funciona por medio de tablas o archivos planos dependiendo de la herramienta de ETL que uses, una vez los datos pasan al destino, este repositorio temporal es eliminado.

Carga:

Este es el proceso final de nuestro ETL. Nuestros datos deben estar transformados y listos en el área de staging, así que ahora debemos proceder a cargarlos a nuestra base de datos de analítica. Esta base de datos comúnmente es un datawarehouse en donde conviven distintos repositorios de datos de una manera no normalizada (como en una base de datos relacional) y con una estructura lista para realizar análisis de datos.

En este punto también debemos tener en cuenta qué motor corre nuestra base de datos de destino, pues dependiendo de esto existen distintas formas más eficientes de cargar la información. Por ejemplo, una base de datos en Redshift es mucho más eficiente haciendo un “Copy” basados en un archivo plano y no realizando tareas de “insert” registro a registro, bases de datos como Oracle son muy buenas haciendo “Bulk Collect” de inserción de datos.

Una vez realizado el cargue de datos tus tablas están listas para ser consultadas en cualquier proceso de analítica y darle valor a tu organización basados en datos.

Sácale provecho

En la economía actual la demanda de datos es muy alta y una base muy importante son los procesos recolección e ingesta de datos y acá un ETL es el rey del baile. Te invito a que aprendas más de este tema pues la clave de un buen proceso de analítica está en el origen de los datos, si basura entra, basura sale, un buen proceso de ETL es fundamental para darle valor a tus datos.

Te recomiendo seguir estos cursos para saber más acerca del tema:

Cuéntame en los comentarios si te quedo alguna duda al respecto o como te puedo ayudar. Recuerda: Nunca Pares De Aprender.

Curso de Ingeniería de Datos con Python
Curso de Ingeniería de Datos con Python

Curso de Ingeniería de Datos con Python

Genera un set de datos capaz de generar predicciones a partir de algoritmos de machine learning. Encuentra fuentes ideales de datos. Trata, limpia y alista información para crear tu dataset y da el primer paso para formarte en la Carrera de Ciencia de Datos.
Carlos Andrés
Carlos Andrés
alarcon7a

8398Puntos

hace un año

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
12
5779Puntos

Gracias Carlos, a mi me queda muy claro la explicación de ETL y al no ser técnico mi perfil, cae como anillo al dedo. Hace 1 año me habría caído de perlas para un proyecto que tuve a cargo y el TL me hablaba de la construcción de la ETL y yo… Ni idea hjejejejej Muchas gracias por la explicación.

4
8398Puntos
un año

Que bueno que te haya quedado claro, saludos. 😃

10
11306Puntos

En analíticas del aprendizaje, vemos la escala de esta manera:
Dato–> Información -->Conocimiento --> Sabiduría

Dato: medidas, observaciones, evaluación de eventos, seleccionar, capturar.
Información: categorización, combinación, agrupación, agregar, crear informes.
Conocimiento: Estudio de tendencias, relevancia, basado en métricas, medir, predecir.
Sabiduría: Experiencia, juicio, experiencia, refinar, actuar.

Esta información hace parte del Big Data en educación, de cómo procesar y qué hacer, es un aspecto en construcción, igual solo quería compartirlo.

0
6440Puntos
3 meses

Gracias por el aporte, me ayudó bastante.

4

muy bueno, hace poco me llego una oferta para un cargo en el que debía implementar ETL, ahora creo que estoy preparado por si la oferta resulta

2
8398Puntos
un año

vamos con toda :mus

2
15625Puntos

Gracias Carlos, por fin una explicación puntual de una ETL. a seguir aprendiendo.

2
8398Puntos
un año

me alegra te haya sido útil… :musc

2
1573Puntos

Quedo clarísimo que es ETL. Muchas gracias Carlos
Saludos.

2
8398Puntos
un año

Que bueno que te haya sido útil 😃

2
20026Puntos

Que grande me hace mas ganas de las que ya tengo de enfocarme en ser un backend, con experticia en base de datos!!!
Me encanta!

2
8398Puntos
un año

Genial, yo fui backend en un comienzo, pero luego pase a ser ingeniero de datos, arquitecto, DBA y data scientist… se complementa todo muy bien

2
15844Puntos

Me queda la duda si un ETL es funcional para un ambiente de análisis en datos en ambientes Cloud. Qué opinan?. Gracias a todos.

3
8398Puntos
un año

Si, y la demanda aumenta constantemente, ambientes cloud como GCP y AWS tienen muchas herramientas propias para esto, como data flow o Glue … y tambien analisis en tiempo real, sistemas de archivos y bases de datos.

1
15844Puntos
un año

Gracias por tu respuesta @alarcon7a. Crees que a futuro estos procesos de ETL desaparezca?

1
8398Puntos
un año

No lo creo, al menos no en uno cercano, incluso tecnologias como AirFLow o Kafka tienen mucho peso actualemente.

2
2370Puntos

Buen post, explicado de manera sencilla. Siempre será una parte importante del proceso de análisis. Herramientas para este proceso que he manejado en algún momento: SSIS, Informatica PC, Pentaho Data Integrator, Talend… eh incluso SQL directo. Creo que la herramienta dependeré del requerimiento. Saludos!

2
8398Puntos
un año

asi es, depende mucho del requerimiento, el presupuesto y la integracion con otros sistemas.

2
4402Puntos

Gracias por la breve explicacion, desde hace unos meses estoy en un proyecto de ETL y a sido todo una lucha entender las conversiones que hay en el ramo, por eso estoy aqui. Usamos Teradata como DW y nos ayudamos de datastage, shell scripts y btq scripts para esta actividad, hasta la fecha no entiendo varias cosas, por eso apenas empiezo en la escuela de data science para no perderme nada.

2
8398Puntos
un año

datastage es un muy buen motor de ETL, la Infosphere de IBM es magica, y si… hay mucho por aprender pero aca te ayudaremos en ese proceso.

2
30399Puntos

Whoa!!! hace mucho quería saber de esto (después de la clases de fundamentos de bases de datos), estoy terminando mi path en Fundamentos de programación para meterme de lleno en la escuela de Data science, Estos cursos que recomiendas los puedo encontrar en ese path?

3
8398Puntos
un año

Estan en rutas separadas, pero puedes agregar el path de la escuela de data science.

2
3778Puntos

Tengo que hacer una investigación para mi Universidad sobre uno de los siguientes :
-Excel-SQL Server
-SSIS-SQL Server
-POWE BI-SQL Server
-TABLEU-SQL Server

¿Cual seria mas beneficioso de aprender? ya que no quiero aprender algo desfasado.

2
8398Puntos
un año

Veo que manejan muchos productos de Microsoft… son buenos pero existen muchas otras soluciones, TABLEU es muy robusto para la visualizacion y analisis de datos, me gusta como herramienta, por otro lado SSIS es muy bueno pero esta muy ligado a Microsoft y su ecositema.

1
7531Puntos
un año

Qlikview es una excelente herramienta, ETL, visualización y analítica. Hoy en día el producto es más moderno y se llama Qlik Sense. PoweBI es de Microsoft.

1
3778Puntos
un año

Muchas gracias, por su respuesta.
¿Cuales son las opciones mas utilizadas hoy en día en el tema ETL?

2
2194Puntos

Inetresante, muchas gracias por compartir y dar una idea de como se hace esto. Muy bien explicado.

2
1300Puntos

Hola, para iniciar en el mundo de data science, adicional a esta escuela que ofrece Platzi que otra formación se requiere para complementar, o si con todos estos cursos puede uno iniciar esta carrera, agradezco por la respuesta y orientación que me pueda brindar

2
8398Puntos
5 meses

Estamos formando la escuela para que tengas todo lo necesario para iniciar tu vida como un data scientist, data engenieer o data analyst!! :mus

1
2 meses

Que importante es conocer esto, apenas estoy empezando en este mundo, soy ingeniero industrial, y ya excel se me queda pequeño, al conocer Power BI quiero dar el siguiente paso en el analisis de datos, y me enteré de que existe este mundo gigante del data. Creo que llegue para quedarme.

Saludos

2

Los cientificos de datos necesitamos saber hacer ETLS ?

0
8398Puntos
5 meses

usualmente ese proceso es responsabilidad de ingenieros de datos, pero la verdad que sepas como funciona y puedas implementarlo te da muchas ventajas.

2
3965Puntos

Interesante esta información,me motivo a tomarlo,muchas gracias

2
9875Puntos

Excelente explicación

2
1142Puntos

Que magistral la explicación del proceso, quedo super claro y aun mas motiva a indagar mucho mas para generar mas y mejores practicas para la extracción exitosa de datos en diversos ámbitos y tener un mejor desempeño en el análisis de estos 😃

2
781Puntos

Gracias Carlos Andrés, increíble la información de este Post! Muy buena información y fácil de digerir para quienas apenas empezamos en este mundo del Big Data!

2

Excelente articulo, entré sin saber que era ETL y terminé sabiendo hasta todo su proceso. Gracias Carlos, muy buen trabajo 😃

2
5850Puntos

Recién estoy entrando al mundo de la ciencia de datos y no me cabe duda que con explicaciones como esta voy a aprender bastante rápido todos los conceptos. Muchas gracias por el contenido ha sido de gran utilidad.

2
2710Puntos

Gracias por la explicación

2
3885Puntos

Hola, para un ETL eficiente se deben tener 3 motores de base de datos o solo 3 instancias? Es decir si deseo extraer de PostgreSQL y Excel puedo combinar los datos transformados en otra base de Datos PostgreSQL para el Staging y finalizar en esa misma base de datos con los valores normalizados o debo aislar los 3 procesos. Gracias. Excelente explicación.

0
8398Puntos
3 meses

Es posible, aunque hay otros lenguajes un poco mas eficiones para el manejo de datos en staging como lo es python pero lo que planteras es totalmetne posible

2
6440Puntos

¿Qué son los procesos ETL?
Por sus siglas: Extract, Transform, Load.

En resumen, un proceso ETL consiste en extraer los datos crudos desde el origen (Source), transformarlos según nuestra conveniencia para el análisis y finalmente cargarlos a una base de datos orientada a procesos analìticos.

  • Extracción:

    Hay dos maneras de extraer los datos, elegir una u otra dependerá del tipo de datos, su formato y sus características.

    • Totales: En cada ejecución se extraen todos los datos. Esto es muy poco eficiente cuando trabajamos con muchos datos de diferentes formatos, pues saturará el motor de base de datos.
    • Incrementales: El motor extrae en pequeños lotes varias veces. Un ejemplo de esto puede ser la recolección de datos diariamente, pero de los datos recopilados el día anterior.
  • Transformación:

    Son una serie de procesos que se utilizan para lograr un buen proceso analítico.

    Algunos ejemplos pueden ser: eliminar datos, calcular unos nuevos, unir datos de fuentes diversas, entre otras muchos procesos que se realizarán dependiendo de lo que quieras obtener una vez que los datos sean cargados.

    Un aspecto importe es que estos procesos se llevan a cabo en repositorio temporal llamado “Staging”, el cual es eliminado una vez que los datos llegan al Target.

  • Carga:

    Una vez que los datos salen del área de staging, deben ser cargados a una base de datos de analítica (usualmente es un datawarehouse) bien estructurada para el análisis de datos.

2
3723Puntos

Interesante!

2
12482Puntos

Me sentí como regresar a mis clases de Base de Datos en la Universidad, gracias por la contribución

2
8682Puntos

Gracias Carlos por esa grandiosa explicación, realmente sigo convencido que tome la mejor desición para cambiar mi carrera y ser data science

2
5751Puntos

Super este post. La verdad hacia este proceso de ETL (Pentaho Data Integration) desde hace rato y no sabia que tuviera mucha salida y campo de accion. Gracias!!!

3
8398Puntos
un año

Si, es muy importante en todo proceso de analitica

2
40709Puntos

Muy buen post. Me queda por aprender, pero son cosas que me sirven para llegar con más conceptos claros
Gracias

1
8398Puntos
un año

que bueno que te haya gustado, saludos.

2
7531Puntos

Qlikview es una excelente herramienta, ETL, visualización y analítica. Hoy en día el producto es más moderno y se llama Qlik Sense. Aquí el trabajo es diferente, no utiliza DW, utiliza archivos propios binarios y análisis en memoria. Muy bueno, revisarlo.

2
6837Puntos

Trabajé un tiempo con la suite para ETL de Microsoft SSIS (SQL Server Integration Services), tiene elementos muy potentes y ayuda para crear las ETL con una interfaz grafica desde Visual Studio.
Pero pienso que restringe un poco a los equipos ya que requiere todo un stack de tecnologías de Microsoft y exige que todos en el grupo de trabajo usen Windows.
Considero esta nueva carrera de Platzi muy interesante

1
21548Puntos
un año

Encontraste alguna alternativa? yo también utilizo SSIS, pero siento que hay mejores opciones.

1
2521Puntos
un año

Yo amo SSIS y si hay mas herramientas en el mercado, eso depende del dinero que quiera meterle la empresa a este tema.

2
8398Puntos
un año

Si, a mi me gusto mucho trabajar con Datastage de IBM y ODI de Oracle, pero soluciones como Pentaho me han funcionado bastante, son libres y faciles de implementar

2
6837Puntos
un año

Gracias por las respuestas !
No tuve que buscar mas opciones, fue para un proyecto muy puntual en el que el cliente ya tenía todo en SSIS.
Aparte de crear algunas ETL, tambien creamos servicios REST para conectar algunas aplicaciones.

2
531Puntos

Gracias Carlos, ya he trabajado un poco con ETLs y es bastante interesante.

1
1067Puntos

Lo he utilizado mucho en mi experiencia laboral ya que me permite crear tareas automáticas para la transformación de datos o generación de backups. Aunque siempre he querido implementarlo para migrar grandes cantidades de datos en repositorios DWH tal vez en cloud, tengo entendido que es el principal uso que le dan esta herramienta, muy interesante.

1
1999Puntos

Excelenteeeeeeeeeeee … muchas gracias 😄

1
1014Puntos

Hola, muy buena la explicación, solo hay algo que no entiendo respecto a la extracción de los datos, espero hacerme entender en mi pregunta porque no está tan fácil jaja: la distinción entre una extracción total e incremental de los datos se debe a su generación?; es decir, solo cuando ya se tiene una base con todos los datos, se extraen de manera total, y cuando los datos se generan por periodos (según el ejemplo, diariamente) es que se extraen de manera incremental? O, incluso, cuando se tiene la base de datos completa la extracción se puede hacer de manera incremental?

3
8398Puntos
un año

Depende mucho del problema que tengas y del origen de datos, digamos si quieres llevarte las ventas al target, lo mas probable es que no te las lleves todas… si no solo las ventas del dia, puesto que lo mas probable es que tengas miles de registros de tus ventas historicas, de modo que al llevar solo las del ultimo dia, son extracciones incrementales, pero si es data de sigamos proveedores, posiblemente siempre te llevas todos los proveedores en una sola extraccion, pues no creo superen los cientos de registros… y de eso modo borras la data en el target y la insertas de nuevo siempre.

espero haber sido un poco mas claro

1
1319Puntos

Gracias por la explicación. En mi experiencia profesional he tenido que hacer un proceso similar, no para tener al final un análisis de datos, pero si sacar la información de una base de datos, transformarla acorde de las necesidades de un nuevo software y por ultimo hacer la carga a una nueva base de datos. Esto ha despertado en mi mucha curiosidad por estos temas.

1
13451Puntos

Muy buen post! Gracias por compartir!

1
8398Puntos
un año

a ti por leerlo 😃

1

Excelente explicación del proceso de extracción, transformación y carga.

1
2521Puntos

Si alguien necesita asesoría sobre ETLs tengo 5 años de experiencia jejeje cualquier duda con gusto 😃 😄

2
10065Puntos
un año

Hola, yo estuve escrapeando una pagina la cual queria extraer el texto, pero al extraerlo salen simbolos como \r\ no es el encode ya que esta en español y las palabras que sustituye por ese simbolo son diferentes, ningun simbolo especial aveces son vocale. Sabes a que se puede deber?

3
8398Puntos
un año

quiza el encode en algun punto cambia, es posible que san los acentos? … la mejor manera de trabajar estos textos son con expresiones regulares

1
10065Puntos
un año

Muchas gracias @alarcon7a , estoy llevando ese curos para poder scrapear ahi, Imprimiento las etiquetas completas no se ve ese error, solo al seleccionarlas una por una.

1
2521Puntos
3 meses

Revise por favor que el archivo este en formato ANSI y que la configuración del codepage este en 1252 Latin 1

1
9231Puntos

Excelente, gracias por el aporte. Justo esos cursos los tengo en mi lista.

1
8398Puntos
un año

Excelente te ayudaran bastante

1
812Puntos

Gracias por el aporte, lo había escuchado pero no tenia claro cual era su fin

1
10615Puntos

I like to have more blog in English
i am not know. me want know
I do not if there is more blog in English, but I would like there
yo no si hay mas blog en ingles, pero me gustaría que haya

1
8398Puntos
un año

Trabajaremos en ello 😃

1
10375Puntos

En mi trabajo el uso de ETL con MSSQL es el pan de cada día, es muy importante en el manejo de la información.

También es importante tener en cuenta que existen enfoques diferentes en el manejo de la información, como el TTL (Time To Live) , en dónde la información expira y es más adecuado para un enfoque de monitoreo o de paso.

Muy buen post 💚

1

Muy buena la explicación, especialmente para personas como yo que estamos empezando

1
16112Puntos

¿Platzi utiliza un ETL? ¿Si lo hace, como es? ¿Y de igual forma cuales serian algunos ejemplos en el ambiente laboral respecto a este tema?

2
8398Puntos
un año

Si, tenemos varios procesos de ETL, muchos de ellos se ejecutan a traves de lambdas en AWS mediante python.

1
8827Puntos

Que blog tan descriptivo y curioso.
Muchas gracias por el aporte.

Super

1
8398Puntos
un año

Me alegra que te haya gustado.

1
11696Puntos

Me recuerda mucho a Splunk! 👩‍🚀

1
4020Puntos

Muy interesante, Muchas gracias @alarcon7a

1
8398Puntos
un año

Me alegra que ta haya gustado.

1
1370Puntos

Soy nueva en este tema de análisis de datos, realmente me ha encantado toda la info qué he estudiado hasta el momento!! también me he dado cuenta que desde hace tiempo vengo realizando labores con grandes bases de datos y no había logrado entender la dimensión e importancia de este perfil en los próximos años!! de mucha utilidad el articulo, gracias!!

1
5119Puntos

Gracias por la información.
En mi empresa se trabaja con una herramienta llamada Tableau la cual hace extracciones incrementales de distintas bases de datos todos los días, esta información extraída la guarda en un archivo .hyper, ¿este archivo sería el data warehouse?

1
8398Puntos
un año

hay muchas arquitecturas de trabajo con datawarehouse, en big data es comun ver que los archivos de consulta esten en un file system como hdfs y luego son consumidos por otras herramientas, o si no la data se envia a bases de datos columnares como redshift o big query o Hbase para consultarlas, no se como sea la arquitectura que tienen en la empresa, pero puede ser posible.