Big Data und NoSQL-Datenbanken

Relationale Datenbanken sind nicht immer ideal

| Autor / Redakteur: Thomas Joos / Nico Litzel

Auch im Cloud-Dienst Amazon Web Services (AWS) stehen NoSQL-Datenbanken zur Verfügung, neben anderen Technologien, die für Big Data hilfreich sind.
Auch im Cloud-Dienst Amazon Web Services (AWS) stehen NoSQL-Datenbanken zur Verfügung, neben anderen Technologien, die für Big Data hilfreich sind. (Bild: T. Joos)

Bei der Datenverarbeitung von Big Data spielen vor allem NoSQL-Datenbanken eine wichtige Rolle. Diese können im Vergleich zu relationalen Datenbanken große Datenmengen oft schneller verarbeiten. Aber auch relationale Datenbanken bieten Möglichkeiten. Wir zeigen, worauf Unternehmen achten sollten.

NoSQL-Datenbanken arbeiten bei der Datenverarbeitung nicht mit einem relationalen Ansatz und verwenden daher auch keine Tabellenschemas. Das beschleunigt Zugriffe großer Datenmengen, wenn Abfragen diesen Ansatz unterstützen. Relationale Datenbanken haben bei sehr großen Datenmengen oft Leistungsprobleme. Im Fokus von NoSQL-Datenbanken stehen daher vor allem Szenarien, in denen relationale Datenbanken von Oracle, IBM und Microsoft an ihre Grenzen stoßen. Das ist im Big-Data-Einsatz besonders häufig der Fall. Verantwortliche müssen sich daher bei der Planung von Big-Data-Infrastrukturen auch in diesem Bereich informieren und unter Umständen den Einsatz von NoSQL-Datenbanken planen.

Darum sind NoSQL-Datenbanken oft besser geeignet

Beispiele für Vorteile von NoSQL-Datenbanken sind vor allem unstrukturierte Daten aus den Bereichen Kommunikation, soziale Medien und andere nichtrelational zugreifbaren Daten. Auch sehr große Datenmengen auf Basis von Bildern, Audiodateien, Videos und mehr passen in diese Kategorie. Dazu kommt, dass NoSQL-Datenbanken keine Transaktionen nutzen, was bei relationalen Datenbanken eine Grundtechnik darstellt. NoSQL-Datenbanken synchronisieren stattdessen Datenmengen in sehr kurzen Zeitabständen zwischen den Knoten, um eine Konsistenz zu erreichen. Dadurch können NoSQL-Datenbanken in sehr kurzer Zeit riesige Datenmengen verarbeiten. Häufig sind erst dadurch Big-Data-Abfragen erst sinnvoll möglich.

Einfach ausgedrückt sind NoSQL-Datenbanken vor allem dann sinnvoll, wenn die Daten in keine relationale Struktur oder in Tabellen passen. Diese Datenbanken ergänzen aber nur die Möglichkeiten von Unternehmen und sollen keine vorhandenen Datenbanken oder Datenbank-Systeme ersetzen. Denn geht es um feste Strukturen und der Zuweisung von Daten untereinander, kommen Unternehmen auch zukünftig nicht um SQL-Datenbanken herum. NoSQL-Datenbanken ergänzen diese Möglichkeiten nur und verbessern die Datenverarbeitung von großen Datenmengen für Big Data.

Vorteile von NoSQL in Kombination mit Big Data

Viele NoSQL-Datenbanken stehen kostenlos als Open Source Software zur Verfügung. Beispiele dafür sind MongoDB, Cassandra und HBase. Vor allem MongoDB zeichnet sich nur eine schnelle Installation und einfache Verwaltung aus.

Wenn Unternehmen keinen eigenen Datenbank-Server betreiben wollen, gibt es in Amazon Web Services (AWS) auch die Möglichkeit, auf den Dienst DynamoDB zu setzen. Über einen Assistenten erstellen Entwickler eigene Tabellen und können diese in Big-Data-Infrastrukturen einbinden. Basis dieser Datenbank ist NoSQL.

NoSQL-Datenbanken unterscheiden sich oft ebenfalls in der Struktur. Während Amazons DynamoDB einfache einfache Key Value Stores nutzt, können Systeme wie MongoDB auch Verknüpfungen zwischen Dokumenten im Speicher herstellen. Das heißt, Entwickler müssen sich nicht nur entscheiden, ob SQL- oder NoSQL-Datenbanken in der eigenen Big-Data-Infrastruktur eingesetzt werden sollen, sondern auch welche Art von NoSQL.

NoSQL-Datenbanken unterstützen vor allem Cluster mit einer großen Anzahl gleichberechtigter Knoten, um Daten zu berechnen. Da das auch der Ansatz von Big-Data-Lösungen wie Hadoop ist, ist der parallele Einsatz daher mehr als sinnvoll. Soll eine NoSQL-Infrastruktur beschleunigt werden, müssen Administratoren keine Optimierung des Quellcodes durchführen, bessere Abfragen schreiben oder Indizes verschiedener Art erstellen. Es reicht aus, dem Cluster weitere Knoten hinzuzufügen, um die Rechenkraft zu erhöhen. Ein Nebeneffekt ist hier auch das Erhöhen der Verfügbarkeit, da neue Knoten auch zur Ausfallsicherheit dienen. Außerdem sind in diesen Szenarien, vor allem im Big-Data-Bereich, in den meisten Fällen keine Datensicherungen mehr notwendig.

