Apps und Analysen beschleunigen mit NoSQL

Ideales Paar: Cloud und NoSQL

von - 18.07.2018
Wie in vielen IT-Bereichen wird die Cloud als Bereitstellungsmodell auch für Datenbanken immer wichtiger. NoSQL-Systeme bieten dafür optimale Voraussetzungen, denn sie lassen sich sehr einfach skalieren. Auch viele der Daten, die typischerweise in NoSQL-Systemen verarbeitet werden, sind bereits in der Cloud, etwa Sensormessungen, E-Commerce-Transaktionen oder Social-Media-Informationen.
Schon die Nutzung der Cloud als Platform as a Service (PaaS) für Datenbankanwendungen bringt Vorteile hinsichtlich Flexibilität, weltweiter Verfügbarkeit und Skalierbarkeit. Einen Schritt weiter gehen „Database as a Service“-Ange­bote – voll gemanagte Datenbankdienste aus der Cloud.
„Unternehmen müssen sich nicht länger Gedanken über das Datenbankmanagment, Software-Patches, Sicherheit, Monitoring, Backups oder Aufbau und Betrieb komplexer verteilter Datenbanksysteme machen“, betont Roman Gruhn vom Unternehmen MongoDB, das mit MongoDB Atlas einen solchen Dienst anbietet. Die Nachfrage zeige, wie beliebt das Konzept sei: „Unsere Umsätze mit Atlas wachsen jährlich um 500 Prozent“, so Gruhn.
Roman Gruhn
Roman Gruhn
Senior Director Strategic Fields Programmes
www.mongodb.com
Foto: MongoDB
„Vor fünf Jahren waren rund fünf Prozent unserer Projekte Migra­tionen von relationalen Systemen, heute sind es 30 Prozent“
Neben Datenbankdiensten wie Atlas, die auf unterschiedlichen Infrastrukturen betrieben werden können, gibt es auch Provider-eigene Angebote. Zu diesen cloudspezifischen Lösungen gehört Amazon DynamoDB. Der Dienst ist vollständig verwaltet und unterstützt sowohl Key-Value-Stores wie auch dokumentenbasierte Datenmodelle. Der Anwender legt nur eine Tabelle an und definiert, in welchem Umfang das System skalieren soll. Einrichtung und Konfiguration erfolgen automatisch. Über die Cache-Funktion DynamoDB Accelerator (DAX) lassen sich die Antwortzeiten laut Anbieter von Milli- auf Mi­kro­sekunden beschleunigen.
DynamoDB kann vom Serverless-Computing-Dienst Lambda aus getriggert werden. Daten, die gerade nicht für Abfragen verwendet werden (Data at Rest) lassen sich automatisiert über den AWS Key Management Service (KMS) verschlüsseln. Ver- und Entschlüsselung erfolgen transparent, an der Applikation sind keine Änderungen notwendig. Die Verschlüsselung lässt sich allerdings nur für neue Tabellen einschalten, nicht für bereits bestehende. Auch eine nachträgliche Deaktivierung ist nicht möglich. DynamoDB unterstützt sowohl abgeschwächte (Eventual Consistency) als auch starke Konsistenz (Strong Consistency).
Jürgen Wirtgen
Jürgen Wirtgen
Data Platform Lead
bei Microsoft
www.microsoft.com/de-de
Foto: Microsoft
„Welche Art NoSQL-Datenbank genutzt wird, hängt vom Anwendungsfall ab.“
Auch Microsoft bietet in der Azure Cloud mit Cosmos DB eine NoSQL-Lösung an. Der Service unterstützt Key-Value-, dokumentenorientierte, graphenbasierte und Wide-Column-Datenbankmodelle und bietet fünf Konsistenzoptionen. Die Latenz der weltweit verteilten Datenbank beträgt laut Anbieter in der Regel weniger als 10 ms für Lese- und 15 ms für indizierte Schreibvorgänge. „Unsere Datenbanken wurden von Anfang an für eine globale Verteilung und horizontale Skalierbarkeit konzipiert“, sagt Data Platform Lead Wirtgen.
Google hat gleich zwei NoSQL-Services im Angebot: Cloud Bigtable ist vor allem für das Big-Data-Umfeld konzipiert und lässt sich über die HBase-API leicht mit Hadoop oder Spark verbinden. Der vollständig verwaltete Service soll mehrere Hundert Petabyte und mehrere Millionen Vorgänge pro Sekunde verarbeiten. Die Daten werden während der Übertragung (Data in Motion) und der Speicherung (Data at Rest) verschlüsselt.
Cloud Datastore ist ein vollständig von Google verwalteter dokumentenorientierter Service, der sich vor allem für mobile Apps und Web-Applikationen eignet. Diese können unter anderem über eine JSON-API auf die Daten zugreifen. Der Dienst bietet ein Abfragemodul, über das sich Inhalte suchen und sortieren lassen, und unterstützt ACID-Transaktionen. ACID steht für eine besonders verlässliche Datenspeicherung. Neben dem erwähnten MongoDB Atlas gibt es eine Reihe NoSQL-Systeme, die als verwalteter Service auf verschiedenen Cloud-Plattformen zur Verfügung stehen. „Wir beobachten speziell in den letzten zwölf Monaten eine verstärkte Nachfrage nach cloudneutralen NoSQL-Datenbank-Lösungen“, sagt Stefano Marmonti von MarkLogic.
Stefano Marmonti
Stefano Marmonti
Sales Director DACH bei MarkLogic
www.marklogic.om
Foto: MarkLogic
„Wir beobachten (…) eine verstärkte Nachfrage nach cloud-neutralen NoSQL-Datenbank-Lösungen.“
Auf der Open-Source-Datenbank Apache Cassandra setzt beispielsweise DataStax Enterprise (DSE) auf. Es bildet eine gemanagte Datenschicht mit Graph-, Such- und Analysefunktionen. Diese lässt sich in hybriden Umgebungen betreiben und über APIs oder Microservices steuern. „Als moderne Datenbankplattform bietet DSE sämtliche Pluspunkte von Apache Cassandra ohne die damit verbundenen Komplexitäten und ermöglicht so eine unternehmensweite, bedarfsgesteuerte Implementierung mit hoher Nutzerakzeptanz“, sagt Giscard Venn.
Aus dem Apache-Umfeld kommt auch die MapR Converged Data Platform. Neben der Datenbank, die dokumenten­orientierte wie auch Wide-Column-Modelle unterstützt, bietet sie Analyse-Tools wie Apache Drill und Apache Spark. MapR lässt sich ebenfalls in hybriden Umgebungen betreiben.
MarkLogic will mit seiner NoSQL-Datenbank vor allem eine Basis für Integrationsprojekte liefern und empfiehlt sich für unternehmenskritische Anwendungen. Die Lösung ist ACID-kompatibel und verwaltet verschiedene Datenmodelle und  -arten gemeinsam in einer Datenbank. Besonderen Wert legt der Hersteller auf Sicherheit. „Kunden entscheiden sich für Datenbank-Plattformen mit zertifizierten, granularen Sicherheitsfunktionen, die auch als cloudbasierte Lösung ein Höchstmaß an Sicherheit bieten“, weiß Sales Director Marmonti.
Der Zugriff auf Dokumente und deren Bearbeitung wird rollenbasiert gesteuert, Schlüssel für die Ver- und Entschlüsselung lassen sich in externen Key-Management-Systemen (KMS) speichern, sensible Daten wie Kreditkartennummern lassen sich regelbasiert vom Export ausnehmen.

