Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

ETL

10/38
Recursos

ETL = Extract Transform Load

Extract: Es el proceso de lectura de datos de diversas fuentes

  • Base de datos
  • CRM
  • Archivos CSV
  • Datasets públicos

Transform: En este momento cuando nosotros tenemos que transformar los datos, tenemos que identificar datos faltantes o datos erróneos o una edad negativa. En esta etapa donde tenemos que identificar todos los problemas y solucionarlos.

  • Limpieza
  • Estructurado
  • Enriquecimiento.

Load: Una vez transformados debemos insertarlos en el data warehouse

  • Depende del tipo de solución que se haya escogido

Aportes 46

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Bastante bueno el marco teórico del curso hasta ahora. Por si alguien gusta, les dejo los apuntes del curso:

<h1>Curso de Ingeniería de Datos con Python</h1>

¿Que es la Ciencia e Ingenieria de Datos?

La Ciencia de Datos es la disciplina que se encarga de extraer conocimiento de los datos disponibles. Casi siempre cuando te realizas una pregunta sobre datos estas fuentes se encuentra escondidas, ocultas o de difícil acceso. A nuestro alrededor hay datos en tu computadora, mesa, reloj, etc.

Los datos están por todas partes.

La Ciencia de datos es multidisciplinaria. A diferencia de muchos otros ámbitos profesionales dentro del mundo de la tecnología, cuando hablamos de un científico de datos es una persona que sabe de matemáticas, ingeniería de software y sabe de negocios.

Se apoya en la Computer science, Matemáticas(Regresiones e Inferencias),

También se auxilia de:

  • Bases de Datos
    • SQL y NoSQL
  • Análisis de texto y procesamiento de lenguaje natural
  • Análisis de redes
  • Visualización de datos
  • Machine learning e Inteligencia Artificial
  • Análisis de señales digitales
  • Análisis de datos en la nube(Big Data)

Roles

Existen por lo menos tres diferentes roles para tener un pipeline completo de ciencia de datos. Este curso trata sobre el primer rol:

  • Data engineer

    • Se encarga de obtener los datos
    • Limpiarlos y estructurarlos para posterior análisis
    • Crear pipelines de análisis automatizado
    • Utilización de herramientas en la nube
    • Análisis descriptivo de los datos.
  • Data scientist

    • Una vez tiene los datos se encarga de generar el análisis matemático de ellos
    • Encuentra las relaciones entre las variables, las correlaciones, las causas
    • Genera los modelos predictivos y prescriptivos.
  • Machine Learning engineer

    • Se encarga de llevar las predicciones a escala
    • Subirlos a la nube
    • En la nube, generar muchas predicciones
    • Se encarga de mantener la calidad del modelo.

Configuración del ambiente

Anaconda es una instalación de Python que ya trae preinstalado todos los paquetes necesarios para tu labor en la Ciencia de Datos, tiene más de 1400 paquetes. Nos permite configurar ambientes virtuales para poder utilizar diferentes versiones de nuestros paquetes.

conda --version # para conocer la versión y saber que lo tenemos instalado
conda --help # nos da todos los comandos que podemos usar.
conda list # nos lista todos los paquetes que Anaconda instaló.

Una buena práctica es generar un ambiente virtual por cada proyecto, los ambientes virtuales nos permiten generar varios proyectos con diferentes versiones de la librería sin generarnos errores de compatibilidad. Tradicionalmente en Python se utiliza virtualenv.

conda create --name [nombre-del-proyecto] [librerías-a-usar]
conda create --name platzi-data beautifulsoup4 requests numpy pandas matplotlib yaml
source activate platzi-data # Para activar
source deactivate # Para salir

conda env list # nos muestra los ambientes virtuales que tenemos
conda remove --name [nombre-del-proyecto] --all # eliminar nuestro entorno virtual con todos nuestros paquetes

Jupyter Notebook

Algo interesante que tenemos con Anaconda es que nos trae Jupyter Notebooks.

