Zum Hauptinhalt springen
Daten integrieren · Speicherung

Daten speichern

Übergeben Sie den validierten Datensatz an das vereinbarte Ziel. Die Beispiele zeigen vier häufige Speicherwege über Stellio, FROST, PostgreSQL und einen S3-kompatiblen Objektspeicher.

Diese Anleitung beginnt mit dem unter Daten verarbeiten geprüften Nachrichtenvertrag. Fachliche Bedeutung, Pflichtwerte und Kennungen sind bereits geklärt. Hier wird daraus das Format des Zielsystems gebildet, der Schreibzugriff ausgeführt und der tatsächliche Erfolg nachgewiesen.

Eingang aus der Verarbeitung
{
"payload": [
{
"counting_station_id": "zaehlstelle-017",
"observed_at": "2026-08-19T08:00:00Z",
"vehicle_count": 126
}
],
"context": {
"runId": "2026-08-20T08:03:12.000Z-zaehlstelle-017"
}
}
Ziel und technischer Schreibzugang müssen vorbereitet sein

Ein Flow wählt sein Ziel nicht während der Ausführung beliebig aus. Zielkomponente, Datenraum, Datastream, Tabelle oder Bucket sowie die erlaubte Schreiboperation müssen vorher feststehen. Verwenden Sie einen zweckgebundenen technischen Zugang und keine persönlichen Passwörter oder dauerhaft hinterlegten Benutzertokens.

Vier beispielhafte Zielwege

Wählen Sie den Tab für das bereits vereinbarte Ziel. Die Beispiele sind keine freie Speicherentscheidung: Sie zeigen, wie derselbe validierte Datensatz für unterschiedliche, fachlich begründete Zielwege geschrieben wird.

Passt, wenn der aktuelle Zustand einer fachlichen Entität über NGSI-LD bereitgestellt werden soll. Entitätstyp, Attribute, stabile ID und JSON-LD-Kontext müssen zuvor in der Verarbeitung festgelegt sein.

1. NGSI-LD-Entitäten bilden

Das Beispiel verwendet einen projektspezifisch abgestimmten Typ. Es zeigt die technische Übersetzung des validierten Vertrags und ersetzt keine Modellentscheidung:

Function: NGSI-LD-Entitäten bilden
const contextUrl = "https://context.<DOMAIN>/contexts/traffic-count.jsonld";

msg.payload = msg.payload.map((row) => ({
id: `urn:ngsi-ld:TrafficCount:${row.counting_station_id}`,
type: "TrafficCount",
dateObserved: {
type: "Property",
value: row.observed_at
},
vehicleCount: {
type: "Property",
value: row.vehicle_count
},
"@context": [contextUrl]
}));

return msg;

2. Entitäten an Stellio übergeben

Mit der freigegebenen HYPERTEGRITY-Bibliothek sollte die Struktur bevorzugt über ngsi-builder aufgebaut und mit post-to-stellio geschrieben werden:

validierter Datensatz → ngsi-builder → post-to-stellio → switch(statusCode)
↘ kontrollierter Fehlerpfad
Stellio-Zugangsweg vor dem Einsatz klären

Der veröffentlichte post-to-stellio-Node der Bibliotheksversion 0.1.2 setzt den Datenraum-Header, unterstützt aber selbst keinen OAuth-Token für einen geschützten APISIX-Pfad. Verwenden Sie ihn nur mit einem dafür vorgesehenen internen Stellio-Zugang. Für einen geschützten externen Pfad benötigen Sie einen technischen Client und einen geeigneten HTTP-/Authentifizierungsweg.

Prüfen Sie nach dem Writer msg.statusCode. Auch 4xx- und 5xx-Antworten müssen in den Fehlerpfad laufen. Der Upsert muss bei derselben stabilen Entity-ID denselben fachlichen Zustand aktualisieren, statt eine zweite Entität anzulegen.

Die Stellio-Speicherung ist erfolgreich, wenn

der Writer den erwarteten Erfolgsstatus liefert und die Entität anschließend mit ihrer vollständigen ID im vorgesehenen Datenraum gelesen werden kann. Ein erfolgreicher Node-Durchlauf ohne API-Nachweis genügt nicht.

Passende Referenzen

Speicherung abschließen

Führen Sie die erste Speicherung mit gespeicherten Testdaten und deaktiviertem Produktiveingang durch. Prüfen Sie Erfolgsfall, ungültige Daten, wiederholte Zustellung und ein nicht erreichbares Ziel. Schalten Sie die laufende Quelle erst zu, wenn Writer und Fehlerpfad nachweislich funktionieren.

Versionieren Sie Flow, benötigte Node-Pakete und ungefährliche Testdaten. Dokumentieren Sie Ziel, technische Identität, erlaubte Schreiboperation, Wiederanlaufverhalten und den fachlichen Nachweis am Ziel.