Zum Inhalt

Prozess: Datensatz hochladen (CSV)

Das Hochladen eines CSV-Datensatzes ist einer der fachlichen Kernprozesse der ODI. Er bündelt in einem einzigen Aufruf die Qualitätssicherung, das Anlegen des Datensatzes, die Erzeugung mehrerer Repräsentationen, die Veröffentlichung und – je nach Dateninhalt – die geografische Aufbereitung.

Dieses Kapitel beschreibt die fachliche Ablauflogik hinter dem Endpunkt POST /upload/csv des Staging-Backends. Technische Details der Schnittstelle (Felder, Beispiele, Authentifizierung) finden sich in der API-Referenz und im Guide Datensatz hochladen per API. Die Einordnung des Staging-Backends in das Gesamtsystem zeigt die Architektur-Übersicht.

Auf einen Blick

Der Aufruf übergibt in einem HTTP-Multipart-Request die CSV-Datei zusammen mit ihren Metadaten und einem Zugriffstoken. Das Backend prüft die Daten, legt – nur bei erfolgreicher Prüfung – einen Datensatz an, erzeugt daraus mehrere Formate und veröffentlicht das Ergebnis. Optional werden enthaltene Geodaten zusätzlich als Geodienste bereitgestellt.

Fachlicher Ablauf des CSV-Datensatz-Uploads – kompakt

Fachlicher Ablauf des CSV-Datensatz-Uploads – ausführlicher Erstentwurf

Eingaben

Eingabe Beschreibung
CSV-Datei Die hochzuladenden Daten.
Schema-Bezug schemaId + schemaVersion – verweist auf das erwartete Schema im Schema-Repository.
Lese-Parameter delimiter (Trennzeichen), encoding (Zeichensatz), optional quote – beschreiben, wie die CSV-Datei zu lesen ist.
Metadaten Titel, Beschreibung, Lizenz, Publisher, Kategorien, Raumbezug, Zeitbezug (Start-/Enddatum), Katalog, frei wählbare Datensatz-ID.
Token Keycloak-JWT für Authentifizierung und Autorisierung.

Der Ablauf Schritt für Schritt

1. Anfrage prüfen & CSV validieren

Zu Beginn werden in einem Schritt die Voraussetzungen geschaffen:

  • Authentifizierung & Autorisierung: Das mitgelieferte JWT wird geprüft; aus den enthaltenen Berechtigungen wird abgeleitet, ob der Aufrufer Datensätze anlegen und veröffentlichen darf.
  • Schema laden: Anhand von schemaId und schemaVersion wird das passende Schema aus dem Schema-Repository geladen. Es beschreibt die erwartete Struktur der Daten (Spalten, Datentypen, ggf. Geo-Felder).
  • CSV validieren: Die CSV-Datei wird anhand der übergebenen Parameter (Trennzeichen, Zeichensatz, Quote) eingelesen und auf Verarbeitbarkeit geprüft.

Schlägt einer dieser Punkte fehl (ungültiges Token, fehlende Berechtigung, unbekanntes Schema, nicht lesbare Datei), wird der Vorgang abgebrochen.

2. Validierung gegen das Schema ⟸ Entscheidungspunkt

Die eingelesenen Daten werden inhaltlich gegen das Schema geprüft (Frictionless-Prüfung): Stimmen Spalten, Datentypen und Regeln?

Validierung ist der Türsteher

Ist die Datei nicht gültig, bricht der Prozess hier ab. Es wird eine Fehlerliste zurückgegeben und kein Datensatz angelegt. So gelangen niemals fehlerhafte oder unvollständige Datensätze in den Katalog. Erst bei erfolgreicher Validierung geht es weiter.

3. Datensatz im Datenkatalog anlegen

Aus den Metadaten wird ein Datensatz im Datenkatalog erzeugt. Die Datensatz-Beschreibung wird dabei automatisch um eine aus dem Schema generierte fachliche Beschreibung ergänzt. Ab hier existiert der Datensatz und erhält seine Identität (datasetId).

4. Repräsentationen erzeugen & ablegen

Zum Datensatz werden mehrere Distributionen (Repräsentationen derselben Daten) erzeugt und abgelegt, damit unterschiedliche Nutzungsszenarien bedient werden:

Repräsentation Zweck
CSV (Original) unveränderte Ausgangsdatei inkl. Hinweis auf Zeichensatz und Trennzeichen
Tabular Data Resource (TDR) formale, maschinenlesbare Beschreibung der Tabelle
Parquet spaltenorientiertes Format für analytische Verarbeitung
JSON bequeme programmatische Weiterverarbeitung

5. RDF erzeugen → Semantic Data

Aus dem Datensatz wird eine RDF-Repräsentation erzeugt und an den Triple Store übergeben. Damit werden die Daten Teil des Linked-Open-Data-Bestands und später über den SPARQL-Endpunkt abfragbar.

6. Geodaten-Zweig ⟸ Entscheidungspunkt (optional)

Enthält das Schema Geo-Felder, durchläuft der Datensatz zusätzlich die geografische Aufbereitung:

  1. CSV → GeoJSON konvertieren
  2. GeoJSON und GeoParquet in den Datenkatalog hochladen
  3. GeoJSON in die GIS-Datenbank / den UDP-Manager übernehmen
  4. Datensatz mit dem Masterportal (Kartenansicht) verlinken
  5. WFS- und WMS-Dienst verknüpfen

Geodaten sind ein zusätzlicher, robuster Zweig

Enthält das Schema keine Geo-Felder, wird dieser Zweig übersprungen. Tritt innerhalb des Geodaten-Zweigs ein Fehler auf, wird er protokolliert, bricht den Upload aber nicht ab – der eigentliche Datensatz bleibt erhalten und gültig.

7. Datensatz veröffentlichen

Zum Abschluss wird der Datensatz veröffentlicht: Er erhält eine Portal-/Katalog-URL und ist damit im Datenkatalog auffindbar. Der Aufruf liefert die datasetId und die datasetUrl zurück. Je nach Aufbereitung ist der Datensatz zusätzlich als Linked Open Data und als Geodienst verfügbar.

Zusammenfassung der Entscheidungspunkte

Entscheidung „Ja“ „Nein“
CSV gültig gegen Schema? (Schritt 2) Weiter: Datensatz anlegen Abbruch mit Fehlerliste, kein Datensatz
Schema enthält Geo-Felder? (Schritt 6) Geodaten-Zweig durchlaufen (Fehler nicht fatal) Geodaten-Zweig überspringen

Verwandte Prozesse

Der Endpunkt POST /upload/csv ist Teil einer Familie von CSV-Operationen des Staging-Backends:

  • PUT /upload/csv/overwrite/{datasetId} – einen bestehenden Datensatz mit einer neuen CSV-Datei überschreiben.
  • PUT /upload/csv/complete/{datasetId} – einen Datensatz abschließen/vervollständigen.
  • POST /upload/csv/append – Daten an einen bestehenden Datensatz anhängen.

Diese folgen demselben fachlichen Grundgedanken (validieren → schreiben → veröffentlichen) und sind in der API-Referenz beschrieben.