137

¿Qué es un ETL?

7088Puntos

hace 9 meses

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.

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.

Extract, Transform, Load (ETL)

ETL por sus siglas en ingles 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

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

7088Puntos

hace 9 meses

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

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
7088Puntos
9 meses

Que bueno que te haya quedado claro, saludos. 😃

8
9439Puntos

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.

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

1
7088Puntos
9 meses

vamos con toda :mus

2
6778Puntos

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

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

2
1223Puntos

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
7088Puntos
12 días

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

Los cientificos de datos necesitamos saber hacer ETLS ?

0
7088Puntos
12 días

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

2
2739Puntos

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

2
8647Puntos

Excelente explicación

2
632Puntos

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

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

Gracias por la explicación

2
7286Puntos

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

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
19085Puntos
9 meses

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

1
2226Puntos
9 meses

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

2
7088Puntos
9 meses

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
6106Puntos
9 meses

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

Interesante!

2
528Puntos

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

2
11064Puntos

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

2
5733Puntos

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
7088Puntos
9 meses

Si, es muy importante en todo proceso de analitica

2
14517Puntos

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

2
7088Puntos
9 meses

me alegra te haya sido útil… :musc

2
1223Puntos

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

2
7088Puntos
9 meses

Que bueno que te haya sido útil 😃

2
16300Puntos

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
7088Puntos
9 meses

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

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

1
7088Puntos
9 meses

que bueno que te haya gustado, saludos.

2
12704Puntos

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
7088Puntos
9 meses

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
12704Puntos
9 meses

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

1
7088Puntos
9 meses

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

2
3920Puntos

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
7088Puntos
9 meses

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

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
7088Puntos
9 meses

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

2
24838Puntos

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
7088Puntos
9 meses

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

2
1535Puntos

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
7088Puntos
9 meses

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
6778Puntos
9 meses

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
1535Puntos
9 meses

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

1
1534Puntos

Excelenteeeeeeeeeeee … muchas gracias 😄

1

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

1
336Puntos

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

Muy buen post! Gracias por compartir!

1
7088Puntos
9 meses

a ti por leerlo 😃

1
15898Puntos

¿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
7088Puntos
9 meses

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

1
8222Puntos

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

1
7088Puntos
9 meses

Excelente te ayudaran bastante

1
10549Puntos

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
7088Puntos
9 meses

Trabajaremos en ello 😃

1
9961Puntos

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

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

Super

1
7088Puntos
9 meses

Me alegra que te haya gustado.

1
9035Puntos

Me recuerda mucho a Splunk! 👩‍🚀

1
4012Puntos

Muy interesante, Muchas gracias @alarcon7a

1
7088Puntos
9 meses

Me alegra que ta haya gustado.

1
4511Puntos

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
7088Puntos
9 meses

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.

1
2226Puntos

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

2
8824Puntos
9 meses

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
7088Puntos
9 meses

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
8824Puntos
9 meses

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

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
7088Puntos
9 meses

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

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.