Einsatz Von NoSQL-Datenbanksystemen Für Geodaten

Transcription

Hochschule für Technik und Wirtschaft DresdenFakultät GeoinformationBachelorstudiengang Geoinformation und VermessungswesenBachelorarbeitEinsatz von NoSQL-Datenbanksystemen für GeodatenEingereicht vonBenjamin ThurmSeminargruppe: 08/061/61Matrikelnummer: 270211. Gutachter: Prof. Dr.-Ing. F. Schwarzbach2. Gutachter: Prof. Dr. oec. G. GräfeEingereicht am: 23.02.2012

ichnis . IIEinleitung . 11Einführung in die Welt der NoSQL-Datenbanken . 21.1Historischer Abriss . 21.2„NoSQL“ . 31.3Scaling Up/Out . 41.4CAP-Theorem . 41.5ACID & BASE . 51.6MapReduce . 61.7Schemalosigkeit von Daten . 72Allgemeiner Überblick. 82.1Kategorisierung . 82.22.2.12.2.22.2.3Key/Value Stores. 8Datenhaltung . 9Redis . 9Spatial Extension. 102.32.3.12.3.22.3.3Wide Column Stores . 10Datenhaltung . 11Apache Cassandra . 12Spatial Extensions . 132.42.4.12.4.22.4.3Document Stores. 13Datenhaltung . 14CouchDB . 14Spatial Extensions . 152.52.5.12.5.22.5.3Graphdatenbanken. 16Datenhaltung . 17Neo4j. 19Spatial Extensions . 193Anwendungspotential für Geodaten . 213.1Definition Geodaten . 213.2Die Haltung von Geodaten in SQL-Datenbanken . 223.3Skalierbarkeit vs. Komplexität . 233.4Positionsdaten in NoSQL-Datenbanksystemen . 243.5Komplexe Geodaten in NoSQL-Datenbanksystemen . 263.6Rasterdaten. 303.7Zukünftige Entwicklungen . 30

InhaltsverzeichnisIII4Implementierung einer Webpräsenz für Geodaten mit CouchDB undGeoCouch . 324.1Vorbereitung der Daten für CouchDB . 334.2Abfrage der Datensätze aus CouchDB . 344.3Abfrage von Datensätzen als FeatureCollection . 364.4Integration der GeoCouch-Daten in eine Website. 374.5Fazit . 395Navigationsanwendung mit Neo4j Spatial . 415.1Vorbereitungen . 415.2Datengrundlage . 425.3Auffinden des nächsten Knoten zu einer beliebigen Koordinate . 445.4Berechnung des kürzesten, befahrbaren Weges . 465.5Ergebnis . 475.6Fazit . 486Zusammenfassung und Ausblick. 50Literaturverzeichnis . VIAbbildungsverzeichnis . XTabellenverzeichnis . XAnlagenverzeichnis. XIAnhang 1 . XIIIAnhang 2 . XIVErklärung über die eigenständige Erstellung der Arbeit . XV

