Irochka - Fotolia

Das Performance Management von NoSQL-Datenbanken ist noch unausgereift

Die Leistung von NoSQL-Datenbanken zu überwachen und zu verwalten bietet große Vorteile. Das richtige Tool hierfür müssen DBAs aber erst finden.

Dieser Artikel behandelt

Datenbanksysteme

ÄHNLICHE THEMEN

SQL-basierte relationale Datenbanken sind in den letzten Jahrzehnten zu einer Säule in vielen Organisationen geworden. Gleichzeitig wurden Standardprozesse für Tuning, Überwachung und Management der SQL-Datenbank-Performance entwickelt, die durch eine Vielzahl von Tools mit automatisiertem Performance Management unterstützt werden. Bei NoSQL-Datenbanken liegen die Dinge leider anders.

NoSQL-Technologie steckt noch in den Kinderschuhen. Die breite Palette an NoSQL-Typen und -Produkten macht es schwierig, einen ausreichenden Performance-Management-Ansatz zu implementieren. Das Resultat ist, dass das Leistung-Management von NoSQL-Datenbanken noch in der Entwicklung ist und wahrscheinlich auch noch einige Zeit sein wird.

„Anwender kennen die Muster, um relationale Datenbanksysteme zu optimieren bereits eine längere Zeit“, sagt Pramod Sadalage, Principal Consultant beim Softwareentwicklungs- und Beratungsdienstleister ThoughtWorks. „Doch diese Art von Muster sind bei NoSQL noch nicht ausgereift. Die Muster, welche bereits existieren, sind spezifisch auf eine Datenbank ausgelegt.“

Das bedeutet, dass die Suche nach einer soliden NoSQL-Performance bereits am Anfang eines Projekts beginnen sollte, sind sich Sadalage und andere Datenbankexperten einig. IT-Manager und -Architekten sowie Entwickler, die NoSQL-Optionen evaluieren, müssen mit Sorgfalt die richtige Datenbank für das spezifische Einsatzszenario wählen.

NoSQL-Datenbanken gelten häufig als passend, um mit unterschiedlichen Technologien spezifische Arten von Anwendungen abzudecken. Und es gibt einige Argumente, die dafür sprechen. Zu den Haupttypen von NoSQL-Systemen gehören Key Value Stores (Schlüssel-Wert-Datenbanken), Dokumentendatenbanken, breite Spaltendatenbanken (oder spaltenorientierte Datenbanken) und Graphdatenbanken.

Konsens herrscht aktuell nur darüber, für welche Szenarien sich die jeweiligen Datenbanken einsetzen lassen. Zum Beispiel eignen sich Spaltendatenbanken für schreibintensive Anwendungen, bei denen kleinere Inkonsistenzen bei Datenbankreplikaten kein Problem sind. Dokumentendatenbanken werden vor allem für Webanwendungen eingesetzt, bei denen JSON-Datenstrukturen vertreten und flexible Updates notwendig sind.

Key Value Stores ermöglichen wiederum über einfache Schlüssel einen schnellen Datenzugriff, was sie zum Beispiel für Daten-Caching prädestiniert. Graphdatenbanken eignen sich für Einsatzszenarien, wo Beziehungen zwischen Datenelementen ein Netzwerk bilden, welches in graphischer Form dargestellt werden kann (zum Beispiel beim Business Process Management oder für soziale Netzwerke).

Innerhalb jeder Kategorie gibt es allerdings eine Vielzahl von individuellen Produkten und Open-Source-Technologien, zwischen denen potenzielle Nutzer unterscheiden müssen. Auch wenn es eine Handvoll Ausnahmen gibt – zum Beispiel MongoDB und Apache Cassandra – gibt es keine allgemeingültige Antwort auf die Anforderungen an NoSQL-Anwendungen.

NoSQL-Datenbanken sinnvoll einsetzen

„Die Anwender sind eine relationale Welt gewohnt, wo Datenbanken praktisch für alles verwendet werden können. Man sollte sich aber sicher sein, NoSQL für einen spezifischen Anwendungsfall einzusetzen und sichergehen, dass die gewählte NoSQL-Datenbank so konzipiert wurde, dass sie die angemessene Leistung für diesen Anwendungsfall bietet“, sagt Craig Mullins, President und Principal Consultant bei Mullins Consulting.

