TechnologySeptember 9, 2021

NoSQL-Anwendungsfälle: Wann Sie eine nicht relationale Datenbank verwenden sollten

Rich Edwards
Rich Edwards
NoSQL-Anwendungsfälle: Wann Sie eine nicht relationale Datenbank verwenden sollten

Jahrzehntelang haben viele Unternehmen relationale Datenbanken verwendet, um ihre Daten zu speichern, zu schützen und darauf zuzugreifen. Insbesondere SQL-Datenbanken waren lange Zeit die geeignete Lösung und sind es für viele Anwendungsfälle immer noch. Heutzutage gibt es jedoch eine Vielzahl von Situationen, in denen SQL-Datenbanken die Anforderungen moderner Unternehmen nicht mehr erfüllen können, insbesondere derjenigen, die den Wechsel in die Cloud vollzogen haben. Diese Unternehmen setzen zunehmend auf NoSQL-Datenbanken, um ihre Ziele zu erreichen. 

NoSQL-Datenbanken sind wahrscheinlich in den folgenden Fällen die bessere Wahl:

  • Sie handhaben große Mengen und eine hohe Vielfalt an Daten
  • Skalierbarkeit spielt eine entscheidende Rolle
  • Sie benötigen kontinuierliche Verfügbarkeit
  • Sie arbeiten mit Big Data oder führen Echtzeitanalysen durch

Auch wenn bei diesen Anforderungen eine NoSQL-Datenbank häufig die Lösung der Wahl ist, sind vor dem Umstieg viele Dinge zu beachten. In diesem Beitrag untersuchen wir, bei welchen Anwendungsfällen der Einsatz einer NoSQL-Datenbank sinnvoll ist. Sehen wir uns zunächst NoSQL genauer an.

Was ist NoSQL?

NoSQL ist eine Kurzform von „Not only SQL“ oder „Non-SQL“. Der Begriff wird verwendet, um nicht relationale Datenbanken zu beschreiben. Um NoSQL-Datenbanken besser zu verstehen, werfen wir zunächst einen Blick auf ihre Alternative, SQL-Datenbanken.

SQL-Datenbanken wurden in den frühen 1970er Jahren entwickelt, als die Datenspeicherung extrem teuer war. Daher versuchen sie, die Datenduplizierung zwischen Tabellen zu minimieren. Dadurch sind SQL-Datenbanken zwar hochgradig organisiert, aber auch extrem unflexibel und schwierig zu ändern. Seitdem sind die Speicherkosten gesunken, während die Kosten für die Entwicklerzeit dramatisch gestiegen sind. Mit NoSQL-Datenbanken sind Entwickler nicht mehr auf den starren, tabellarischen Ansatz relationaler Datenbanken beschränkt und können weitaus flexibler und damit viel effizienter arbeiten. 

NoSQL weist viele Vorteile auf, einschließlich:

  • Möglichkeit zur Auswahl mehrerer Datenbanktypen—Key-Value, dokumentenorientiert, tabellarisch (oder Wide-Column), Graph und Multi-Modell—damit Sie die beste Lösung für Ihre Daten finden können.
  • Flexibilität, ohne vorherige Planung eine große Vielfalt von Datentypen einfach zusammen zu speichern und abzurufen. Die Daten können u. a. strukturiert, halbstrukturiert, unstrukturiert und polymorph sein.
  • Möglichkeit, der Datenbank neue Datentypen und Felder hinzuzufügen, ohne das Datenmodell neu definieren zu müssen.
  • Integrierte, horizontale Skalierbarkeit, mit der auch ein schnell wachsender Datenbestand bewältigt werden kann. Zudem ist die Skalierung viel kostengünstiger als bei einer SQL-Datenbank.
  • Kontinuierliche Verfügbarkeit und hohe Resilienz aufgrund der horizontalen Skalierung.
  • Benutzerfreundlichkeit für Entwickler, die gut zu modernen, agilen Teams passt. 

Erfahren Sie mehr über NoSQL.

Vergleich von NoSQL mit SQL