Einleitung1EinleitungGoogle, Amazon und Facebook teilen sich nicht nur den Status, eine der zehn am besten verdienenden Webseiten der Welt zu sein (Bellon 2012), sie haben auch etwasanderes gemeinsam: Alle drei Großkonzerne haben NoSQL-Datenbanken und dieNutzung von Geodaten für sich entdeckt. Gerade solche Dienste, die sich Geodaten indirekter oder indirekter Art zunutze machen haben in letzter Zeit große Aufmerksamkeiterlangt. So ermöglicht beispielweise mittlerweile jedes Social Network, allen voran Facebook, seinen Nutzern, ihre Position anderen mitzuteilen. Anwendungen wie „Foursquare“ bauen sogar in erster Linie auf die Verknüpfung von sozialer Interaktion undGeodaten und die W3C Implementierung der Geolocation API mit HTML5 macht esmittlerweile fast jedem internetfähigem Gerät möglich, ebenfalls seine aktuelle Positionmitzuteilen. Damit steht diese Entwicklung klar im Trend und verursacht dadurch einimmenses Daten- und Nutzeraufkommen. NoSQL-Datenbanken stellen in diesem Zusammenhang möglicherweise eine Option dar, bisher verwendete SQL-Datenbankenabzulösen und die so entstandenen „Big Data“ besser zu verwalten.Das Ziel dieser Arbeit soll darum sein, den aktuellen Entwicklungsstand von FOSSNoSQL-Datenbanksystemen darzustellen und deren Anwendungsmöglichkeiten fürGeodaten zu untersuchen. Dazu soll im ersten Kapitel eine zweckmäßige Zusammenfassung der Historie der NoSQL-Bewegung gegeben werden. Nach einer Erläuterungdes Begriffs „NoSQL“ werden dann grundlegende Konzepte nichtrelationaler Datenbanken eingeführt. Das zweite Kapitel schließt mit einem allgemeinen Überblick zu denheute frei verfügbaren NoSQL-Datenbanken an. Die aktuell dafür gebräuchlichste Kategorisierung soll darin vorgestellt und jeweils ein Vertreter dieser Kategorien näherbetrachtet werden. Insbesondere soll hier auf die für Geodaten interessante Eigenschaften und Standards eingegangen werden, um davon ausgehend eine Einschätzung zum aktuellen Entwicklungsstand zu treffen. Eventuell verfügbare Spatial Extensions werden in die Betrachtungen entsprechend mit einbezogen und in ihrem Funktionsumfang beleuchtet. Daran anschließend soll eine Diskussion des Anwendungspotentials von NoSQL-Datenbanken vorgenommen werden, bei der die in Kapitel zweivorgestellten Systeme wieder aufgegriffen und exemplarisch auf ihre Tauglichkeit fürGeodaten untersucht werden. Davon abgeleitet soll es möglich sein, eine Einschätzungüber das theoretische Anwendungspotential der verschiedenen NoSQL-Datenbankengeben zu können. Kapitel fünf und sechs stellen zwei unterschiedliche exemplarischeImplementierungen vor, die jeweils mit einem für sie geeigneten Vertreter der NoSQLDatenbanken verwirklicht wurden. Insbesondere geht es hier darum, die Eignung derDatenbank zur Haltung geografischer und topologischer Daten auch praktisch unterBeweis zu stellen und eine begründete abschließende Aussage zu deren Eignung treffen zu können.