Um die Art von Datenbankleistung zu erhalten, nach der man sucht, müssen IT-Teams wirklich verstehen, wie die Datenbank arbeitet, bevor sie eine installieren, erläutert Mullins. Dabei verweist er auf das verteilte Datenbanksystem Cassandra als ein Beispiel dafür, wie sich eine passende Anwendung auf die Verarbeitungsleistung in einer NoSQL-Umgebung auswirkt.

„Cassandra ist so konzipiert, dass alles in einer Zeile oder einem Datensatz gespeichert ist“, sagt Mullins. „In einer relationalen Welt würde man für diesen Fall Dutzende Tabellen verwenden. Doch es wird alles in einem großen Datensatz in der Cassandra-Datenbank gespeichert.“ Das ist nach Angaben des Beraters leistungsfähig, wenn man auf alle Daten eines bestimmten Datensatzes zugreifen muss. Dabei verweist er auf ein Beispiel, bei dem die Kreditwürdigkeit von Kunden auf diese Weise geprüft wird. Allerdings erklärt Mullins auch: „Sollte ein Business-Anwender etwas anderes benötigen, zum Beispiel einen Bericht über alle Kunden, kann der Ansatz, dass ein Datensatz alles speichert, sehr viel Leistung beanspruchen.“

Darüber hinaus müssen Anwendungselemente, die standardsmäßig mit SQL-Datenbanken kommen, häufig manuell in NoSQL-Systemen codiert werden. „Die Leistung von NoSQL aufrechtzuerhalten nimmt deutlich mehr Zeit in Anspruch als viele Leute denken. Man muss viel benutzerdefinierten Code schreiben“, sagt Rick Sherman, Gründer des Beratungshauses Athena IT Solutions.

Mehr zum Thema Datenbanken:

Welche Alternativen zu den AWS-Datenbankservices existieren.

Graphdatenbank Titan in der AWS-Cloud verwenden.

NoSQL-basierte Datenbanken bei Amazon Web Services (AWS) im Vergleich.

Was beim Betrieb von Oracle-Datenbanken auf All-Flash-Systemen zu beachten ist.

EnterpriseDB bietet neues operationales Datenbank-Management-System an.

Häufig wird diese Arbeit von Softwareentwicklern erledigt, die nicht mit dem Innenleben der Datenbank vertraut sind. „Entwickler sind keine Datenbank-Designer“, sagt Mullins. „Sie designen etwas, das auf ihren Programmanforderungen basiert, und nicht für den allgemeinen Gebrauch genutzt werden kann.“

NoSQL-Fähigkeiten sind kein Standard

Selbst unter Datenbankadministratoren (DBAs) ist die begrenzte Verfügbarkeit von NoSQL-Know-how ein Problem, mit dem Data-Management-Teams konfrontiert sind, wenn sie die Performance einer NoSQL-Datenbank sicherstellen möchten, um eine Anwendung aufrechtzuerhalten. Der Reichtum an NoSQL-Technologieoptionen ging bisher nicht einher mit einem Reichtum an Ressourcen, ist Sadalage überzeugt. „Man findet einen Oracle DBA mit 15 Jahren Berufserfahrung relativ leicht. Das ist für Cassandra nicht möglich. Die Datenbank selbst ist erst acht Jahre alt.“

Der erste Schub für die Nutzung von NoSQL kam durch operative Anwendungen, doch mittlerweile richtet sich die Aufmerksamkeit auch auf Analytics-Anwendungen. Und wenn man Analytics- und Reporting-Anforderungen hinzufügt, wird es aus Sicht der Analysten immer schwieriger, die Geschwindigkeit einer NoSQL-Datenbank aufrechtzuerhalten.

Nach Angaben von Analysten wie Sherman und Sadalage sind die meisten NoSQL-Datenbanken letztliche keine wahren Datenbanken. „Sie sind Data Engines, die es Entwicklern erlauben, eigene Datenbanken zu bauen, die für eine Anwendung optimiert sind“, sagt Sadalage. Sein Rat lautet daher: „Wählen Sie nicht das falsche Tool und beschweren sich hinterher, sondern wählen Sie die richtigen Werkzeuge für den richtigen Job.“

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

Artikel wurde zuletzt im August 2016 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Datenbanksysteme

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close