Obwohl NoSQL-Datenbanken viele Vorteile haben, sind sie nicht immer die richtige Wahl. Manchmal ist es die bessere Entscheidung, an einer bewährten SQL-Datenbank festzuhalten. Vergleichen wir SQL- und NoSQL-Datenbanken anhand mehrerer Faktoren. Denken Sie darüber nach, wie jeder Faktor zu Ihrem Datenprofil und Ihren Anwendungsfällen passen würde.

 

SQL-Datenbanken

NoSQL-Datenbanken

Datenstruktur

Statisch und starr, mit einem vordefinierten Schema. Fokus auf Normalisierung und die Verringerung von Datenredundanz.

NoSQL-Datenbanken haben dynamische und flexible Schemas, die für alle Datentypen geeignet sind, einschließlich strukturierter, halbstrukturierter, unstrukturierter und polymorpher Daten.

Skalierbarkeit und Kosten

SQL ist besser geeignet, wenn die Daten eher statisch sind und keine wachsenden Datenmengen zu erwarten sind. Es ist möglich, eine SQL-Datenbank horizontal zu skalieren, aber das erfordert zusätzliches Coding und ist mit erheblichem Arbeits- und Kostenaufwand verbunden.

Lässt sich horizontal skalieren, sodass Sie die Kapazität problemlos und günstiger erweitern können, indem Sie einfach handelsübliche Server oder Cloud-Instanzen hinzufügen. Höhere Kosteneffizienz. Gut geeignet für Cloud Computing.

Verfügbarkeit und Resilienz

 

Hohe bis moderate Anwendungsverfügbarkeit. SQL-Datenbanken sind häufig auf einem einzigen Server gehostet.

 

Kontinuierliche Verfügbarkeit, null Ausfallzeiten. Keine Single Points of Failure.

Abfragefähigkeit

Die SQL-Sprache ist leicht zu erlernen und Abfragen können von technisch weniger versierten Teammitgliedern wie Marketingfachleuten, Projektmanagern oder Geschäftsanalysten durchgeführt werden.

Angesichts der Vielfalt an Datenstrukturen in NoSQL-Datenbanken sind selbst für einfache NoSQL-Abfragen meist Programmiererkenntnisse erforderlich. Die Abfragen müssen daher von technisch versiertem (und teurem) Personal durchgeführt werden.

Geschwindigkeit

Die Geschwindigkeit von SQL-Datenbanken im Vergleich zu NoSQL ist abhängig vom Kontext und vom Anwendungsfall. Wenn Sie hochgradig strukturierte Daten haben, die sich kaum ändern, kann SQL sehr schnell sein. 

NoSQL-Datenbanken können schnelle Abrufzeiten aufweisen. Besteht die Datenbank jedoch aus einer Vielzahl von unterschiedlichen Datenstrukturen, kann die erforderliche zusätzliche Verarbeitung den Prozess verlangsamen.

 

Geschwindigkeit für Entwickler

SQL erfordert mehr anfängliche Planung, weil Änderungen an einer SQL-Datenbank schwierig und ressourcenintensiv sind.

 

Dank der Flexibilität von NoSQL können Entwickler direkt einsteigen und mit dem Aufbau einer Datenbank beginnen, ohne Zeit in die Planung investieren zu müssen.

Datenintegrität

Die stark strukturierte Natur von relationalen Datenbanktabellen führt zu einer hohen Datenintegrität.

Die inhärente Flexibilität und Skalierbarkeit von NoSQL-Datenbanken geht zu Lasten der Datenintegrität und der Sicherheitsstandards.

Größe des Datenbestands

Besser geeignet für kleinere Datenvolumen und geringes Wachstum. Weniger gut geeignet für große Datenbestände oder Big Data-Analysen.

 

 

Durch das dynamische Schema und die horizontale Skalierung sind NoSQL-Datenbanken die richtige Wahl bei Big-Data-Anwendungen und bei der Verwaltung großer und wachsender Datenbestände.

Gemeinschaft

Mit einem Alter von fast 50 Jahren ist die Programmiersprache SQL extrem ausgereift und immer noch weit verbreitet.

Auch wenn NoSQL nicht so ausgereift ist wie SQL, arbeiten Entwickler seit mehr als einem Jahrzehnt mit NoSQL-Datenbanken und die Community wächst schnell.

NoSQL-Anwendungsfälle

