Volver al curso

Data Engineering con Python: Pipelines y Big Data

leccion
4 / 12
advanced
32 horas
ETL/ELT: Diseno y Construccion de Pipelines

ETL vs ELT: Patrones de Diseno para Pipelines Modernos

Lectura
45 min~1 min lectura

ETL vs ELT: Eligiendo la Arquitectura Correcta

La decision entre ETL y ELT impacta directamente en costos, velocidad de desarrollo y escalabilidad. En Latinoamerica, la tendencia clara es hacia ELT gracias a data warehouses cloud como BigQuery y Snowflake.

AspectoETL TradicionalELT Moderno
TransformacionAntes de cargarDespues de cargar (en warehouse)
EscalabilidadLimitada por servidor ETLIlimitada (warehouse escala)
CostoInfraestructura propiaPay-per-query (cloud)
Velocidad devLento (Java/Scala)Rapido (SQL + dbt)
HerramientasInformatica, Talend, SSISFivetran + dbt + BigQuery

Capas del Data Warehouse

Raw/Bronze: Datos crudos sin transformaciones.
Staging/Silver: Datos limpiados y tipados.
Marts/Gold: Modelos dimensionales para consumo.

import httpx
import polars as pl
import boto3

class APIExtractor:
    def __init__(self, base_url, api_key):
        self.client = httpx.Client(
            base_url=base_url,
            headers={'Authorization': f'Bearer {api_key}'},
            timeout=30.0
        )
    
    def extract_paginated(self, endpoint, date_from, date_to):
        all_records = []
        page = 1
        while True:
            resp = self.client.get(endpoint, params={
                'date_from': date_from, 'date_to': date_to,
                'page': page, 'per_page': 1000
            })
            resp.raise_for_status()
            records = resp.json().get('results', [])
            if not records: break
            all_records.extend(records)
            page += 1
        return all_records

    def load_to_s3(self, records, bucket, key):
        df = pl.DataFrame(records)
        buf = df.write_parquet(None)
        boto3.client('s3').put_object(Bucket=bucket, Key=key, Body=buf)
        return len(records)

🚀 Stack Recomendado

Para startups LATAM: Airbyte (extraccion, open source) + BigQuery (warehouse, free tier generoso) + dbt (transformaciones) + Metabase (dashboards). Costo total: ~USD 50/mes para empezar.

Dashboard de datos

Con estos patrones dominados, pasemos a dbt, la herramienta que revoluciono las transformaciones.