Ingestion de donnees avec RenkuLab¶
Ce projet utilise RenkuLab pour des sessions reproductibles et un stockage de donnees persistant. Les API publiques sont appelees par le code du repository; les Data Connectors RenkuLab fournissent les dossiers montes pour les donnees brutes et les donnees preparees.
Structure du repository¶
configs/sources.yml # registre des sources
scripts/ingest.py # premier runner d'ingestion
data/raw/ # snapshots bruts locaux, ignores par Git
data/curated/ # resultats MVP nettoyes locaux, ignores par Git
environment.yml # environnement Python/Jupyter pour RenkuLab
data/raw/ et data/curated/ ne sont pas versionnes dans Git. En local, le
script d'ingestion ecrit directement dans ces dossiers. Dans RenkuLab, les Data
Connectors sont montes comme dossiers voisins du repository, par exemple
../govtech-raw et ../govtech-curated. Le script et le notebook utilisent
automatiquement ces montages Renku quand ils existent.
Test local¶
python scripts/ingest.py --list
python scripts/ingest.py --source opendata_swiss
Chaque execution reussie ecrit deux fichiers:
data/raw/<source_id>/<timestamp>/payload.json
data/raw/<source_id>/<timestamp>/metadata.json
metadata.json contient la source, le chemin d'acces, le format et le moment
exact de recuperation.
Etapes RenkuLab¶
- Creer ou ouvrir le projet dans RenkuLab.
- Connecter le repository GitHub
https://github.com/allsparkswiss-hub/GovTECH. - Selectionner la branche
renku-data-connectors. - Creer un Data Connector
govtech-rawdepuis le dossier Google DriveGovTECH-Renku/raw. - Creer un Data Connector
govtech-curateddepuis le dossier Google DriveGovTECH-Renku/curated. - Creer un session launcher depuis le repository et
environment.yml. - Demarrer une session et tester l'ingestion:
python scripts/ingest.py --list
python scripts/ingest.py --all
find ../govtech-raw -maxdepth 3 -type f | head
La meme commande python scripts/ingest.py --all fonctionne en local et dans
RenkuLab. La cible locale par defaut est data/raw; la cible de fallback Renku
est ../govtech-raw.