NoSQL-Datenbanken brechen die Dominanz relationaler Datenverarbeitung

Auch wenn NoSQL die Dominanz von relationalen SQL-Datenbanken brechen wird, kommen in Zukunft beide Technologie weiterhin im Data Center zum Einsatz.

Im Jahre 1922 schrieb der Autohersteller Henry Ford, dass seine Kunden ihr Auto in jeder beliebigen Farbe haben könnten – so lange es schwarz ist. Bis vor Kurzem waren IT-Manager, Softwareentwickler und Geschäftsführer bei der Wahl einer Datenbank ähnlich eingeschränkt. Relationale Datenbanken setzen auf die Programmiersprache SQL und waren bisher die dominanten Datenbanken in der Unternehmens-IT. Einen echten Herausforderer gab es nicht.

Das hat sich allerdings vor etwa zehn Jahren geändert. Die Vorherrschaft von SQL wurde durch Yahoo!, Google, Facebook, Amazon und eBay auf den Prüfstand gestellt. Diese und andere Internet-Firmen betreiben riesige skalierbare Web-Anwendungen. Die verschiedenen Daten ändern sich rasend schnell, so dass man nach Alternativen zu relationalen Datenbanken suchte. Was am Anfang nur ein Rinnsal war, hat sich in den vergangenen Jahren zu einem reißenden Strom entwickelt. Neue Technologien meiden die starren Prinzipien der SQL-Entwicklung und setzen auf flexible und skalierbare Designs. Die neuen Datenbanken sind über diverse Kategorien verteilt und basieren auf unterschiedlichen Datenmodellen. Sie teilen sich aber eine gemeinsame Bezeichnung: NoSQL.

Die NoSQL-Familie im Überblick

NoSQL-Datenbanken sind so geschaffen, dass Sie große Mengen unterschiedlicher und sich häufig aktualisierender Daten verarbeiten können. Sie vermeiden die starren Schemen, die mit relationalen Datenbanken assoziiert sind. Allerdings ist die Architektur verschieden und lässt sich in vier primäre Klassen einteilen:

Dokumentenorientierte Datenbanken: Speichern Datenelemente in Dokumenten-ähnlichen Strukturen, die Informationen zum Beispiel in JSON kodieren. Kommen häufig bei Content-Management-Systemen (CMS) sowie beim Monitoring von Web- und mobilen Applikationen zum Einsatz.

Beispiele: Couchbase Server, CouchDB, MarkLogic, MongoDB

Graphdatenbanken: Sie stellen die Verbindung zwischen Datenelementen heraus. Die Software speichert verwandte „Knoten (Nodes)“ in Graphen (Diagrammen), um die Abfragen zu beschleunigen. Häufig setzt man Sie in Empfehlungs-Engines und Applikationen mit Geodaten ein.

Beispiele: InfiniteGraph, Neo4j

Key-Value-Datenbanken: Sie verwenden ein einfaches Datenmodell, das einen einzigartigen Schlüssel mit einem assoziierten Wert in Datenelementen speichert. Häufig setzt man Sie bei Daten von sogenannten „Clickstreams“ und Applikations-Logs ein.

Beispiele: Aerospike, DynamoDB, Redis, Riak

Spaltenorientierte Datenbanken: Werden auch als Datenbanken im Tabellen-Stil bezeichnet. Sie speichern Daten über verschiedene Tabellen verteilt und können eine hohe Anzahl Spalten enthalten. Häufig setzt man sie bei der Internet-Suche und anderen breit-skalierten Web-Applikationen ein.

Beispiele: Accumulo, Cassandra, HBase, Hypertable, SimpleDB

