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 DWHrclone.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.