Fast Spatio-Symbolic Searching in Huge Geo Databases Jörg Roth Fakultät Informatik Technische Hochschule Nürnberg Suche in Geodaten-Beständen Geodaten sind der 'Rohstoff' für alle Arten von ortsbezogenen Anwendungen Häufig mehrere Million Objekte Pro Anwendungsfall benötigt man meist nur den Zugriff auf einige wenige Objekte Beispiele: • Start-, Zielpunkt bei der Routenplanung • Karte zentrieren (z.B. auf "T-Online-Allee") • Suche von touristischen Attraktionen Jörg Roth – TH Nürnberg Folie 2 Beispiele: Der Geodaten-Explorer Jörg Roth – TH Nürnberg Folie 3 Beispiel: Objektsuche auf Smart-Phones Jörg Roth – TH Nürnberg Folie 4 Geodaten-Suche Charakteristik der Geodaten-Suche: Häufig explorativ Verschiedene Suchen: • symbolisch: Namen, Adressen, Typ • räumlich: Kartenausschnitt, Umkreissuche • geometrisch: Flächeninhalt, Länge, Durchmesser • navigatorisch: Erreichbarkeit per Auto in x min • unstrukturiert: 'alles' in einer Textzeile In der Regel in Kombination: • meistens einfach logisches UND • komplexe Varianten: Spatial Join, Sub-Queries Jörg Roth – TH Nürnberg Folie 5 Die HomeRun-Suche Ziele: Eine Suchumgebung für alle Szenarien Flexibel bzgl. Anfragen, Ergebnissen, Laufzeitumgebungen etc. 'Innere' Search Engines: • Lucene für alle textuellen Bedingungen • Datenbank für alle skalaren Anfragen • Räumlicher Index für alle räumlichen Bedingungen • Navigationsumgebung donavio für alle navigatorischen Anfragen • Weitere Bedingungen: intern (z.B. über JTS) Jörg Roth – TH Nürnberg Folie 6 Beispiele: Anfragen Mögliche Suchanfragen: Adresse "Nürnberg, Hohfederstraße" Name: "TH Nürnberg" Objekttyp "Hochschule", Stadt "Nürnberg" Suchzeile: "Informatik Nürnberg" Alle "Bäcker" um Punkt lat/long, Distanz 100m Alle Hotels, die zu Fuß nicht weiter als 10 Minuten entfernt sind von "Informatik Nürnberg" Alle Hotels, die zu Fuß nicht weiter als 10 Minuten entfernt sind von irgendeiner U-Bahnstation in Nürnberg Jörg Roth – TH Nürnberg Folie 7 Beispiele: Anfragen Alle Hotels, die zu Fuß nicht weiter als 10 Minuten entfernt sind von irgendeiner U-Bahnstation in Nürnberg der Linie U2. Die Hotels sollen nicht weiter als 1km von der Innenstadt entfernt sein, mindestens drei Sterne haben aber nicht in dem Stadtteil Wöhrd liegen. Darüber hinaus darf das Hotel nicht neben einer stark befahrenen Straße liegen. Jörg Roth – TH Nürnberg Folie 8 Beispiele: Ergebnisse Unterschiedliche Ergebnisse: Objektliste (nur IDs, mit oder ohne Geometrie) Nur die Anzahl der Treffer MBR, Union-Geometrie, Buffer-Geometrie des Ergebnisses Bei Suchzeilen-Anfragen: welche Begriffe bedeuteten was, welche Begriffe konnten nicht zugeordnet werden, Tippfehlerkorrekturen Wichtig: nur das berechnen, was man braucht vieles kann schon in der Engine berechnet werden, z.B. SELECT COUNT(*) Jörg Roth – TH Nürnberg Folie 9 Ausführungsplanung Das schwierigste ist die Ausführungsplanung: Search Engines werden formal repräsentiert costs meters ! ! Crossing List Isochrone Isochrone Engine DomainList (GEOM...) C Buffer Buffer Engine internal Jörg Roth – TH Nürnberg Folie 10 Ausführungsplanung Gesucht: eine Sequenz von Search-EngineZugriffen, die die Anfragen in die Resultate verwandeln Jörg Roth – TH Nürnberg Folie 11 Ausführungsplanung Analoges Problem: Wortproblem formaler Sprachen Gesucht: Sequenz von Produktionen, um ein Wort durch eine Grammatik abzuleiten Leider: Unser Problem entspricht einer nichtkontextfreien Sprache (genauer sogar einer Typ-0-Sprache) Wortproblem für Typ 0 nicht entscheidbar! Darüber hinaus: wir möchten nicht nur eine Sequenz sondern auch die "schnellste" Jörg Roth – TH Nürnberg Folie 12 Ausführungsplanung Ausweg über Meta-Regeln, z.B. gegenseitiger Ausschluss von Produktionen einige Produktionen können sinnvoll nur einmal pro Abfrage vorkommen Liste von typischen Anfangs- und Endproduktionen Maximale Länge der Ableitungskette bekannt Problem kombinatorisch beherrschbar Jörg Roth – TH Nürnberg Folie 13 Beispiel1 Flächenobjekte <1000m2 "Hochschule" in Nürnberg mit Namen "Informatik" im Umkreis… in "Nürnberg" RelativeBy NameQuery RelativeByName LuceneEngine RelativeQuery meters "Hochschule" ClassBy NameQuery ClassByName LuceneEngine ClassQuery DomainList "Informatik" (...GEOM) Buffer Engine Buffer internal Realname Query DomainList (ID, Core, Geom) Flächenobjekt TypeQuery Domain LuceneEngine DomainList (ID, Core, Geom) im Umkreis... Geometric Query <1000m2 AreaSize Query GeometricCheck Engine internal DomainList (ID) Domain DBEngine deproDB Jörg Roth – TH Nürnberg Folie 14 Beispiel2 Alle Restaurants, die vom Postleitzahlbereich 90489 in 5min per Auto erreichbar sind "Sub-Query: alle Objekte, die in 5min per Auto erreichbar sind" costs 5 min Postleitzahl "90489" Address Query Address LuceneEngine DomainList (ID) Crossing Engine Crossing List Isochrone Engine Isochrone/ Geometric Query "Restaurant" ClassBy NameQuery ClassByName LuceneEngine ClassQuery Domain DBEngine deproDB Jörg Roth – TH Nürnberg DomainList (ID, Core, Geom) GeometricCheck Engine DomainList (ID, Core, Geom) internal Folie 15 Search-Engines Modellierung der Search-Engines Abschätzung der Laufzeit Zugriff auf die Indizes (z.B. Laden in Speicher) Umwandeln in die plattformspezifische Anfrage (Lucene Queries, SQL) Umwandeln der plattformspezifischen Ergebnisse (Lucene-Docs, Tables, Routen, Geometrien) Initiieren einer Suche, ggfs. 'Cancel', Behandlung von Fehlern Jörg Roth – TH Nürnberg Folie 16 Weitere Problemkreise Das Large Intersection Problem: • Große Zwischenergebnisse, kleines Endergebnis alle "Bäcker" (überhaupt) "alle Bäcker in Nürnberg" alle Objekte "in Nürnberg" • Großer Suchaufwand, Transfer im Speicher, Limits für Ergebnismengen (z.B. Lucene) Lösung: • Einbau redundanter Daten in Indizes • Beispiel: Integration von räumlichen Daten in den Namensindex von Lucene Jörg Roth – TH Nürnberg Folie 17 Weitere Problemkreise Parallelisierung: Pläne können auf Parallelisierbarkeit hin optimiert werden • Nicht immer sinnvoll (mehrere Cores notwendig, Summe der CPU-Last größer) • Anwendung kann das steuern Jörg Roth – TH Nürnberg Folie 18 Zusammenfassung Suche in großen Geodaten-Beständen ist nicht trivial, insb. durch die vielen Arten der Suche Die HomeRun-Suchplattform bietet eine flexible, konfigurierbare Lösung für verschiedene Szenarien Herausforderungen: • Modellierung der inneren Suchmaschinen • Ausführungsplanung sehr anspruchsvoll • Large Intersection Problem, Parallelisierung Jörg Roth – TH Nürnberg Folie 19 Kontakt Jörg Roth TH Nürnberg [email protected] http://www.wireless-earth.org Jörg Roth – TH Nürnberg Folie 20