Wie Sie sehen, ist die Entscheidung zwischen einer SQL- und einer NoSQL-Datenbank nicht immer einfach. Jede Lösung hat ihre eigenen Vor- und Nachteile. Die richtige Wahl hängt von der speziellen Datenumgebung Ihres Unternehmens sowie von Ihren aktuellen Anforderungen und zukünftigen Zielen ab. Viele Entwicklungsteams setzen tatsächlich beide Lösungen in ihrer Cloud-Datenarchitektur ein, manchmal sogar innerhalb derselben Anwendung. Dabei werden beide so implementiert, dass sie die Bereiche abdecken, für die sie jeweils am besten geeignet sind.

Welche Anwendungsfälle eignen sich nun für eine nicht relationale Datenbank? Hier sind einige Szenarien, bei denen sich der Einsatz von NoSQL als sinnvoll erwiesen hat:

  • Betrugserkennung und Identitätsauthentifizierung
  • Bestands- und Katalogverwaltung
  • Personalisierung, Empfehlungen und Kundenerfahrung
  • IoT- und Sensordaten
  • Finanzdienstleistungen und Zahlungsverkehr
  • Nachrichten
  • Logistik und Anlagenverwaltung
  • Content-Management-Systeme
  • Digital Rights Management und Medienmanagement

Betrachten wir die ersten drei NoSQL-Anwendungsfälle etwas genauer.

Betrugserkennung und Identitätsauthentifizierung

Der Schutz sensibler personenbezogener Daten und die Sicherheit, dass nur echte Kunden auf Anwendungen zugreifen können, gehören verständlicherweise zu den wichtigsten Prioritäten. Dies gilt umso mehr in Bereichen wie Finanzdienstleistungen, Banking, Zahlungsverkehr und Versicherungen.

Es ist ein endloser Kampf gegen Betrüger, die flink und kreativ agieren. Sie suchen unermüdlich nach neuen Wegen, die Sicherheitsvorrichtungen zu umgehen oder außer Kraft zu setzen, und ihre Angriffe nehmen mit alarmierender Geschwindigkeit zu. Ganz gleich, ob es darum geht, unberechtigte Benutzer am Zugriff zu hindern oder die Identität Ihrer Kunden zu authentifizieren – Ihre Daten spielen dabei eine entscheidende Rolle.

Es ist möglich, Muster und Anomalien zu identifizieren, um Betrug in Echtzeit oder, in einigen Fällen, sogar vor dessen Auftreten lokalisieren. Dazu muss eine große Menge historischer und aktueller Daten unterschiedlichster Art in Echtzeit analysiert werden, darunter Benutzerprofildaten, Umgebungsdaten, geografische Daten und vielleicht sogar biometrische Daten. Der Kontext spielt ebenfalls eine wichtige Rolle. Zum Beispiel ist eine Abhebung von 500 € für einen bestimmten Kunden normalerweise keine große Sache, aber es könnte ein Alarmsignal sein, wenn dies um 3 Uhr morgens in einem fremden Land passiert.

Der Ruf Ihres Unternehmens steht auf dem Spiel wie niemals zuvor. Eine Datenlücke oder ein Fehler kann sich rasend schnell in den Sozialen Medien verbreiten und zu einem echten Problem werden. Es ist ein Balanceakt, da zu starke Beschränkungen Fehlalarme auslösen könnten, die das Kundenerlebnis beeinträchtigen. Sie möchten Ihre Anwendung oder Website so kundenfreundlich wie möglich machen und gleichzeitig sicherstellen, dass Ihre Kunden tatsächlich die sind, für die sie sich ausgeben. Das ist eine ziemliche Gratwanderung.

Diese Kombination von Anforderungen – einschließlich Echtzeitanalyse, große und wachsende Datenbestände, zahlreiche Datentypen – zusammen mit der Notwendigkeit einer kontinuierlichen Analyse und dem Einsatz von ML und KI spricht eindeutig für eine NoSQL-Datenbank für die Betrugserkennung und die Identitätsauthentifizierung.

Nehmen wir den Fall von ACI Worldwide, einem Unternehmen, das Echtzeit-Zahlungsfunktionen für 19 der 20 größten Banken der Welt bereitstellt. Das Transaktionsvolumen ist astronomisch hoch, jeden Tag werden Billionen von Dollar an Zahlungen verarbeitet und es müssen komplexe Datenanalysen durchgeführt werden.