1 Einführung in die Welt der NoSQL-Datenbanken12Einführung in die Welt der NoSQL-DatenbankenUm in die Welt der NoSQL-Datenbanken einsteigen und ihren Wert für Geodatenschlüssig beurteilen zu können, ist es nötig, sich einen kurzen Überblick über die wichtigsten Konzepte zu verschaffen. Im folgenden Kapitel soll dazu zunächst ein historischer Abriss zur Entstehung der NoSQL-Bewegung gegeben werden. Anschließendfolgt eine kurze Auseinandersetzung mit Konzepten, die für viele der NoSQLDatenbanken eine wichtige Rolle spielen und außerdem die Grundgedanken hinter denEntwicklungen nachvollziehbar machen.1.1Historischer AbrissDer Begriff „NoSQL“ wurde in Zusammenhang mit Datenbanken zum ersten Mal 1998von Carlo Strozzi genutzt (Edlich 2011: 1). Es handelte sich dabei um ein System, daszwar auf einem relationalen Datenmodell basierte, aber ganz bewusst kein SQL alsAbfragesprache zur Verfügung stellte. Auf seiner Website betont Strozzi, dass seinSystem mit der aktuellen NoSQL-Bewegung nichts zu tun hat und dass sie eher dieBezeichnung „NoRel“ verdient hätte, womit er auf die Abkehr vom relationalen Datenmodell anspielt (Strozzi 2010).Erste wirklich als NoSQL-Datenbanken zu bezeichnende Systeme entstanden mit Einzug der Web 2.0 Welle und der damit verbundenen Datenflut. Um den exponentiellenWachstumsraten digitaler Informationen Herr zu werden, begann der Suchmaschinenriese Google 2004 mit der Arbeit an „BigTable“ (Hitchcock 2005), einer nichtrelationalen Datenbank, optimiert zur verteilten Haltung exzessiver Datenmengen im PetabyteBereich. BigTable nutzt eine Kombination aus Reihen/Zellen-Schlüsseln und Zeitstempeln, um Daten lose zu strukturieren, und baut auf das hauseigene Dateisystem„Google File System“ (GFS) auf (Chang 2006: 1). Seit der öffentlichen Präsentation derErgebnisse 2006 im BigTable Whitepaper und dessen Präsentation auf der OSDI '06erfuhr die Entwicklung von nichtrelationalen Systemen einen sprunghaften Anstieg. Sofinden sich heute beispielsweise Eigenschaften von BigTable in Apache HBase oderApache Cassandra. Die Qualität dieses neuen Konzepts ist dabei nicht allein die Fähigkeit, große Datenmengen zu verwalten, sondern auch die Ausrichtung auf ein verteiltes System aus kostengünstigen Standardservern („commodity server“), die zu leistungsfähigen und fehlertoleranten Clustern zusammengeschlossen werden können.Damit war es nun auch möglich, dynamisch auf wachsende Datenmengen und steigende Nutzerzahlen einzugehen und die Kapazitäten entsprechend anzupassen. (Edlich 2011: 2)Auch andere Unternehmen, deren Geschäft primär auf der Hochverfügbarkeit ihrerDienste beruht, haben ähnliche Anwendungsfälle für nichtrelationale Datenbanken ge-

1 Einführung in die Welt der NoSQL-Datenbanken3funden. Aufgrund der Tatsache, dass der Versandkonzern Amazon zur Weihnachtszeitein stark erhöhtes Nutzeraufkommen zu verzeichnen hatte, die technologischen Grenzen der eingesetzten Datenbanksysteme nach eigenen Aussagen 2004 aber ausgereizt waren, kam es zu Einbrüchen in der Verfügbarkeit der Dienste. Daraufhin setzteAmazon mit der Entwicklung von Dynamo ebenfalls auf ein skalierendes, nichtrelationales System aus der Eigenentwicklung (Vogels 2012).Obwohl von Google so nicht propagiert, steht das proprietäre BigTable heute als Begriffspate für eine ganze Kategorie der NoSQL-Datenbanken – die sogenannten „WideColumn Stores“. Vermutlich setzte sich der Begriff im Juni 2009 durch, nachdem einemit „NoSQL“ betitelte Konferenz in San Francisco auf der Plattform Eventbride.comangekündigt wurde. Sie umfasste Präsentationen zu mehreren Datenbankenkategorienwie Voldemort, Cassandra, Dynomite, HBase, Hypertable und CouchDB (Evan 2009).Seitdem ist NoSQL zu einer Art Sammelbegriff für diese verschiedenen Datenbankengeworden und wird gerade aus Marketinggründen gern genutzt (Edlich 2011: XV).1.2„NoSQL“Während der Wiedererkennungswert des Wortes „NoSQL“ unumstritten hoch ist, istder Begriff selbst eher irreführend. Es hat den Anschein, dass SQL als Datenbankabfragesprache kategorisch abgelehnt wird, was jedoch nicht der Fall ist. Es gibt zum

wie Voldemort, Cassandra, Dynomite, HBase, Hypertable und CouchDB (Evan 2009). Seitdem ist NoSQL zu einer Art Sammelbegriff für diese verschiedenen Datenbanken-geworden und wird gerade aus Marketinggründen gern genutzt (Edlich 2011: XV). 1.2 „NoSQL“ Während der Wiedererkennungswert des Wortes „NoSQL“ unumstritten hoch ist, ist