154

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

7520Puntos

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

7520Puntos

hace un año

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
10
5760Puntos

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
7520Puntos
un año

Que bueno que te haya quedado claro, saludos. 😃

9
11225Puntos

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
4466Puntos
13 días

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
7520Puntos
un año

vamos con toda :mus

2
7690Puntos

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
1256Puntos

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

0
7520Puntos
3 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

2
3722Puntos

Interesante!

2
12482Puntos

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

2
15311Puntos

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

2
7520Puntos
un año

me alegra te haya sido útil… :musc

2
1266Puntos

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

2
7520Puntos
un año

Que bueno que te haya sido útil 😃

2
17477Puntos

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
7520Puntos
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
14456Puntos

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
7520Puntos
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
14456Puntos
un año

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

1
7520Puntos
un año

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

2
2364Puntos

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
7520Puntos
un año

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

2
4378Puntos

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
7520Puntos
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
28038Puntos

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
7520Puntos
un año

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

2
3510Puntos

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
7520Puntos
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
7130Puntos
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
3510Puntos
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

Los cientificos de datos necesitamos saber hacer ETLS ?

0
7520Puntos
3 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
3492Puntos

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

2
9817Puntos

Excelente explicación

2
894Puntos

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
2617Puntos

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
1763Puntos

Gracias por la explicación

2
3224Puntos

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
7520Puntos
un mes

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
5738Puntos

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
7520Puntos
un año

Si, es muy importante en todo proceso de analitica

2
38048Puntos

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

1
7520Puntos
un año

que bueno que te haya gustado, saludos.

2
7130Puntos

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
6158Puntos

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
19433Puntos
un año

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

1
2490Puntos
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
7520Puntos
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
6158Puntos
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
528Puntos

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

1
1671Puntos

Excelenteeeeeeeeeeee … muchas gracias 😄

1
15998Puntos

¿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?

1
7520Puntos
un año

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

1
12074Puntos

Muy buen post! Gracias por compartir!

1
7520Puntos
un año

a ti por leerlo 😃

1
999Puntos

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
7520Puntos
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
8914Puntos

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

1
7520Puntos
un año

Excelente te ayudaran bastante

1
1113Puntos

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
10588Puntos

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
7520Puntos
un año

Trabajaremos en ello 😃

1
10276Puntos

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
394Puntos

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
8330Puntos

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

Super

1
7520Puntos
un año

Me alegra que te haya gustado.

1
10524Puntos

Me recuerda mucho a Splunk! 👩‍🚀

1
2490Puntos

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

2
9340Puntos
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
7520Puntos
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
9340Puntos
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
2490Puntos
5 días

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

1
4013Puntos

Muy interesante, Muchas gracias @alarcon7a

1
7520Puntos
un año

Me alegra que ta haya gustado.

1

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

1
4837Puntos

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
7520Puntos
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.

0
4466Puntos

¿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.