Jörg Roth Fast Spatio-Symbolic Searching in Huge Geo Databases

Werbung
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
Herunterladen