Zum Inhalt

Daten-Ingestion mit RenkuLab

Dieses Projekt nutzt RenkuLab für reproduzierbare Sessions und persistente Datenablage. Die öffentlichen APIs werden durch Code im Repository abgefragt; RenkuLab Data Connectors stellen die eingebundenen Ordner für Rohdaten und kuratierte Daten bereit.

Repository-Struktur

configs/sources.yml      # Registry der Datenquellen
scripts/ingest.py        # erster Ingestion-Runner
data/raw/                # lokale Rohdaten-Snapshots, von Git ignoriert
data/curated/            # lokale bereinigte MVP-Ergebnisse, von Git ignoriert
environment.yml          # Python/Jupyter-Umgebung für RenkuLab

data/raw/ und data/curated/ werden nicht in Git versioniert. Lokal schreibt das Ingestion-Skript direkt dorthin. In RenkuLab werden Data Connectors als Ordner neben dem Repository eingebunden, zum Beispiel ../govtech-raw und ../govtech-curated. Skript und Notebook nutzen diese Renku-Mounts automatisch, wenn sie vorhanden sind.

Lokaler Test

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

Jeder erfolgreiche Lauf schreibt zwei Dateien:

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

Die Datei metadata.json enthält Quelle, Zugriffspfad, Format und den konkreten Zeitpunkt der Abfrage.

RenkuLab-Schritte

  1. Projekt in RenkuLab erstellen oder öffnen.
  2. GitHub-Repository https://github.com/allsparkswiss-hub/GovTECH verbinden.
  3. Branch renku-data-connectors auswählen.
  4. Data Connector govtech-raw aus dem Google-Drive-Ordner GovTECH-Renku/raw erstellen.
  5. Data Connector govtech-curated aus dem Google-Drive-Ordner GovTECH-Renku/curated erstellen.
  6. Session Launcher aus dem Repository und environment.yml erstellen.
  7. Session starten und Ingestion testen:
python scripts/ingest.py --list
python scripts/ingest.py --all
find ../govtech-raw -maxdepth 3 -type f | head

Derselbe Befehl python scripts/ingest.py --all funktioniert lokal und in RenkuLab. Das lokale Standardziel ist data/raw; das Renku-Fallback-Ziel ist ../govtech-raw.

MVP-Quellen

Der erste MVP-Lauf nutzt dreizehn aktivierte Quellen:

  • opendata_swiss
  • sfoe_energy_balance_csv
  • meteo_swiss_smn
  • geoadmin_army_nature_landscape
  • geoadmin_civil_protection_meeting_points
  • geoadmin_surface_runoff_hazard
  • geoadmin_nuclear_emergency_zones
  • armasuisse_st_publications
  • aramis_armasuisse_research_projects
  • parliament_affairs
  • lindas
  • fedlex
  • bfs_pxweb

Die Quellen decken Energie, Klima/Wetter, Bevölkerungsexposition, öffentliche Geodaten, armasuisse-Technologiepublikationen, Bundesforschungsprojekte, parlamentarische Signale und regulatorische Signale ab. Die Daten bleiben zunächst als Roh-Snapshots unter data/raw/; daraus können später kuratierte Tabellen und Indikatoren unter data/curated/ entstehen.