Jupyter Notebooks es un entorno de programación en el cual podemos mezclar ejecución de código en vivo, visualizaciones y añadir markdown.

Para inicializar nuestro servidor de jupyter, escribimos en el command line: jupyter notebook.

Jupyter Notebook tiene diferentes tipos de celdas en las cuales podemos escribir código o markdown. Si queremos ejecutar nuestro código hacemos ctrl + enter y si queremos ejecutar y añadir una nueva celda shift + enter.

Jupyter Notebook tiene dos modalidades, la modalidad de edición y navegación.

Tipos de datos

Los datos vienen en mucha formas y estas formas las podemos clasificar de diferentes maneras, permitiéndonos poder aplicar técnicas distintas a cada uno de los tipos de datos.

Los primeros datos son los primitivos.

  • int,
  • str,
  • bool,
  • float,
  • hex,
  • oct,
  • datetime,
  • objetos especiales
from datetime import datetime

integer_type = 42
float_type = 3.14159
bool_type = False
hex_type = 0xff
oct_type = 0o23
today = datetime.now()
str_type = 'Jesus'

Tenemos clasificaciones ulteriores como:

  • Los datos estructurados: son los más fáciles de acceder
    • Bases de datos
    • Data warehouses
  • Semi estructurados: son con los que podemos utilizar APIs
    • json API
    • Datos tabulares (csv, excel)
  • no estructurados: la mayoría de datos que vamos a tener disponibles están clasificados aquí
    • HTML
    • Texto libre
    • Currículums vitae
    • Imágenes, audio, social media
    • Datos científicos
  • Cualitativos vs cuantitativos
  • Tiempo real vs históricos

Fuentes de datos

  • Web

Es una mina enorme con datos financieros, de startups, del clima, precipitación fluvial, astronómicos, de negocios, etc.

  • APIs

Endpoints que viven en la web y nos devuelven JSON. Por ejemplo, la API de twitter, google, facebook.

  • User Analytics

Son el comportamiento del usuario dentro de nuestra aplicaciones, algo similiar a los que nos ofrece Google Analytics.

  • IoT

Se ha vuelto una mina espectacular en los últimos años. Como automóviles.

<h3>Links de fuentes de datos</h3>

ETL (Extract Transform Load)

Extract: Es el proceso de lectura de datos de diversas fuentes

  • Base de datos
  • CRM
  • Archivos CSV
  • Datasets públicos

Transform: En este momento cuando nosotros tenemos que transformar los datos, tenemos que identificar datos faltantes o datos erróneos o una edad negativa. En esta etapa donde tenemos que identificar todos los problemas y solucionarlos.

  • Limpieza
  • Estructurado
  • Enriquecimiento.

Load: Una vez transformados debemos insertarlos en el data warehouse

  • Depende del tipo de solución que se haya escogido

En caso que quieran la versión de Markdown para descargar, pueden tomarla de aquí

Saludos 👋

Un Datawarehouse es una base de datos corporativa que se caracteriza por integrar y depurar información de una o más fuentes distintas, para luego procesarla permitiendo su análisis desde infinidad de pespectivas y con grandes velocidades de respuesta.

Dado que estoy aprendiendo desde cero muchos terminos, vi este video que me parecio útil, no sólo hablan de data warehouse sino de otros tipos como data lakes y data marts, pero tal vez simplificando mucho la info, se puede decir que son servidores o básicamente unidades de almacenamiento como discos duros.

https://www.youtube.com/watch?v=LZ17kISv5Ag

Diferentes herramientas para hacer ETL con Python:

.
-🔧 Apache Airflow

Los procesos ETL son un término estándar que se utiliza para referirse al movimiento y transformación de datos. Se trata del proceso que permite a las organizaciones mover datos desde múltiples fuentes, reformatearlos y cargarlos en otra base de datos (denominada data mart o data warehouse) con el objeto de analizarlos. También pueden ser enviados a otro sistema operacional para apoyar un proceso de negocio.