Spaltenorientierte und andere NoSQL-Datenbanken

Eine weitere Variante von NoSQL-Datenbanken sind spaltenorientierte „Wide-Column-Datenbanken“. Diese können große strukturierte Datenmengen verarbeiten, die in relationalen Datenbanksystemen bereits Probleme machen, aber eben nicht ganz unstrukturiert sind. Diese Datenbanken bieten einen Vorteil, wenn es eine große Menge an Zeilen, bei gleichzeitig wenig Spalten gibt. Noch effizienter werden diese Datenbanken dann, wenn bei Abfragen auch nur eine Teilmenge der Spalten verwendet wird. Normalerweise muss jede Abfrage immer alle Spalten lesen. Das ist ineffizient und kostet eine Menge Leistung, vor allem bei großen Datenmengen.

Spaltenorientierte Datenbanken nutzen nur genau die Spalten, die für die Abfrage relevant sind. Spalten lassen sich noch in mehrere Bereiche unterteilen. Das ermöglicht einheitliche Datentypen mit wenig unterschiedlichen Werten pro Spalte. Vorteile dabei sind die Möglichkeiten, solche Datenbanken stark komprimieren zu können und dadurch Speicherplatz zu sparen. Bei großen Datenmengen im Big-Data-Bereich bietet sich hier also durchaus enormes Einsparpotenzial.

Graphen-Datenbanken speichern unstrukturierte Daten wiederum in Diagrammen zusammen mit ihren Eigenschaften. Das hier verwendete Datenbankformat RDF „Resource Description Framework” speichert dazu die Daten innerhalb der Graphen. Genutzt wird das vor allem für Benutzer-Beziehungen in sozialen Netzwerken wie Facebook oder Twitter. Traversierung eines Graphen beginnt immer beim Startknoten. Das wiederum beschleunigt Abfragen.

In-Memory-Datenbanken im Vergleich zu NoSQL

In-Memory-Datenbanken haben sich für die Verarbeitung großer Datenmengen ebenfalls durchgesetzt. Hier liegen die kompletten Daten im Arbeitsspeicher des Servers, was Abfragen extrem beschleunigt. Auch relationale Datenbanken wie Microsoft SQL Server 2014 nutzen diese Technik. In-Memory-Datenbanken laden alle Daten, inklusive der notwendigen Servermechanismen, in den Arbeitsspeicher. Die Analyse von großen Datenmengen erfolgt mit In-Memory-Datenbanken nahezu in Echtzeit.

SQL Server 2014 erlaubt das Betreiben kompletter Datenbanken direkt im Arbeitsspeicher. Diese In-Memory-Technologie mit dem Entwicklungs-Namen „Hekaton“, oder offiziell Online Transaction Processing (OLTP) genannt, beschleunigt enorm die Abfragen für integrierte Datenbanken, auch im Big-Data-Bereich. Durch das Verwenden der Technologie lassen sich Datenbanken, laut Microsoft, um den Faktor zehn bis 50 beschleunigen. Vor allem für den Betrieb leistungsstarker Datenbanken kann das eine wichtige Rolle spielen.

Microsoft hat in diesem Bereich auch die Komprimierung verbessert, sodass Daten nicht mehr so viel Arbeitsspeicher benötigen. Laut Microsoft sind die Daten im Arbeitsspeicher nur noch etwa sieben Prozent so groß wie die originalen Daten. Eine weitere Neuerung in diesem Bereich ist die Möglichkeit, die Daten auch aktualisieren zu können. Sie können die Daten daher nicht mehr nur lesen, sondern auch aktualisieren, wenn diese im Speicher des Servers abgelegt werden. Das erspart die Neuerstellung eines solchen Indexes.

Nachteile von NoSQL im Auge behalten

NoSQL-Infrastrukturen, vor allem im Bereich Big Data, sind oft sehr kompliziert aufgebaut. Entwickler und Administratoren müssen viel Zeit für Planung, Entwicklung, Betrieb und Optimierung opfern. Auch die Weiterbildung ist in diesem komplizierten Szenario nicht zu vergessen. Das kostet Geld, was auf der anderen Seite zwar bei den Lizenzen eingespart werden kann, aber ebenfalls investiert werden muss.

Ohne entsprechende Weiterbildung lassen sich solche Szenarien eher selten aufbauen. Dazu kommt der Standard-Nachteil vieler Open-Source-Lösungen: Es gibt nahezu keinen kommerziellen Support. Funktioniert etwas nicht, müssen sich Entwickler und Administratoren selbst helfen. Abfragen sind in NoSQL-Datenbanken aber oft ähnlich zu SQL-Datenbanken, grundlegende Verwaltungs- und Entwicklungs-Ansätze gibt es also durchaus.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43169725 / Infrastruktur)