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).
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.
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.
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:
En este punto aplicaremos las reglas que tu negocio demanda para realizar un buen proceso de analítica, estas reglas suelen incluir procesos como:
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.
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.
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.
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.
Que bueno que te haya quedado claro, saludos. 😃
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.
Gracias por el aporte, me ayudó bastante.
Qué buen aporte, gracias!!
Muchas gracias por tu aporte
¿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.
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.
Excelente aporte amigo
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
vamos con toda :mus
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.
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.
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.
Muchas gracias, por su respuesta.
¿Cuales son las opciones mas utilizadas hoy en día en el tema ETL?
Gracias a tu pregunta, aprendi las diferencias gracias
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
Encontraste alguna alternativa? yo también utilizo SSIS, pero siento que hay mejores opciones.
Yo amo SSIS y si hay mas herramientas en el mercado, eso depende del dinero que quiera meterle la empresa a este tema.
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
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.
Lo voy a tener presente
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.
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.
Gracias por tu respuesta @alarcon7a. Crees que a futuro estos procesos de ETL desaparezca?
No lo creo, al menos no en uno cercano, incluso tecnologias como AirFLow o Kafka tienen mucho peso actualemente.
Pero que herramienta sugieren utilizar de etl para extraer datos de SQL server , Oracle, MySQL, MongoDB, Twitter?
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!
Adelante!!!
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
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?
Estan en rutas separadas, pero puedes agregar el path de la escuela de data science.
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.
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.
Excelente post, que completamente claro que es un proceso de ETL
Quedo clarísimo que es ETL. Muchas gracias Carlos
Saludos.
Que bueno que te haya sido útil 😃
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!
asi es, depende mucho del requerimiento, el presupuesto y la integracion con otros sistemas.
Gracias Carlos, ya he trabajado un poco con ETLs y es bastante interesante.
Increíble, muchas gracias.
Interesante!
Me sentí como regresar a mis clases de Base de Datos en la Universidad, gracias por la contribución
nice
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.
Excelente Blog!!
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
Estamos formando la escuela para que tengas todo lo necesario para iniciar tu vida como un data scientist, data engenieer o data analyst!! :mus
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
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.
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.
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
Gracias Carlos, por fin una explicación puntual de una ETL. a seguir aprendiendo.
me alegra te haya sido útil… :musc
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!!!
Si, es muy importante en todo proceso de analitica
Muy buen post. Me queda por aprender, pero son cosas que me sirven para llegar con más conceptos claros
Gracias
que bueno que te haya gustado, saludos.
Inetresante, muchas gracias por compartir y dar una idea de como se hace esto. Muy bien explicado.
Gracias Carlos por esa grandiosa explicación, realmente sigo convencido que tome la mejor desición para cambiar mi carrera y ser data science
Los cientificos de datos necesitamos saber hacer ETLS ?
usualmente ese proceso es responsabilidad de ingenieros de datos, pero la verdad que sepas como funciona y puedas implementarlo te da muchas ventajas.
Excelente explicación
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 😃
Excelente articulo, entré sin saber que era ETL y terminé sabiendo hasta todo su proceso. Gracias Carlos, muy buen trabajo 😃
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!
Gracias por la explicación
Interesante esta información,me motivo a tomarlo,muchas gracias
Excelente, gracias por el aporte. Justo esos cursos los tengo en mi lista.
Excelente te ayudaran bastante
Gracias por el aporte, lo había escuchado pero no tenia claro cual era su fin
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?
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
Excelente información!!! Muy claro.
Gracias! 😃
Gracias por el post, buen contenido!
Veo muy interesante este tema, espero ver donde lo puedo aplicar mas adelaten!
Si alguien necesita asesoría sobre ETLs tengo 5 años de experiencia jejeje cualquier duda con gusto 😃 😄
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?
quiza el encode en algun punto cambia, es posible que san los acentos? … la mejor manera de trabajar estos textos son con expresiones regulares
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.
Revise por favor que el archivo este en formato ANSI y que la configuración del codepage este en 1252 Latin 1
Que blog tan descriptivo y curioso.
Muchas gracias por el aporte.
Super
Me alegra que te haya gustado.
¿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?
Si, tenemos varios procesos de ETL, muchos de ellos se ejecutan a traves de lambdas en AWS mediante python.
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?
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.
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!!
Siempre intenté crear una secuencia por mi propia cuenta, pero esto resume todo de la mejor forma. Gracias!!
Muy buena la explicación, especialmente para personas como yo que estamos empezando
Gracias Carlos, este tipo de documentos me ayudan mucho para alimentar léxico y entender conceptos requeridos en este campo. Saludos.
Muchas gracias, me queda muy claro el proceso.
Hola Carlos, Hasta el momento soy muy novata con toda la terminología, pero gracias a tu post me ha quedado mas clara esta nueva información.
Hola! una duda, que herramientas suelen utilizar para ETL?
Excelente artículo, en este mundo de la tecnología nunca dejamos de aprender cosas nuevas o profundizar las que ya “sabemos”.
Mil gracias Carlos, chévere encontrar contenidos tan claros y completos como este.
Excelente explicacion, tenia dudas y aca las resolvi
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
Trabajaremos en ello 😃
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.
Excelente contenido , muchas gracias!
Muy buen post! Gracias por compartir!
a ti por leerlo 😃
Muy interesante, Muchas gracias @alarcon7a
Me alegra que ta haya gustado.
Me recuerda mucho a Splunk! 👩🚀
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.
Excelente explicación del proceso de extracción, transformación y carga.
Excelente información, muchas gracias por el aporte. 💯
Que genial!
Siempre me han apacionado los datos, he trabajado con ellos y me encanta ayudar con la generación de información de valor a partir de datos :3
Sueño con especializame y trabajar en este campo, logrando grandes cosas para mi comunidad. Espero que Platzi me ayude con esto 😄
Gracias Carlos!
Soy totalmente nuevo en el mundo de análisis de datos y logré entender el proceso e importancia que tiene el hecho de saber que data va a entrar para extraerla , transformarla y analizarla.
Este tipo de lecturas ayudan mucho a la comprensión de los temás y son un gran complemento a los cursos o retos que se lleguen a tomar. Felicidades.
Más nutritivo que cualquier sitio de consulta, Gracias master!!!
Gracias Carlos. Muy práctico y especifico.
Buenisimo el posteo. Un resumen de algo fundamental en cualquier proceso de Data Science
super bueno Carlos, la información es muy clara y me deja con buenas bases para seguir aprendiendo, muchas gracias.
Los procesos ETL (Extract, Transform, Load) son un conjunto de tareas que se utilizan para mover datos de un lugar a otro. ETL es una sigla que se refiere a las tres operaciones principales que se realizan en un pipeline ETL:
Extract (Extracción): Esta tarea consiste en extraer datos de diferentes fuentes, como bases de datos, archivos de datos, sensores o APIs de terceros.
Transform (Transformación): Esta tarea consiste en modificar los datos de alguna manera, como limpiarlos, formatearlos, calcular nuevos valores o agregar información adicional.
Load (Carga): Esta tarea consiste en cargar los datos transformados en un destino final, como una base de datos o un almacenamiento de datos.
Los procesos ETL se utilizan a menudo para integrar datos de diferentes fuentes y prepararlos para su análisis o uso en otras aplicaciones. Por ejemplo, una empresa podría utilizar un pipeline ETL para extraer datos de diversas bases de datos, transformarlos en un formato común y cargarlos en un almacenamiento de datos para su análisis posterior.
"si basura entra, basura sale"
Un pequeño error en los datos puede hacer cambiar el rumbo de las decisiones de forma exponencial. En mi opinión, es la parte más interesante de la ciencia de datos.
Excelente artículo @alarcon7a, me ayudaste a entender un poco mejor el tipo de pipeline ETL.
Gracias Carlos! Me parece precisa y clara la explicación sobre qué es un ETL. Especialmente porque me estoy iniciando en la via de Ciencia de Datos y me resultaba confuso este proceso.
Gracias por este material de estudio
Gracias muy buena informacion
Muchas gracias me quedo muy claro
Creo que quedo claro y hasta este momento no hay duda.
Excelente explicación!
Excelenteeeeeeeeeeee … muchas gracias 😄
Increíble, estoy comezando a explotar todo el tema de los datos y este articulo fue tan bien explicado que lo entendí perfecto.
Agradecida con este aporte.
Excelente informacion, gracias por este blog me esta ayudando en mi aprendizaje en el Data Analytics