Die NoSQL-Bewegung ist keine Revolution. Sie hat auch nicht das Ziel, relationale Datenbank komplett abzulösen. Hört man einigen NoSQL-Anbietern zu, könnte man aber diesen Eindruck gewinnen. Der Fachbegriff NoSQL bedeutet „Not only SQL“. Damit macht man deutlich, dass viele Datenbanken Elemente von SQL enthalten. Zudem positioniert man NoSQL-Technologien nicht so, als wären sie ein vollständiger Ersatz für relationale Datenbanken. Sie eignen sich für spezielle Anwendungsfälle, die große Datensätze enthalten und auf die man oft zugreifen oder aktualisieren muss. NoSQL-Datenbanken sind ein Muss für Firmen, deren Datenbestand in den Bereichen Web, soziale Medien, Demografie und Maschinendaten rasant wachsen. Sie teilen sich allerdings die Datenverarbeitung und Analyse-Workloads mit SQL-basierter Software.

Zum Beispiel ist Crittercism ein Startup-Unternehmen, dass Firmen beim Performance-Monitoring ihrer mobilen Anwendungen hilft. Die Software verarbeitet Echtzeitdaten, die von mehr als 800 Millionen Mobilgeräten stammen. Beim Applikation Performance Management (APM) nennt man eine Anwender-Interaktion mit einer App einen Request. Crittercism erhält Informationen von über 30.000 Request pro Sekunde - über den Tag verteilt sind das knapp drei Milliarden Request. Dadurch entstand ein Pool von 20 Terabyte Daten, doch das Volumen wächst immer weiter, sagt Lars Kamp, Vice-President Business Development bei Crittercism.

Lars KampLars Kamp

In diesem Datenmix sind Applikations-Fehler, Absturz-Diagnosen, und was Crittercism als „Network Breadcrumbs“ bezeichnet, enthalten. Letzteres steht für Netzwerk-Aufrufe und andere Ereignisse, die zu Problemen bei den Apps führen. Die Daten sind „sehr unstrukturiert und uneinheitlich. Sie variieren von Kunde zu Kunde und von Applikation zu Applikation“, sagt Mike Chesnut, Leiter Operations Engineering bei der Firma.

SQL auf halbem Weg treffen

Die unglaubliche Menge an Information und deren variable Natur erforderte einen neuen Ansatz, die Daten zu formatieren. Bei der Verwendung relationaler Software wäre ein ziemlicher Overhead bei der Verarbeitung das Resultat gewesen. „Man müsste ein Datenbank-Schema vorhalten, das alle Informationen unterbringen kann. Hinzu kommen noch regelmäßige Ausfallzeiten, um die Schemata entsprechend anzupassen“, erklärt Chesnut. Zudem verweist er darauf, dass sie im laufenden Betrieb das System ändern mussten, wie Daten gesammelt und gespeichert werden. Kamp sagt daher: „Crittercism wäre vor zehn Jahren nicht möglich gewesen, da SQL die einzige Option war“.

MongoDB ist eine NoSQL-Datenbank, die von Amazons Web Services (AWS) eingesetzt wird. Wie andere NoSQL-Technologien bietet sie Flexibilität beim Schema-Design an. Somit kann Crittercism Fehler- und Absturz-Daten in einer einzigen „Sammlung“ ablegen. Das ist das MongoDB-Äquivalent zu einer relationalen Tabelle. Ein striktes Schema für die Daten ist nicht notwendig. Das Fehlen einer fixen Datenstruktur mit einheitlichen Feldern hat dazu geführt, dass das Performance-Management der Firma „organisch wachsen“ musste. Nur so konnte man laut Chesnut den Anforderungen der verschiedenen Kunden gerecht werden.

Crittercism verwendet nach Chesnuts Aussagen auch Amazons NoSQL-Datenbank DynamoDB, um Daten in spezifischen Pfaden zu speichern, die eine schnelle Performance benötigen. In der Datenbank-Architektur der Firma gibt es aber auch SQL. Eine PostgreSQL-Datenbank hält Daten vor, die hochgradig relational sind. Die gesamte Information ist in einem SQL-basierten Amazon Redshift Data Warehouse für Reporting und Analyse zusammengefasst. Chesnut und seine Kollegen sind keine NoSQL-Puristen: „Wir bemühen uns, sämtliche Technologien in den Fokus zu nehmen, die uns bei Problemstellungen helfen können“, sagt er.

