NoSQL auf dem Prüfstand: Welche Anwendungsfälle eignen sich für die Datenbank
Die Datenbank-Technologie NoSQL ist für Unternehmen interessant, die große Datenmengen verarbeiten müssen. Unsere Expertin erläutert Fallbeispiele.
Unter dem Begriff Big Data existiert eine verwirrende Masse von Fachausdrücken und Akronymen. Dazu zählt auch NoSQL. An der Technologie sind immer mehr Unternehmen interessiert, die von dem schnell wachsenden Datenvolumen und neuen Datentypen erdrückt werden. E-Commerce, soziale Medien und Smart Devices produzieren Daten und Ansprüche an die Firmen. Relationale Datenbanksysteme liefern hierfür nicht genügend Leistung. NoSQL-Datenbanken versprechen eine Lösung zu sein. Allerdings vereint der Begriff verschiedene von Datenmanagement-Ansätze, die ihre Vor- und Nachteile haben.
Neue NoSQL-Answendungen charakterisieren sich durch mehrsprachige Beständigkeit, sagt Matthew Aslett, Forschungsdirektor für Datenplattformen und Analytics bei The 451 Group. Das Konzept dazu wurde von Martin Fowler entwickelt, einem Softwareforscher und unabhängigen Berater bei ThoughtWorks. Fowler hat eine Web-Applikation entwickelt, die auf Basis der NoSQL-Datenbanken Riak, Neo4j, MongoDB und Cassandra Datensätze verarbeitet.
Dieser Technologie-Mix ist für IT-Manager ein Gräuel, da sie auf Standardisierung, Optimierung und einen klaren Support setzen. Aslett ist allerdings überzeugt, dass sich IT-Manager an solche Szenarien gewöhnen müssen. „Man verwendet jede Technologie für einen bestimmten Zweck“, sagt der Wissenschhaftler. „Aus Sicht der Enterprise-IT ist das keine gute Sache. Sie erhalten eine Anwendung, die vier oder fünf Datenbanken verwendet, die alle unabhängig voneinander sind.“
Zusätzlich fügt er an: „Unternehmen sind dabei, die strategische Entscheidung zu treffen, welche NoSQL-Datenbank für welchen Zweck geeignet ist und mit welcher die Entwickler am liebsten arbeiten. Damit schränken sie die Auswahl ein. Sie müssen das Unvermeidliche akzeptieren und planen, anstatt sich zu verkriechen.“
Das ist zum Beispiel beim Distributionssystem Amadeus der Fall, das zu den ausgereiften NoSQL-Systemen zählt. Mit Amadeus werden Flugreservierungen von 700 Fluglinien an Tausende von Reiseagenturen und Buchungssysteme rund um den Erdball verteilt. Die Firma nutzt sowohl die NoSQL-Datenbank Couchbase als auch relationale Datenbanken von Oracle, um die Buchungs- und Reservierungssysteme zu verwalten. Zudem gibt es ein Pilot-Projekt mit der NoSQL-Datenbank MongoDB für die Dokumentenspeicherung. Dietmar Fauser, Vize-Präsident Architektur und Infrastruktur bei Amadeus R&D, sagt: „Sie müssen Ihr Problem verstehen und dann die Technologie wählen, die für den Zweck am besten geeignet ist.“
i2O verwendet Cassandra
Cassandra ist eine spaltenorientierte NoSQL-Datenbank, die der Firma i2O beim Wassermanagement hilft. Das Unternehmen priorisiert Datenverfügbarkeit über Konsistenz. Die Daten werden in Spalten und nicht in Reihen gespeichert, wie dies bei relationalen Datenbanken geschieht. Der dezentrale Charakter der Datenbank zielt darauf ab, dass die Erstellung umfassender Spalten keinen Einfluss auf die Performance hat. Die Firma verwendet aber auch Elasticsearch als NoSQL-Datenbank, um nicht-konforme Dokumente für IT-Audits zu speichern. Außerdem investiert man in die relationale Datenbank PostgreSQL.
i2O hilft Unternehmen, die viel Wasser brauchen, bei der Reduzierung von Lecks und Überangeboten. Intelligente Hardware wie Ventile und Druckmessgeräte sind mit einem Cloud-basierten und lernfähigen Algorithmus ausgestattet. Damit wird sichergestellt, dass die Kunden bei Bedarf die richtige Wassermenge erhalten, was 200 Millionen Liter Wasser pro Tag spart. Der Leiter der Software- und IT-Abteilung Mike Williams erklärt, dass die Systeme große, zeitabhänginge Datenmengen verarbeiten müssen, die aus den Geräten des Wassernetzwerks einfließen.
Die Firma hat sich für Cassandra entschieden, da die Software von Natur aus mit umfassenden Spalten in einer dezentralen Datenbank umgehen kann. „Als wir anfingen, mit Cassandra zu experimentieren, haben wir schnell die unglaubliche Skalierbarkeit beim Umgang mit diesen Datentypen bemerkt. Und das, obwohl unser Design zunächst nicht perfekt war“, sagt Williams. „Mit dem Spalten-orientierten Ansatz bekommen wir einen Mehrwert, wenn wir diese Datenmengen erhalten. Wir müssen keine Einbußen bei der Performance hinnehmen.“
DataStax, das Unternehmen hinter Cassandra, hat die Software so erschaffen, dass sie von Natur aus dezentralisiert ist. Daher lassen sich weitere Nodes leichter hinzufügen als bei anderen Systemen. „Es ist ein einfacher Prozess. Ich habe die meiste Zeit in meinem Arbeitsleben mit Datenbanken gearbeitet. Mit relationalen Datenbanken war es nie so einfach wie bei Cassandra“, sagt Williams.
In einem Cloud-basiertem System verarbeitet
Temetra ist weiteres Versorgungsunternehmen, das Gas- und Wasserdaten sammelt und in einem Cloud-basiertem System speichert. In diesem Fall entschied man sich für die NoSQL-Datenbank Riak von Basho. Der Grund war, dass sie große Mengen unstrukturierter Daten speichern kann.
Vor vier Jahren expandierte die irische Firma und verwaltet mittlerweile das Zwanzigfache der ursprünglichen Messgeräten. Die gesammelten Daten sind von 300 Datensätzen pro Verbrauchszähler und Jahr auf 35.000 angestiegen. In einigen Fällen liest man die Daten alle 15 Minuten ab.
Die Firma verwendete ursprünglich die relationale Datenbank PostgreSQL. Die steigende Datenmenge hat sich allerdings negativ auf die Performance ausgewirkt. Der Softwarespezialist und Temetra-Gründer Paul Barry hat sich nach Experimenten mit Cassandra für Riak entschieden.
Er ist ebenfalls der Ansicht, dass der Umstieg auf NoSQL ein Umdenken vom IT-Management verlangt: „Unser erster Ansatz war nicht perfekt. Die Datenbank war zwar zuverlässig und hat die Daten gespeichert, allerdings ließen sich damit nicht alle Anwendungsfälle abdecken.“ Barry sagt daher: „Seitdem haben wir die Art geändert, wie wir Daten speichern. In Sachen NoSQL müssen Sie ihre Einstellung gegenüber Datenbanken ändern.“
Temetra verwendet weiterhin SQL-Systeme, um damit Transaktionsdaten zu verarbeiten. Weiterhin ist die NoSQL-Suchtechnologie Solr im Einsatz. Riak unterstützt laut Barry allerdings die schnelle Expansion. „Ich schlafe nachts ruhig. Wir wissen, dass wir binnen sechs Monaten eine weitere Million Messgeräte bekommen und ich weiß, dass wir das stemmen können.“
NoSQL-Datenbanken verlangen IT-Managern möglicherweise ab, dass sie sich aus dem persönlichen Wohlfühlbereich begeben. Die Technologien sind mannigfaltig und es mangelt an Standard-Tools, Qualifikation und Herangehensweisen bei der Datenzuordnung. Adressieren Sie damit allerdings das richtige Problem, hilft das dem Unternehmen, die Performance im Hinblick auf die Daten zu verbessern. In diversen Bereichen haben Sie damit einen Wettbewerbsvorteil.
Fallbeispiel: Big Data mit dem Distributionssystem stemmen
Amadeus gehört weltweit zu den größten Reisevertriebssystemen. Verbraucher und Reiseagenturen haben Zugriffe auf die Flüge von über 700 Fluglinien. Dazu kommen Hotels und Parkplätze. Das System wurde ursprünglich nur von Reiseveranstaltern genutzt. Durch die Geburt der Online-Buchungsseite wird die Datenbank mittlerweile drei bis vier Millionen Mal pro Sekunde angesprochen. „Durch das Wachstum mobiler Suchanfragen für Reisen und Buchungen ist ein Anstieg von bis zu 20 bis 30 Millionen Abfragen pro Sekunde nicht unwahrscheinlich“, erklärt Dietmar Fauser.
Die Entwicklungsabteilung von Amadeus ist von Mainframes auf Unix und später Linux umgestiegen. Zudem verwendet sie seit Anfang 2000 eine relationale Datenbank von Oracle. Durch den zusätzlichen Online-Traffic musste man allerdings neue Wege finden, um den Zugriff auf die Inventurdaten zu garantieren.
Amadeus hat den Datenbankteil, der Anwendern Einblicke auf die Verfügbarkeit der Flüge mitteilt, aus der Oracle-Datenbank abgespalten. Die Daten wurden dupliziert und in einer dezentralisierte In-Memory-Datenbank abgelegt. Das System basierte auf der Open-Source-Technologie memcached, einem Key-Value NoSQL-Daten-Cache. Somit konnte man die Performance um den Faktor zwei gegenüber der relationalen Datenbank verbessern. Allerdings musste man die Technik noch veredeln und hat sich laut Fauser für Couchbase, einer ähnlichen NoSQL-Datenbank, entschieden.
Das Problem bei Memcached war, dass es nicht persistent war. Sobald ein Node ausfiel, ließ er sich nicht in den alten Zustand versetzen. Anwender müssen die Persistenz entweder selbst kreieren oder den bereits verfügbaren Code in der Couchbase-Datenbank nutzen, sagt Fauser.
NoSQL-Datenbanken tauschen in der Regel Performance gegen Konsistenz. Damit akzeptiert man die „eventuelle Konsistenz“ gegenüber den strengen Regeln relationaler Datenbanken. Amadeus setzt für Transaktionen zudem auf Oracle-Datenbanken, die man mit NoSQL-Lesedaten innerhalb von Sekunde in Einklang bringt. In der Zwischenzeit gibt es ein Pilotprojekt von Amadeus mit der Dokumenten-basierten NoSQL-Datenbank MongoDB. Daraus soll eine E-Ticket-Datenbank und ein Abrechnungssystem entstehen.
Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!