Zwar wurden in der Vergangenheit für Payment-Intelligence-Systeme relationale Datenbanken genutzt, doch bei Anwendungsfällen mit großen, wachsenden Datenbeständen, die komplexe Datenanalysen erfordern, stößt dieser Ansatz an seine Grenzen. Irgendwann wird es unpraktisch und kostspielig, eine relationale Datenbank aufzubauen, die groß genug ist, um dieser Aufgabe gerecht zu werden. Damit eine SQL-Datenbank diese Anforderungen überhaupt erfüllen kann, müsste sie partitioniert werden. Abgesehen davon, dass dies extrem ressourcenintensiv und teuer ist, hätte die Partitionierung noch einen weiteren Nachteil. Beim Anwendungsfall Betrugserkennung werden alle Informationen über alle Dimensionen hinweg benötigt, um Transaktionsentscheidungen zu treffen. Um das ständig wachsende Volumen zu bewältigen, müsste eine partitionierte relationale Datenbank zwangsläufig das Zeitfenster zurückliegender evaluierter Transaktionen verkleinern. Wenn dieses Zeitfenster kleiner wird, schrumpft aber auch die Fähigkeit, betrügerische Aktivitäten zu erkennen.

Für eine effektive Betrugserkennung und Identitätsauthentifizierung müssen Datentypen analysiert werden, die weit über die eigentlichen Transaktionsinformationen hinausgehen. Das können z. B. demografische Daten, Helpdesk-Informationen aus dem CRM-System, Website-Interaktionen, historische Einkaufsdaten und viele andere Datentypen sein. Es wäre unmöglich, im Voraus ein Schema zu entwickeln, das alles definiert, was Kunden möglicherweise in der Zukunft tun möchten. Diese Umgebung erfordert die Flexibilität einer NoSQL-Datenbank, in der jede Art von Datenelement schnell zu dem Mix hinzugefügt werden kann.

Durch den Einsatz von DataStax Enterprise (DSE), ACI hat ACI seine Betrugserkennungsrate und die Fehlalarmrate verbessert und gleichzeitig seinen Kunden Millionen von Dollar gespart. Auch das Callcenter von ACI spart Kosten, da weniger Fälle von Fehlalarmen dorthin weitergeleitet werden.

Lesen Sie mehr darüber, wie ACI Betrug mithilfe einer NoSQL-Lösung bekämpft.

Bestands- und Katalogverwaltung

NoSQL-Datenbanken sind bekannt für ihre hohe Verfügbarkeit und ihre vorhersehbare und kostengünstige horizontale Skalierbarkeit. Das macht sie zur idealen Lösung für E-Commerce-Unternehmen mit umfangreichen, wachsenden Online-Katalogen und riesigen Warenbeständen. 

Diese Organisationen benötigen die Flexibilität, ihren Produktmix schnell und ohne Volumenbeschränkungen aktualisieren zu können. Und das Worst-Case-Szenario wäre, dass ihre Website oder Anwendung am Black Friday oder während der vorweihnachtlichen Shopping-Saison ausfällt.

Aus diesen Gründen ist Macy’s von relationalen Datenbanken auf NoSQL umgestiegen. Als eines der bekanntesten Kaufhäuser der Welt hat Macy's auch eine der größten E-Commerce-Websites, über die jährlich Milliardenumsätze abgewickelt werden. Wie ACI verarbeitet auch Macy's ein riesiges Datenvolumen, das unterschiedlichste Datentypen umfasst und stetig wächst. Vor dem Wechsel zu NoSQL verfügte das Unternehmen über eine stark normalisierte Datenbank, die seine Möglichkeiten zur Skalierung seines Katalogs und Online-Bestands einschränkte. Mit der neuen NoSQL-Datenbank und DSE ist dies für das Team von Macy's kein Grund zur Sorge mehr.

Durch das NoSQL-Datenbank-Setup kann Macy's jetzt:

  • das Traffic-Wachstum und riesige Datenmengen bewältigen
  • einfach und kostengünstig skalieren
  • Katalogaktualisierungen schneller umsetzen
  • seinen Online-Katalog und die Anzahl der Produkte erweitern
  • seinen Katalog und Bestand in Echtzeit analysieren