Eine kürzlich veröffentlichte Umfrag zeigt, dass NoSQL-Datenbanken bei Anwendern von Big Data immer beliebter werden. Insgesamt ist die Adaption aber noch relativ gering. Eine Leser-Umfrage von TechTaget im letzten Jahr zum Thema Analytics & Data Warehousing ergab folgendes Bild: 21 Prozent der 222 Befragten mit aktiven oder sich in der Vorbereitung befindlichen Big-Data-Projekten verwenden NoSQL-Systeme oder planen den Einsatz der Technologie. Eine weitere Umfrage von Enterprise Management Associates und 9sight Consulting hat fast identische Resultate gebracht. In diesem Fall gaben 22 Prozent der 259 Befragten an, eine NoSQL-Plattform im Einsatz zu haben. Einer Umfrage des Data Warehousing Institutes zufolge verwenden 32 Prozent von 189 Befragten NoSQL-Software in ihrem Unternehmen. Aber auch dort bildete NoSQL-Technologie das Schlusslicht hinter relationalen Datenbanken, Data-Appliances, spaltenorientierter Software und Hadoop (Abbildung 1).

Big-Data-Datenbanken im Einsatz
Abbildung 1

Allerdings wird ein massiver Zuwachs in Data Centern erwartet. Die Analysten von Wikibon erwarten, dass der weltweite Umsatz von NoSQL-Software und -Services von 286 Millionen US-Dollar (rund 209 Millionen Euro) im Jahre 2012 auf 1,825 Milliarden US-Dollar (rund 1,3 Milliarden Euro) im Jahre 2017 wachsen wird. Risikoanleger setzen große Hoffnungen auf dieses Wachstum. Das Unternehmen MongoDB hat letzten Herbst 150 Millionen US-Dollar (rund 110 Millionen Euro) Kapital hinzugewonnen. Dies war kurz nachdem die NoSQL-Anbieter  DataStax und Couchbase 45 bzw. 25 Millionen US-Dollar (rund 33 bzw. 18 Millionen Euro) Kapital einsammeln konnten.

Oracle, IBM und Microsoft greifen an

Selbst große Anbieter relationaler Datenbanken haben in das NoSQL-Spiel eingegriffen. Oracle stellte Ende 2011 eine NoSQL-Datenbank vor und war einer der Hauptsponsoren der letztjährigen NoSQL-Now!-Konferenz. Oracles Repräsentanten haben eine Keynote gehalten und zwei technische Sitzungen geleitet. Seit letzten Juni unterstützt IBM MongoDB mit seiner relationale Datenbank DB2. Anwender können somit Daten im JSON-Format (JavaScript Object Notation) speichern. DB2 kann zudem mit Daten der Formate Graph und XML umgehen. Im März akquirierte IBM Cloudant, einen NoSQL-Anbieter, der eine gehostete Version der JSON-basierten CouchDB-Datenbank betreibt. Microsoft bietet einen NoSQL-Data-Store als Teil seiner Cloud-Plattform Microsoft Azure an.

Anwendungs-orientierte Datenanforderungen und Cloud Computing bahnen den Weg für NoSQL, sagt Carl Olofson, Datenbank-Analyst bei IDC. Er vergleicht die Investitionen von IT-Managern und Geschäftsführer in NoSQL mit dem Kauf von neuen, unbekannten Aktien. „Die meisten NoSQL-Datenbanken sind neu und noch nicht kampferprobt“, sagt der Analyse. „Wenn Sie ständig Datendefinitionen ändern und Sie relationale Datenbanken nicht schnell genug modifizieren können, ist NoSQL eine Alternative. Allerdings bleibt ein Risiko bestehen.“

