Extracción de datos de fuentes estructuradas

ETL y ELT en Python

Jake Roach

Data Engineer

Sistemas de origen

En este curso:

  • Archivos CSV
  • Archivos Parquet
  • Archivos JSON
  • Bases de datos SQL

También obtenemos datos de:

  • APIs
  • Data lakes
  • Data warehouses
  • Web scraping
  • ... y muchos más
ETL y ELT en Python

Leer archivos Parquet

Archivos Parquet:

  • Formato de archivo de columnas, de código abierto, diseñado para almacenamiento y lectura eficientes
  • Similar a trabajar con archivos CSV
import pandas as pd

# Read the parquet file into memory
raw_stock_data = pd.read_parquet("raw_stock_data.parquet", engine="fastparquet")
1 https://www.databricks.com/glossary/what-is-parquet
ETL y ELT en Python

Conexión a bases de datos SQL

  • Puedes extraer datos de bases de datos SQL a un DataFrame de pandas
  • Requiere un URI de conexión para crear un engine y conectarte a la base de datos
import sqlalchemy
import pandas as pd

# Connection URI: schema_identifier://username:password@host:port/db
connection_uri = "postgresql+psycopg2://repl:password@localhost:5432/market"
db_engine = sqlalchemy.create_engine(connection_uri)
# Query the SQL database
raw_stock_data = pd.read_sql("SELECT * FROM raw_stock_data LIMIT 10", db_engine)
ETL y ELT en Python

Modularidad

Separar la lógica en funciones

  • Mejora la legibilidad del pipeline
  • Sigue el principio «no te repitas»
  • Acelera la resolución de problemas
def extract_from_sql(connection_uri, query):
    # Create an engine, query data and return DataFrame
    db_engine = sqlalchemy.create_engine(connection_uri)
    return pd.read_sql(query, db_engine)

extract_from_sql("postgresql+psycopg2://.../market", "SELECT ... LIMIT 10;")
ETL y ELT en Python

¡Vamos a practicar!

ETL y ELT en Python

Preparing Video For Download...