Fazit & Ausblick

NoSQL-Datenbanken bieten hauptsächlich dort Vorteile, wo unterschiedliche Datenformate, schnell wechselnde Anforderungen an Datenmodell und Leistung sowie große Mengen an Daten anfallen, die schnell verarbeitet und analysiert werden müssen. Da sie sehr leicht über zusätzliche Server oder Rechenknoten skaliert werden können, sind sie besonders gut für die Nutzung in der Cloud geeignet. Die vollständig verwalteten Datenbankdienste der Provider und anderer Anbieter tun ihr Übriges, um die Einstiegshürden zu senken.
Noch herrschen in vielen Firmen Vorurteile gegen den Einsatz bei unternehmenskritischen Anwendungen oder großen Analyseaufgaben im Business-Intelligence-Umfeld. Immer mehr NoSQL-Lösungen genügen jedoch höchsten Sicherheitsanforderungen. Sie lassen sich zudem in hybriden Umgebungen installieren und erlauben so eine naht­lose Migration zwischen den Ressourcen im eigenen Rechenzentrum und Cloud-Instanzen.
Das ACID-Prinzip
Das Akronym ACID steht für wichtige Kriterien, welche die Verlässlichkeit der Datenspeicherung in einer Datenbank beschreiben. Sie werden von den meisten relationalen, aber auch einigen NoSQL-Systemen erfüllt. Die Buchstaben stehen für:
Atomicity: Eine Transaktion besteht zwar aus mehreren Datenbank-Operationen, wird aber nach dem Alles-oder-Nichts-Prinzip nur als Ganzes für gültig erklärt, ist also wie ein Atom „unteilbar“. Scheitert eine Operation, ist die ganze Transaktion ungültig.
Consistency: Vor dem Abschluss einer Transaktion werden die im Datenbankschema definierten Integritätsbedingungen überprüft. Die Transaktion gilt nur als erfolgreich, wenn diese erfüllt sind, die Datenbank bleibt im Hinblick auf die Integritätsbedingungen damit konsistent.
Isolation: Parallel laufende Transaktionen dürfen sich nicht gegenseitig beeinflussen. Daher werden Daten, die von einer Transaktion verwendet werden, für andere gesperrt. Da dies die Nebenläufigkeit stark einschränken kann, wird dieses Kriterium allerdings häufig nur abgeschwächt umgesetzt.
Durability: Daten sind nach Abschluss einer Transaktion dauerhaft in der Datenbank verfügbar, Software- oder Hardware-Fehler dürfen nicht zu einem Datenverlust führen.
Verwandte Themen