NoSQL-Technologien sind in der Regel nicht ACID-konform (deutsch: AKID - Atomarität, Konsistenz, Isolation und Dauerhaftigkeit) und garantieren keine Transaktions-Integrität, wie es bei relationalen Datenbanken der Fall ist. Weiterhin fehlt es laut Olofson häufig an Services in den Bereichen Disaster Recovery (DR), Security und Datenqualität. Wie andere Analysten erwartet aber auch er, dass sich mit fortschreitender Marktreife Verbesserungen ergeben.

„NoSQL-Datenbanken eignen sich hervorragend für die Verarbeitung von XML- und JSON-Daten. Dazu gehören auch Dinge, mit denen Java-Entwickler heutzutage arbeiten“, erläutert Wayne Eckerson, Analyst für TechTarget und Präsident des Beratungshauses Eckerson Group. Laut Eckerson sind sie vor allem für hoch-performante Web-Applikationen geeignet, die viele Lese- und Schreib-Zugriffen haben. Für komplexe Queries und Analysen seien sie nicht die beste Wahl.

NoSQL-Software bringt Geschwindigkeit

Das trifft auf die Datenbank-Architektur von Exelate zu. Die Firma bietet Data Services und Technologien im Bereich Marketing an. Exelate verwendet eine Reihe Tools, um demographische Daten an Werbetreibende und Verleger zu verkaufen. „Daten sind unser Geschäft“, sagt Mitgründer und CTO Elad Efraim. Daher ist seiner Aussage nach Leistung vorrangig. Exelate wurde vor sieben Jahren gegründet und hat nicht mit NoSQL-Technologie begonnen. Der Bedarf an Geschwindigkeit hat allerdings dazu geführt, dass Efraim und sein Team nun mit Aerospike arbeiten. Hierbei handelt es sich um eine In-Memory NoSQL-Datenbank, die bei der Skalierung der Firmen-Infrastruktur hilft. Das Unternehmen kann rund eine Billion Echtzeit-Daten-Transaktionen pro Monat verarbeiten.

Elad EfraimElad Efraim

Aerospike bietet ein hoch-performantes Repository für Daten von Website-Besuchern, das ständig aktualisiert wird. „Wir sprechen hier von einem hoch-skalierten System mit einer hohen Kapazität von Lese- und Schreibzugriffen, die in einigen Millisekunden abgeschlossen sein müssen. Für uns ist der Zugriff auf die Daten sehr wichtig, so dass unseren Kunden ihre Entscheidung damit treffen können“, fügte Efraim hinzu.

Die Datenbank läuft auf Servern, die sich in vier vollständig replizierten Data Centern befinden. Der Index wird im Arbeitsspeicher abgelegt und im Server-Cluster für eine weitere Verarbeitung gehalten. Von dort lassen sich die Daten fördern und mit anderen Informationen aus Analysen und Back-Office-Systemen verbinden. Damit das funktioniert, setzen die Anwendungen von Exelate nicht nur auf NoSQL-Software. Eine Ebene über dem Aerospike-Repository befindet sich eine „standardmäßige“ relationale MySQL-Datenbank. Damit können Kunden Daten aggregieren. Das Unternehmen verwendet zusätzlich eine Netezza-Appliance und eine relationale Datenbank von IBM, die für Data Warehousing und analytische Zwecke im Einsatz sind.

Firmen wie Exelate und Crittercism müssen sich nicht mehr zwischen Schwarz und Schwarz bei Datenbanken entscheiden. Die neue Farbe NoSQL lässt sich einsetzen, wenn für bestimmte Applikationen herkömmliche relationale Datenbanken nicht ausreichen. Das SQL-Schwarz wird allerdings in den IT-Abteilungen nicht komplett verschwinden. Im Moment sieht es so aus, dass für beide Technologien genug Platz in der Datenbank-Garage ist.

Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Big Data

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close