Si no se entendió muy bien el concepto de los data warehouses.

¿Qué es un Data Warehouse?

Es el lugar donde almacenaremos los datos que iremos extrayendo.

Es Crucial tener un buen diseño de los data warehouse para explotar la información.

Se componen por fragmentos derivados del data warehouse conocidos como DATAMARTS. A su vez esto datamarts tienen modelos conocidos como:
• Estrella
• Snowflake (copo de hielo)

La funcionalidad que cumplen los data Warehouses son de almacenar nuestros datos para tenerlos disponibles para el posterior analisis.

Algo para resaltar es que un data Warehouse no es:
• Un software
• Una marca
• Una sola base de datos

Es decir, es una gran base de datos en general, compuesta (mayormente) por más de una base de datos.
En general podemos “abstaernos” o enfocarnos de los modelos logicos y fisicos de la base de datos.

Algo para resaltar del data WareHouses es que debe ser un sistema capaz de ser adaptado a los cambios, ya que los cambios en el mundo de los negocios son muy volatiles (cambian muy seguido).

Además antes de formar un data_Warehouses es indispensable seleccionar la información relevante que pueda aportar una utilidad a la empresa.



El científico de datos: un perfil multidisciplinario altamente especializado. … Concretamente, el científico de datos corresponde a un perfil profesional multidisciplinario, que cuenta con un nivel de estudios alto y que debe tener unas determinadas características y habilidades.

Esto ya se empieza a poner interesante

que chido

Muy bien explicado.

🅴🆃🅻 (Extract Transform Load)
 

  • 🅴 Obtenemos datos de una fuente de datos
  • 🆃 Los transformamos
  • 🅻 Los insertamos con posterioridad en otro sistema que nos va a permitir responder las preguntas que los Data Scientists y los Machine Learning Engineers van a necesitar en el futuro

Super el Tema… adelante…

excelente explicacion de etl.

Ahora si con el codigo

Muy buen tema y excelente explicación.

Hola, si les interesa lo del campo de biologia molecular / informatica NCBI es un lugar donde tambien se pueden encontrar datos interesantes para lo que es la ingenieria de datos

Cada vez mas ansioso por empezar con el codigo.-

Excelente inicio

Carambas! Me estoy emocionando que puedo echar chisme en la red

Excelente el proceso de los ETL

Muy buen modulo

interesante!

Increíble me gusta mucho este curso

Excelente exposición de ETL. Muchas gracias David

Awesome !!

Muy buena explicación de lo que es ETL.

para descargar la informacion de este curso:
https://github.com/platzi/platziData/archive/master.zip

entendido el proceso Extract Transform Load

Muuchas gracias profe, bien explicado

Fue un explicacion concreta y muy clara 😄

Podrian por favor compartir la imagen de ETL mostrada en este video? Es para el notebook que estoy creando del curso. Gracias!

Buena explicación.

Gracias.

Esta clase es más 'sigue el codigo' que explicar, me recuerda al profesor de matematicas que obvia explicaciones y se dedica a realizar operaciones porque eso 'se supone que lo vieron en el ciclo pasado'.

Uno de los trabajos más importantes del ingeniero de datos, es definir las estructuras de almacenamiento que necesitan los científicos de datos y entregarlos limpios y validados de acuerdo a las necesidades de los estudios.

El proceso de ETL es necesario el todo proceso de BI , ya sea con analisis services sql, o con herramientas que tiene inmersas esos procesos de ETL como Qlik sense que cuentan con su propio lenguaje.

https://www.talend.com/es/resources/what-is-etl/#:~:text=Extraer%2C transformar y cargar (ETL,centralizaci%C3%B3n%20en%20un%20%C3%BAnico%20repositorio.

[](

Buen resumen.

Claro que si, encontré, unas muy interesantes de amazon.

¿Qué es un data warehouse?

Es un almacén de datos es una colección de datos orientada a un determinado ámbito, integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza.