Skip to content

ApplicationScenarios pegelonline

Florian Fehring edited this page Oct 5, 2026 · 1 revision

Anwendungs-Szenario: Datenimport von pegelonline.wsv.de

Dieses Beispiel zeigt, wie Daten von der API pegelonline.wsv.de mit dem Importer und JSON Parser importiert werden können.

Hinweis: Die in diesem Beispiel verwendete Datenstruktur entspricht nicht dem Standard für SmartMonitoring. Die Stationen müssen eigentlich in die Tabelle "tbl_observedobject" importiert werden, die Koordinaten in die "tbl_location".

Einrichtung: Datenbank

In der Datenbank wird die Tabelle für die Speicherung angelegt. Die Namen der Tabellenspalten werden unten im JSON für die Importkonfiguration wieder verwendet.

CREATE TABLE smartmonitoring.stations (
	id bigserial NOT NULL,
	"number" varchar NULL,
	shortname varchar NULL,
	longname varchar NULL,
	km varchar NULL,
	agency varchar NULL,
	longitude varchar NULL,
	latitude varchar NULL,
	CONSTRAINT stations_pkey PRIMARY KEY (id)
);
CREATE TABLE smartmonitoring."gaugeZero" (
	id bigserial NOT NULL,
	unit varchar NULL,
	value varchar NULL,
	"validFrom" varchar NULL,
	CONSTRAINT "gaugeZero_pkey" PRIMARY KEY (id)
);

Einrichtung: Import der Stationen

{
  "server":"http://epigraf01.ad.fh-bielefeld.de:8080/",
  "smartdata":"SmartDataGewaesser",
  "storage":"smartmonitoring",
  "collection":"stations",
  "parser":"JSONParser",
  "importer":"HTTPImporter",
  "url":"https://www.pegelonline.wsv.de/webservices/rest-api/v2/waters.json?includeStations=true&includeTimeseries=true",
  "json_mapping":[
    {
      "collection":"stations",
      "mappingdata":[
        {
          "path":"/stations/number",
          "dbcolumn":"number"
        },
        {
          "path":"/stations/shortname",
          "dbcolumn":"shortname"
        },
        {
          "path":"/stations/longname",
          "dbcolumn":"longname"
        },
        {
          "path":"/stations/km",
          "dbcolumn":"km"
        },
        {
          "path":"/stations/agency",
          "dbcolumn":"agency"
        },
        {
          "path":"/stations/longitude",
          "dbcolumn":"longitude"
        },
        {
          "path":"/stations/latitude",
          "dbcolumn":"latitude"
        }
       ]
      },
      {
        "collection":"gaugeZero",
        "mappingdata":[
          {
            "path":"/stations/timeseries/gaugeZero/unit",
            "dbcolumn":"unit"
          },
          {
            "path":"/stations/timeseries/gaugeZero/value",
            "dbcolumn":"value"
          },
          {
            "path":"/stations/timeseries/gaugeZero/validFrom",
            "dbcolumn":"validFrom"
          }
        ]
      }
  ]
}

Nutzung: Einmaliger Import

Für einen einmaligen Import kann das obige JSON per HTTP-POST an den SmartDataPorter gesendet werden.

POST http://localhost:8080/SmartDataPorter/smartdataporter/import

Clone this wiki locally