Skip to main content

Struttura della repository

Questa sezione descrive l’organizzazione dei file e delle cartelle presenti nella repository. L’obiettivo Γ¨ fornire una guida chiara su dove si trovano gli script, quali sono i file di configurazione principali e come mantenere la repository coerente nel tempo.


πŸ“‚ Struttura delle directory

dwh_utility/
#β”œβ”€β”€ .env            # (Presente solo nella macchina) Variabili di ambiente
β”œβ”€β”€ afc/                   # ETL relativi a stime e dati AFC
β”œβ”€β”€ affitti_soggiorni/     # ETL per file degli affitti e soggiorni
β”œβ”€β”€ auto/                  # ETL per flotte auto, carburanti e trasporti
β”œβ”€β”€ autonoleggi/           # ETL per file degli autonoleggi
β”œβ”€β”€ business_central/      # ETL per integrazione con Business Central
β”œβ”€β”€ calcolo_distanze_api/  # ETL per servizio calcolo distanze con API Google
β”œβ”€β”€ dropbox_procedures/    # ETL legati a file presenti in Dropbox
β”œβ”€β”€ jotform/               # ETL per integrazione Jotform API
β”œβ”€β”€ kanban/                # ETL per integrazione con Kanban tool API
β”œβ”€β”€ mysond/                # Dump completo del DB di MySond
β”œβ”€β”€ onedrive_procedures/   # ETL legati a file presenti in Dropbox
β”œβ”€β”€ procedure_postgres/    # Script per procedure e task Postgres
β”œβ”€β”€ treni/                 # ETL da portali ferroviari e file (Trenitalia, Italo, ecc.)
β”œβ”€β”€ voli/                  # ETL da file voli
.
.
.
β”‚
β”œβ”€β”€ db_utils.py            # Modulo comune: connessioni e query DB
β”œβ”€β”€ dropbox_utils.py       # Modulo comune: interazioni con Dropbox
β”œβ”€β”€ dwh_procedures.py      # Procedure comuni per gestione DWH
β”œβ”€β”€ log_config.py          # Configurazione logging standardizzata
β”œβ”€β”€ data_types_inference.py   # Utility per inferenza automatica tipi dati da Dataframe
β”‚
#β”œβ”€β”€ dwh_table_mappings.json       # (Presente solo nella macchina) Mapping globale tabelle DWH 
β”‚
β”œβ”€β”€ docker-compose-*.yml   # Configurazioni per ambienti (dev/test/prod)
β”œβ”€β”€ Dockerfile             # Build immagine container
#β”œβ”€β”€ rclone.conf            # (Presente solo nella macchina) Configurazione rclone per sync file
β”‚
β”œβ”€β”€ requirements.txt       # Dipendenze Python
β”œβ”€β”€ README.md              # Documentazione introduttiva
β”œβ”€β”€ run_test/              # Script di test per Ansible

 

πŸ“ Convenzioni di naming

  • Cartelle principali: raggruppano script ETL per dominio/fonte (es. treni/, auto/, dropbox_procedures/).

  • Script Python: segue la logica nome_fonte.py β†’ ogni file corrisponde a un processo ETL indipendente.

  • File comuni:

    • db_utils.py β†’ funzioni di connessione e query Postgres

    • dwh_procedures.py β†’ procedure generiche lato DWH

    • log_config.py β†’ setup logging uniforme

πŸ“Œ File principali

  • requirements.txt β†’ librerie Python richieste (versioni incluse).

  • docker-compose-*.yml β†’ configurazioni ambienti dev, test, prod.

  • Dockerfile β†’ build container standardizzato.

  • README.md β†’ istruzioni introduttive.

  • dwh_table_mappings.json β†’ Mappatura dei nomi e datatype da CSV a tabelle DWH
  • rclone.conf  β†’ configurazione rclone sync (OneDrive, Dropbox, ecc.).

πŸ“š Linee guida di manutenzione

  • Ogni nuova fonte dati deve avere una propria cartella dedicata (es. nuova_fonte/fonte_1_script.py).

  • Le librerie aggiuntive devono essere dichiarate in requirements.txt.

  • I mapping tabelle devono essere aggiornati in dwh_table_mappings.json.

  • Gli script devono utilizzare moduli comuni (db_utils, log_config) per garantire uniformitΓ .

  • La documentazione relativa a ciascun ETL va aggiunta nel capitolo Processi ETL.