Saltar a contenido

05. Pipeline ETL

La capa ETL consiste en tres repositorios Python especializados que ingieren, transforman y cargan datos climáticos en la base de datos de AClimate v3.

Vista General del Pipeline

flowchart LR
    subgraph "Fuentes de Datos"
        ERA5[ERA5]
        CHIRPS[CHIRPS]
        AGERA5[AgERA5]
        STATIONS[Estaciones Meteorológicas<br/>IDEAM, METOS, etc.]
    end

    subgraph "Procesamiento ETL"
        CSD[cut_spatial_data<br/>Recorte Espacial]
        HSE[historical_spatial_etl<br/>Datos Grillados]
        HLE[historical_location_etl<br/>Datos de Estaciones]
    end

    subgraph "Salida"
        DB[(PostgreSQL<br/>BD AClimate)]
        SDB[(BD Espacial<br/>AClimate)]
    end

    ERA5 --> CSD
    CHIRPS --> CSD
    CSD --> HSE
    HSE --> SDB
    STATIONS --> HLE
    HLE --> DB

Vista General de Repositorios

Repositorio Propósito Tipo de Procesamiento
aclimate_cut_spatial_data Recorte espacial de conjuntos de datos climáticos (NetCDF, GeoTIFF) usando shapefiles, GeoServer o geometrías PostGIS Preprocesamiento raster
aclimate_v3_historical_spatial_etl Procesamiento de datos climáticos grillados (ERA5, CHIRPS, datos locales) Indicadores espaciales y agregación
aclimate_v3_historical_location_etl Procesamiento de datos climáticos de estaciones Indicadores puntuales, control de calidad

Controles de Calidad de Datos

Todos los ETL implementan los siguientes controles de calidad:

Verificación Descripción Acción en caso de fallo
Validación de esquema Los datos coinciden con el esquema ORM Registro rechazado, registrado
Validación de rango Valores dentro de límites esperados Marcado, registrado
Completitud Campos obligatorios presentes Registro rechazado
Detección de duplicados Registros existentes verificados Omitido o actualizado

Idempotencia

Todos los ETL están diseñados para ser idempotentes: misma entrada más misma configuración produce la misma salida. Las ejecuciones duplicadas no crean registros duplicados. El reprocesamiento se puede activar para rangos de tiempo o ubicaciones específicas.

Contenido de la Sección