Erfahren Sie mehr über den Umstieg von Macy's auf NoSQL.

Personalisierung, Empfehlungen und Kundenerfahrung

Ein schnelles, personalisiertes Erlebnis ist heute kein Alleinstellungsmerkmal mehr, sondern eine Selbstverständlichkeit. Kunden erwarten von Ihrer Marke rund um die Uhr und auf allen Geräten ein konsistentes, qualitativ hochwertiges und maßgeschneidertes Erlebnis. 

Das gehört heute zum Standard; sie verlangen Interaktionen annähernd in Echtzeit und relevante Empfehlungen. Es ist zwar immer noch möglich, einzigartige, unvergessliche Erlebnisse zu schaffen, aber in erster Linie müssen Sie vor allem diese grundlegenden Anforderungen erfüllen. Gelingt Ihnen das nicht, wirkt sich das schnell auf die Zufriedenheit Ihrer Kunden aus. Und wenn das passiert, besteht das Risiko, dass sie ihrer Enttäuschung über Ihre Defizite auf Twitter oder Facebook Luft machen. NoSQL-Datenbanken helfen Ihnen, individualisierte Erlebnisse zu schaffen und so Ihre Kunden langfristig zu binden.

Dabei können sich Unternehmen auf die zahlreichen Stärken von NoSQL verlassen:

  • sie zeichnen sich durch schnelle Reaktionszeiten mit extrem geringer Latenz aus, selbst bei einem wachsenden Kundenstamm
  • sie können alle Arten von Daten, strukturiert und unstrukturiert, aus einer Vielzahl von Quellen verarbeiten
  • sie können designbedingt kostengünstig skaliert werden und sind dadurch in der Lage, extrem große Datenmengen zu speichern, zu verwalten, abzufragen und zu ändern und gleichzeitig Millionen von Kunden personalisierte Erlebnisse zu bieten
  • sie sind extrem flexibel, sodass Sie fortlaufend innovieren und das Kundenerlebnis verbessern können
  • sie können kontinuierlich eingehende neue Daten nahtlos erfassen, integrieren und analysieren
  • sie eignen sich als Rückgrat für ML- und KI-Engine-Algorithmen, die Empfehlungen liefern und Personalisierung unterstützen

Die australische Macquarie Bank legte ihren Fokus von Anfang an auf intuitive, überlegene Online-Kundenerlebnisse und konnte sich so in weniger als zwei Jahren von einem Anbieter ohne Retail-Banking zu einem Top-Player im Bereich des digitalen Bankings entwickeln. Mitentscheidend für ihren Erfolg war die genaue Analyse des Kundenverhaltens und die daraus gewonnenen Erkenntnisse sowie die Personalisierung der Kundeninteraktionen. Wenig überraschend verwenden sie eine NoSQL-Datenbank (Apache Cassandra mit DataStax Enterprise), um ihren Kunden annähernd in Echtzeit Empfehlungen, Interaktionen und Erkenntnisse bereitzustellen.

Lesen Sie mehr darüber, wie Macquarie mithilfe von NoSQL seinen Kunden eine personalisierte Erfahrung bietet

Haben Sie einen NoSQL-Anwendungsfall?

Wir hoffen, mit diesem Beitrag und den Beispielen für nicht relationale Datenbanken konnten wir Ihnen bei der Frage weiterhelfen, in welchen Fällen der Einsatz einer NoSQL-Datenbank eine kluge Alternative sein kann. Was also ist der nächste Schritt, wenn Sie feststellen, dass es in Ihrem Unternehmen tatsächlich Use Cases für NoSQL gibt?

Als sinnvollen Einstieg könnten Sie inen Termin für eine DataStax Astra DB-Demo vereinbaren. Astra DB ist eine NoSQL-Datenbank mit horizontaler Skalierung auf Basis von Apache Cassandra™.

Oder Sie können, wenn Sie direkt loslegen möchten, kostenlos mit Astra DB starten.

Share

One-stop Data API for Production GenAI

Astra DB gives JavaScript developers a complete data API and out-of-the-box integrations that make it easier to build production RAG apps with high relevancy and low latency.