ALKIS-Daten einlesen: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
Zeile 22: Zeile 22:
 
   OIDS=TRUE
 
   OIDS=TRUE
 
  );
 
  );
 +
 +
Diese Tabelle dient einerseits als Übersicht, was alles eingelesen wurde und andererseits kann damit verhindert werden, dass eine Datei doppelt eingelesen wird.
  
 
Wenn alle NAS-Dateien der Zip-Datei im Ordner "eingang" fehlerfrei eingelesen wurden, wird die Zip-Datei in den Ordner "eingelesen" verschoben. Tritt bei einer Datei ein Fehler auf, wird nicht weiter eingelesen, sondern eine "Meldung"(?) an den Administrator gesendet.
 
Wenn alle NAS-Dateien der Zip-Datei im Ordner "eingang" fehlerfrei eingelesen wurden, wird die Zip-Datei in den Ordner "eingelesen" verschoben. Tritt bei einer Datei ein Fehler auf, wird nicht weiter eingelesen, sondern eine "Meldung"(?) an den Administrator gesendet.

Version vom 24. November 2015, 16:02 Uhr

Es gibt "irgendwo" auf dem Server einen Ordner mit folgendem Inhalt:

  • eingang
  • eingelesen
  • postprocessing
  • sicherung
  • temp
start_ff.sh
ff.log

Im Ordner "eingang" werden die gezippten NAS-Fortführungsdaten, die eingelesen werden sollen, abgelegt (Katalog- und Objektdaten). Dies sollte am besten auch automatisiert ablaufen.

Wenn das Shell-Skript "start_ff.sh" ausgeführt wird, guckt es im Ordner "eingang" nach, ob dort ZIP-Dateien liegen. Diese werden ausgepackt (im Ordner "temp") und die Daten darin werden über ogr2ogr in die PostGIS-DB eingelesen. Das Ganze wird in der Datei "ff.log" geloggt. Das Einlesen wird als Transaktion durchgeführt (kein -skipfailures) und wenn fehlerfrei eingelesen wurde, wird die eingelesene Datei im Schema "alkis" in einer Tabelle "import" mit folgender Struktur eingetragen:

CREATE TABLE alkis.import
(
 id serial NOT NULL,
 datum timestamp without time zone DEFAULT now(),
 datei text
)
WITH(
 OIDS=TRUE
);

Diese Tabelle dient einerseits als Übersicht, was alles eingelesen wurde und andererseits kann damit verhindert werden, dass eine Datei doppelt eingelesen wird.

Wenn alle NAS-Dateien der Zip-Datei im Ordner "eingang" fehlerfrei eingelesen wurden, wird die Zip-Datei in den Ordner "eingelesen" verschoben. Tritt bei einer Datei ein Fehler auf, wird nicht weiter eingelesen, sondern eine "Meldung"(?) an den Administrator gesendet.

Nachdem fehlerfrei eingelesen wurde, werden alle Skripte, die sich im Ordner "postprocessing" befinden nacheinander ausgeführt.

Optional kann das Skript "start_ff.sh" vor jedem Einlesen auch eine Sicherung des Schemas "alkis" im Ordner "sicherung" ablegen.

Das Skript "start_ff.sh" wird per Cron-Job einmal täglich automatisch ausgeführt, kann bei Bedarf aber auch händisch gestartet werden.