Skip to main content

Organizzazione degli script ETL

Questa sezione descrive come sono strutturati gli script Python della repository e quali pattern comuni devono seguire.
L’obiettivo è garantire uniformità nello sviluppo e nella manutenzione, così da facilitare debugging, schedulazione e documentazione.

Gli script ETL si possono dividere in due famiglie operative:

  1. File-based ETL: leggi Excel/CSV (Dropbox/OneDrive) → trasformi → salvi CSV → carichi nel DWH.

  2. API/Webscraping-based ETL: interroghi API/ fai Webscraping→ trasformi → (opz.) salvi CSV → carichi nel DWH.

Oltre a questo possono esserci script che si occupano di altri task di manutenzione o utility.

đź§© Struttura logica comune (pattern ETL)

Moduli condivisi

  • db_utils.py → connessioni Postgres, DDL/DML helper (create table, upsert, drop by values, insert batch), e funzioni generiche

  • dropbox_utils.py / → accesso allo storage di Dropbox e OneDrive tramite rclone

  • log_config.py → logger uniforme (integrazione con Grafana via extra/fields)

Fasi

  • EXTRACT → file o API

  • TRANSFORM → rename mapping, casting, ed eventuale salvataggio temporaneo in CSV

  • LOAD → creazione di nuove tabelle, upsert/drop di nuovi dati nel DWH

🗂️ Tipologia A — File-based ETL (Dropbox/OneDrive → DWH)