Hochparallele Spatial-Integration umfangreicher heterogener

Werbung
Hochparallele Spatial-Integration
umfangreicher heterogener Geodaten
disy Informationssysteme GmbH
Wachsender Bedarf zur flächendeckenden Verarbeitung
und Auswertung umfangreicher Datenmengen
Beispiele:
• Belastung durch Verkehrslärm (Straße, Schiene, Flugverkehr)
• Hochwassergefährdung
• Breitband-/Mobilabdeckung
Bildquelle: http://www.soundplan-uk.com/Graphics.html
→ Flächendeckend sichere Aussagen zu Belastung/Gefährdung/Versorgung
→ Verbesserungsbedarf und Potenzial ermitteln
19.6.2013
2
Projektauftrag – Überblick
Eingangsdaten
Adressen
(Krankenhäuser,
Schulen etc.)
Gebäude
frühere
Ergebnisse
Zielbereiche
DGM (10 m)
Verarbeitung
Gebäudedaten
DGM
Klötzchenmodell, Metadaten
als TIN
Ergebnisdaten
19.6.2013
3
Projektauftrag – Beispiele durchzuführender Verarbeitungsschritte
• Auswahl tatsächlich zu verwendender Eingangsdaten
• Korrektur (SDO-Konformität)
• Vereinfachung der Geometrien (Datenreduktion!)
63
5
• Vereinheitlichung der Koordinatensysteme
• Prüfung auf Vollständigkeit
• Zusammenführung der Einzeldatensätze
• Zuordnung Adressen zu Gebäuden (Nutzung)
• Triangulierung und Ausdünnen des DGM
• Zuordnung DGM-Höhe zu Gebäude
• Reduktion auf Zielbereiche
• …
19.6.2013
4
Herausforderungen des Projekts (1)
Datenmenge: ca. 150 GB Rohdaten
• 30.000 Dateien mit Gebäudedaten (ca. 90 Mio. Gebäude)
• > 30 Mio. Adressdatensätze
• > 75 GB Höhendaten DGM 10 m
Datenqualität:
Ausgangsdaten:
Aus > 50 verschiedenen Quellen
Unterschiedliche Dateiformate
Redundante, teils widersprüchliche Daten
Unbekannte, oft nicht ausreichende Qualität
Anforderungen an die Ergebnisse:
Geeignet als Grundlage weiterer Berechnungen
Anforderungen aus EU-Vorgaben
19.6.2013
5
Herausforderungen des Projekts (2)
Komplexität
Mehr als 250 Prozess-Schritte!
Zeitrahmen
• Gesamtlaufzeit ca. 6 Monate
• Arbeitsprobe bereits nach ca. 3 Monaten
Zusätzliche Anforderungen
• ggf. Nachbeschaffung von Daten
• Jederzeit kurzfristig: Abgabe einer Arbeitsprobe
• Anzusetzende Qualitätsmaßstäbe sind interaktiv mit dem Auftraggeber
abzustimmen
• …
19.6.2013
6
Projektaufgabe in einer Metapher
19.6.2013
7
Projektaufgabe in einer Metapher
Rohmaterial
Probefahrt mit
verkleinertem Modell
zur Projekthalbzeit
Entscheidung über
Farbe erst am
fertigen Modell
19.6.2013
Mehrere Teilesätze:
Varianten,
Gebrauchtteile
8
Unser Lösungsansatz in der Metapher
Hochflexibel
Schnell
Präzise
Wir bauen eine Fabrik!
…und produzieren bereits,
während sich die Fabrik
noch im Aufbau befindet!
19.6.2013
9
Der Lösungsansatz im Projekt – Übersicht
Ausgangsdaten
Auswertung
Ergebnisdaten
Cadenza
PL/SQL
Hudson CI
Ablaufumgebung
Tasks
GIS-
Testumgebung
Bibliotheken
Eclipse / Java
SVN
Das Fabrikgelände
19.6.2013
10
Modellierung der Prozess-Schritte
Zustand jedes Datensatzes: Statustabellen in der Datenbank
Status-Flag
Prozess-Schritte: Zeitstempel
Task = Java-Klasse
• Führt einen fachlichen Prozess-Schritt aus
• Bearbeitet jeweils eine atomare Dateneinheit
• Nutzt wahlweise PL/SQL, Java GIS-Bibliotheken, Java+SQL, …
Task-Ausführung: einfache, Java-basierte Ablaufumgebung
19.6.2013
11
Infrastruktur
Bottleneck:
IO-Operationen!
Lösung:
Die Datenbank liegt auf einer 250GB RAM-Disk
Bewusster Verzicht auf Sicherheit zugunsten von Performance!
Dedizierter Datenbankrechner:
• 2 x E5-2660 8C mit HT + Turbo (entspr. 32 CPUs)
• 384GB RAM
• 2 x 10 Gbit
+ weitere flankierende Systeme
19.6.2013
12
Backup-Strategie
Backup nur dediziert durch Anhalten der Datenbank
ca. 2 mal wöchentlich, Entscheidung durch Rechenbetreuer
Nachteile:
Systemausfall = Verlust mehrerer Tage Rechenzeit
Anhalten kostet Zeit:
• Overhead „Laufende Tasks zu Ende rechnen lassen“
• 15min Spiegeln der Daten auf Storage-System
Erfahrung:
Ausfallrisiko 2 Mal eingetreten:
• Schreiben der RAM-Disk gescheitert
• Unkontrollierter Shutdown durch Bedienfehler
Gesamtstrategie durch hohe Performance während der
Gesamtrechenzeit über viele Wochen erfolgreich
19.6.2013
13
Parallelisierung
Ziele:
•
•
Optimale Nutzung der CPUs
Keine Verzögerung durch unfertige
Prozess-Schritte
Strategie:
•
•
Beliebige Tasks laufen parallel
Unabhängige Datensätze werden
parallel verarbeitet
Umsetzung:
•
•
Aufbrechen in kleine, unabhängige Schritte
Modellierung über Status: „Pausiert“
Erfahrungen:
•
•
24 Threads bei 32 Kernen guter Wert
Falle: Zeitaufwändige Aktualisierung von Indexen
insbes. Schreiben mehrerer Threads in dieselbe Tabelle
→ permanentes Monitoring der Performance, Indexe temporär deaktivieren
19.6.2013
14
Leistungsfähigkeit von Oracle Spatial – Beispiel-Prozess-Schritt
Vereinigung
gepufferter
Gebäudepolygone
PROCEDURE merge_big(v_table_id IN NUMBER)
IS
v_tablename VARCHAR2(38) := 'tmp_simple_buffered_' || v_table_id;
l_merged_buffer MDSYS.sdo_geometry;
BEGIN
EXECUTE IMMEDIATE
'select SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(buffered, 0.005)) GEOM
FROM ' || v_tablename
INTO l_merged_buffer;
EXECUTE IMMEDIATE 'delete from tmp_big_merged_buffers where identifier = :table_id'
USING v_table_id;
EXECUTE IMMEDIATE
'insert into tmp_big_merged_buffers(identifier, geometry) values (:identifier, :geometry)'
USING v_table_id, l_merged_buffer;
END;
Konkretes Beispiel: 365.441 Gebäudepolygone (3,3 Mio. Stützpunkte)
Rechenzeit: 3,5 Tage
→ Sehr gute Leistungsfähigkeit für große Aufgaben
19.6.2013
15
Zuverlässigkeit von Oracle Spatial
Bugs in Oracle Spatial:
• In Projekten dieser Größe stößt man zwangsläufig auf Fehler!
• Für Softwareprodukte dieser Größe ist das normal!
Positive Erfahrungen:
• Die wenigsten Fehler waren kritisch
• Die meisten waren kurz zuvor behoben worden, Patches verfügbar
• Es gibt oft Alternativwege (oft nicht offiziell dokumentiert)
• Oft die Rettung: Hints
Strategie im Projekt:
• Nicht lange an Fehlern aufhalten!
• Stattdessen alternativen Weg oder Technologie nutzen
→ Die Zuverlässigkeit ist in Anbetracht des Funktionsumfangs gut
19.6.2013
16
Oracle Spatial Geocoder: Zuordnung von Adressen zu Gebäuden
Nachteil: Hoher initialer Aufwand
• Dokumentation: Fokus auf Nutzung einer bestehenden
Geocoder-Befüllung
• Geht nicht Out-of-the-Box (Patch p15926096)
• Aufbau/Befüllen des komplexen Schemas nicht trivial!
Vorteile:
• Unscharfes Matching mit Ausgabe eines Match-Vektors
• Detaillierte Rückschlüsse auf Qualität der Treffer möglich
• Auch nutzbar, wenn man nur Teile des Schemas befüllt
Hat sich sehr gut bewährt für die Verarbeitung der
vorliegenden Rohdaten
→ Separates zukünftiges Vortragsthema?
19.6.2013
17
Wichtige Aspekte im Vorgehen
Konsistenz
Daten und Zustand jederzeit in der Datenbank
Inkrementelles Vorgehen
Tasks werden im laufenden Betrieb ergänzt und erweitert
Daten werden soweit verarbeitet, wie technisch jeweils bereits möglich
Flexibilität in der Werkzeugwahl
PL/SQL, Java GIS-Bibliotheken, Java+SQL, …
Agiles Vorgehen
Anwendung agiler Techniken zum Aufbau der „Fabrik“
Do the simplest thing that could possibly work
Transparenz – keine Black Box
Zustandstabellen → Fortschritt, Status
Zwischentabellen → Nachvollziehbarkeit
Automatisierung
Faktor Mensch nur da, wo er einen Mehrwert bringt
Qualität
Testabdeckung
Nachvollziehbarkeit durch Protokollierung in der Datenbank
19.6.2013
18
Ergebnis des Projekts, Fazit
Projektabschluss: in Time und in Budget
→ Hochautomatisierte Datenverarbeitung kann auch für einmalige
Datenaufbereitung eine Alternative zu traditionellen Herangehensweisen sein
→ Oracle Spatial ist eine leistungsfähige und verlässliche Kernkomponente einer
solchen Lösung
Das produzierte Auto entspricht den
hohen Erwartungen des Kunden
Das Auto ist pünktlich zum Termin vom Band gelaufen
…obwohl die Fabrik erst zwei Tage zuvor fertiggestellt wurde
19.6.2013
19
Sie haben Fragen, Anmerkungen, ähnliche oder gar
konträre Erfahrungen?
Sprechen Sie
uns bitte an,
wir freuen uns:
Torsten Brauer
Dipl.-Geoökol.
Berater, Projektleiter
Markus Gebhard
disy Informationssysteme GmbH
Dipl.-Informatiker
Entwicklungsleiter,
Leiter Business-Team IT/GIS
Tel. +49 721 16006-228
Fax +49 721 16006-05
[email protected]
disy Informationssysteme GmbH
Erbprinzenstraße 4-12
76133 Karlsruhe
www.disy.net
Tel. +49 721 16006-237
Fax +49 721 16006-05
[email protected]
IT-Lösungen für räumliches Datenmanagement und -analyse
Herunterladen