Verschiedene NoSQL-Datenbanken benötigen verschiedene Ansätze
Die Zahl der NoSQL-Optionen ist kaum zu überblicken. Die Datenbanken eignen sich jeweils für bestimmte Einsätze, die man vorher analysieren sollte.
NoSQL-Datenbanken sind dafür geschaffen, um Probleme bei der Datenverarbeitung zu lösen, die durch die wachsende Datenmenge und Datenvielfalt auftreten. Das gilt vor allem im Hinblick auf Big-Data-Anwendungen. Es gibt bei NoSQL-Technologien allerdings keinen Mangel bei Anzahl und Vielfalt, so dass IT- und Datenmanager aus vielen Alternativen wählen müssen, wenn Sie den Einsatz der Technologie planen.
„Es gibt heutzutage so viele NoSQL-Datenbanken. Ich glaube wir werden täglich von zwei oder drei neuen herausgefordert“, scherzt Michael Simone, Global Head CitiData Platform Engineering bei der Citigroup, während einer Präsentation auf der MongoDB World Conference in New York.
Citi selbst hat sich für MongoDB als NoSQL-Variante entschieden und setzt sie bei verschiedenen Applikationen als Alternative für relationale Datenbanken ein. Der Scherz von Simone hat den Nagel allerdings auf den Kopf getroffen. Wenn Unternehmen mit NoSQL-Produkten liebäugeln, müssen sie sich darauf konzentrieren, welche Variante am besten ihre Probleme löst.
Dieser Prozess beginnt mit dem Verständnis der verschiedenen Arten von NoSQL-Datenbanken. Diese lassen sich grob in vier Kategorien einteilen:
- Dokumentenorientierte Datenbanken;
- Key-Value-Datenbanken;
- Spaltenorientierte Datenbanken;
- Graphdatenbanken.
Sie alle teilen sich einige gemeinsame Eigenschaften. Das gilt vor allem für die Unterstützung von flexiblen und dynamischen Datenbank-Designs, die mit SQL-basierten relationalen Datenbanken nicht machbar sind.
„Allerdings eignet sich nicht jeder NoSQL-Datenbank-Typus für alle Anwendungsfälle“, sagt Nick Heudecker, Analyst bei Gartner. „Bei der Suche nach der richtigen Richtung sollten Sie sich fragen, mit welche Formen von Daten Sie arbeiten und wie Ihre Applikationen diese Daten nutzen.“
Dokumentenorientierte Datenbanken unterstützen strukturellen Mix
Dokumentenorientierte Datenbanken werden zum Beispiel oftmals bei Content Management Systemen (CMS) eingesetzt. Außerdem sammelt und verarbeitet man damit Daten, die von Web- und mobilen Anwendungen mit hohem Traffic kommen, um sie überwachen.
Wie der Name schon vermuten lässt, speichern diese Datenbanken Datenelemente in dokumentenähnlichen Strukturen, was in einigen Fällen sogar einfacher ist, da sie schemalos sind. MongoDB, CouchDB, Couchbase Server und MarkLogic sind prominente Beispiele von dokumentenorientierten Datenbanken.
Es gibt heutzutage so viele NoSQL-Datenbanken. Ich glaube wir werden täglich von zwei oder drei neuen herausgefordert.
Michael Simone, Global Head CitiData Platform Engineering, Citigroup
Simone verweist darauf, dass die Verwendung von MongoDB bei der Citigroup von den Entwicklern angestoßen wurde, die sich mit Problemen der Datenreplikation in einer Online-Finanzanwendung und der Vielfalt der Datenstrukturen auseinandersetzen mussten.
Die Anwendung wurde ursprünglich auf eine relationale Datenbank aufgesetzt. Die Verarbeitung der Daten mit dieser Plattform war allerdings langsam und Fehleranfällig. „Uns wurde klar, dass wir nicht mit allen Datenformaten Schritt halten können, die von unseren Data Scientist kommen“, erläutert er.
MongoDBs Unterstützung für dynamische Schemata hat sich laut Simone als gute Wahl für die sich schnell entwickelnde Anwendung erwiesen. „Wir haben herausgefunden, dass wir alles modellieren können, was auf uns zukommt“, sagt er.
Die Arbeiten bei der Modellierung haben sich verglichen mit dem relationalen Ansatz wesentlich schneller erledigen lassen. Die Entwickler haben einen Prototypen mit MongoDB in nur vier Monaten auf die Beine gestellt.
Key-Value-Datenbanken halten es simpel
Key-Value-Datenbanken, wie zum Beispiel Aerospike, Redis und Riak, sind die einfachste Form von NoSQL-Software. Sie paaren einzigartige Schlüssel mit den zugehörigen Werten in Datenelementen. Das Ziel ist eine schnelle Performance für Applikationen bezogen auf relativ einfache Datensätze. „Key-Value-Datenspeicher sind unglaublich leichtgewichtig“, sagt Joe Caserta, Präsident des Beratungshauses und Service-Providers Caserta Concepts. „Wir können Suchen in Sekunden erledigen.“
Flyware Software verwendet Riak, das von Basho Technologies entwickelt wird, um damit eine mobile App zu betreiben, die Anwender via Smartphone Taxis herbeiruft. Cuyler Jones ist ehemaliger Architekt von Flywheel. Er sagt, dass die Firma die Datenbank so skalieren kann, dass sie die Anforderungen zu Spitzenzeiten erfüllt. Genauso wichtig sind die Hochverfügbarkeits-Merkmale und die Unterstützung für konsistente Datenzugriffszeiten, ergänzt er.
Spaltenorientierte Datenbanken bieten einen breiten Ansatz
Spaltenorientierte Datenbanken halten Daten in Tabellen vor, die sehr große Mengen an Spalten enthalten können. Damit ist eine hohe Performance und Skalierbarkeit bei der Verarbeitung großer Datensätze möglich. Zu den beliebten Anwendungsfällen gehören Internetsuche und andere hochskalierte Web-Applikationen sowie Analytik-Apps im Petabyte-Bereich. Accumulo, Cassandra und HBase gehören zur Kategorie der spaltenorientierten Datenbanken.
Der Spalten-basierte Ansatz eignet sich laut Jeremy Pollack, Entwicklungsmanager des Online-Providers Ancestry.com, gut für DNA-Vergleichsanwendungen. Die Firma Provo aus Utah verwendet HBase zusammen mit Hadoop, um DNA-Berechnungen auszuführen. Das Unternehmen hilft Kunden, ihren ethnische Hintergrund und geografischen Ursprünge zu erforschen sowie unbekannte Verwandte zu suchen.
Um die gewünschte Leistung von der Datenbank zu erhalten, musste der Anbieter einige Änderungen vornehmen. Pollack beschreibt die Programmierung von HBase als ein wackliges Verfahren. „Es gibt Millionen Knöpfe, die man wählen und einstellen kann“, sagt der Manager. „Man muss daher bereit sein, sich die Hände schmutzig zu machen.“ Die NoSQL-Technologie ermöglicht es der Ahnenforschungsplattform 700.000 Datenpunkte von neuen und gespeicherten DNA-Beispielen zu vergleichen, um Übereinstimmungen zu finden.
Graphdatenbanken tracken Datenbeziehungen
Graphdatenbanken, wie zum Beispiel InfiniteGraph und Neo4j, speichern verwandte Datenelemente in Graph-ähnlichen Strukturen, die ihre assoziative Qualitäten verwenden, um Applikationen wie Empfehlungsanwendungen oder soziale Netzwerken zu betreiben.
Mehr zum Thema NoSQL-Datenbanken:
NoSQL auf dem Prüfstand: Welche Anwendungsfälle eignen sich für die Datenbank
NoSQL-Datenbanken brechen die Dominanz relationaler Datenverarbeitung
Business Intelligence: Eignen sich SQL- oder NoSQL-Datenbanken besser für den Einsatz?
Dabei lassen sich Graphdatenbanken einsetzen, um Beziehungen zwischen verschiedenen Menschen und deren gemeinsamen Interessen herzustellen, sagt Alex Trofymenko. Er ist Leiter der Technologie-Abteilung bei HealthUnlocked, einer in London ansässigen Firma, die ein Anwender-Forum mit medizinischen Themen betreibt.
Trofymenko und sein Team setzen Neo4j von Neo Technology ein, um solche Wechselbeziehungen herzustellen. „Mit Graphdatenbanken erhalten wir jede Menge Informationen“, sagt er. „Nehmen wir an, dass sich ein Anwender für Diabetes oder Sport interessiert. Das können wir dann sehen.“
Für eine Website, auf die Millionen willkürliche Textsuchen einprasseln, ist das wertvoll. Auf diese Weise lässt sich eine Verbindung zu relevanten Gesundheitsbegriffen herstellen und eine Plattform erstellen, mit der Nutzer schnell Informationen oder mögliche Behandlungsvorschläge finden.
Mit den verschiedenen Optionen, die durch NoSQL-Technologien entstanden sind, unterschiedet sich der Auswahlprozess bei einer Datenbank heute stark von vor einigen Jahren. „Früher fragte man lediglich, ob man Microsoft, Oracle oder IBM kaufen soll“, sagt Caserta. Die größere Auswahl kann für Unternehmen von Vorteil sein. Das gilt aber nur dann, wenn man umsichtig an die Auswahl herangeht und sich nicht für die falsche Datenbank entscheidet.
Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!