Vai al contenuto

Ingestione dati con RenkuLab

Questo progetto usa RenkuLab per sessioni riproducibili e archiviazione dati persistente. Le API pubbliche sono chiamate dal codice nel repository; i Data Connector di RenkuLab forniscono le cartelle montate per dati grezzi e dati preparati.

Struttura del repository

configs/sources.yml      # registro delle fonti
scripts/ingest.py        # primo runner di ingestione
data/raw/                # snapshot grezzi locali, ignorati da Git
data/curated/            # output MVP puliti locali, ignorati da Git
environment.yml          # ambiente Python/Jupyter per RenkuLab

data/raw/ e data/curated/ non sono versionati in Git. In locale, lo script di ingestione scrive direttamente in queste cartelle. In RenkuLab, i Data Connector sono montati come cartelle vicine al repository, per esempio ../govtech-raw e ../govtech-curated. Lo script e il notebook usano automaticamente questi mount Renku quando esistono.

Test locale

python scripts/ingest.py --list
python scripts/ingest.py --source opendata_swiss

Ogni esecuzione riuscita scrive due file:

data/raw/<source_id>/<timestamp>/payload.json
data/raw/<source_id>/<timestamp>/metadata.json

metadata.json contiene fonte, percorso di accesso, formato e timestamp concreto del recupero.

Passi in RenkuLab

  1. Creare o aprire il progetto in RenkuLab.
  2. Connettere il repository GitHub https://github.com/allsparkswiss-hub/GovTECH.
  3. Selezionare il branch renku-data-connectors.
  4. Creare un Data Connector govtech-raw dal folder Google Drive GovTECH-Renku/raw.
  5. Creare un Data Connector govtech-curated dal folder Google Drive GovTECH-Renku/curated.
  6. Creare un session launcher dal repository e da environment.yml.
  7. Avviare una sessione e testare l'ingestione:
python scripts/ingest.py --list
python scripts/ingest.py --all
find ../govtech-raw -maxdepth 3 -type f | head

Lo stesso comando python scripts/ingest.py --all funziona in locale e in RenkuLab. Il target locale predefinito e data/raw; il target di fallback Renku e ../govtech-raw.