Seit einigen Jahren und mit der Explosion der zu verarbeitenden Datenmengen steigt die Nutzung von NoSQL- oder "not only SQL"-Datenbanken sprunghaft an, wobei parallel dazu neue Tools zur Verwaltung dieser Datenbanken aufkommen. Eine der ergonomischsten und effizientesten Softwarelösungen für die Verwaltung dieser Datenbanken ist Amazon DynamoDB.
Eine NoSQL-Datenbank ist eine Datenbank, die nicht auf der Standardarchitektur von relationalen Datenbanken basiert, mit denen man klassischerweise mithilfe von SQL interagiert
SQL ermöglicht nämlich Abfragen von Datenbanken in Form von Tabellen.
NoSQL-Datenbanken können verschiedene Arten von Datenbanken sein:
- Graph-orientiert
- Dokumentenorientiert
- Schlüssel-/Wertorientiert
- Spaltenorientiert
SQL-Datenbanken sind in Tabellen strukturiert, was es schwieriger macht, sie auf verschiedene Server zu verteilen. Um sie zu verteilen, muss man „vertical scaling“ betreiben, was eine Erhöhung der Datenstärke erfordert.
Sie sind weniger skalierbar und leistungsfähig als NoSQL-Datenbanken, da letztere das horizontale Scaling unterstützen, bei dem die Daten nicht auf einen Server verteilt werden müssen, sondern auf mehrere Server verteilt werden können, um die Leistung zu teilen. Auf diese Weise kann man die Anzahl der zu verwendenden Server an die benötigte Leistung anpassen.
Auf dem Papier bieten NoSQL-Datenbanken eine höhere Leistung und sind besser skalierbar. Dennoch erfordern sie mehr Technik, da sie nicht über einige der automatischen Funktionen verfügen, die SQL-Datenbanken haben, wie z. B. Transaktionen. Für große Unternehmen, die eine große Anzahl an Daten speichern müssen, sind NoSQL-Datenbanken viel flexibler und können mehr Daten mit einer großen Anzahl an möglichen Strukturen unterstützen.
Was ist Amazon DynamoDB ?
Amazon DynamoDB bietet einen vollständig verwalteten Datenbankdienst mit integrierten Sicherheits-, Sicherungs-, Wiederherstellungs- und In-Memory-Caching-Systemen für internetweite Anwendungen.
Das bedeutet, dass man mithilfe der Software Anwendungen in der Cloud erstellen und verwalten kann, ohne einen einzigen Server zu benötigen. All das wird von der Anwendung übernommen. Man muss wissen, dass es sich um eine Multi-Modell-Datenbank handelt: Sie ist schlüssel-/wertorientiert, aber auch dokumentenorientiert.
Hier zunächst ein paar Worte zur Geschichte von DynamoDB, laut Werner Vogels, dem Architekten von AWS und Chief Technology Officer von Amazon. Die berühmte Online-Handelsplattform besteht aus Hunderten von entkoppelten Diensten, die dezentral entwickelt und verwaltet werden.
Jeder Dienst behält seine eigenen Daten und hat eine API, die von anderen Diensten genutzt werden kann. Noch wichtiger ist, dass der Zugriff auf die Daten eines Dienstes, der nicht der eigene ist, nicht erlaubt ist. Aufgrund des schnellen Wachstums von Amazon war diese Datenbankarchitektur nicht mehr zeitgemäß.
Es musste eine Lösung für die Tatsache gefunden werden, dass die Datenbanken skalierbarer werden mussten und die Kommunikation zwischen den Daten der verschiedenen Abteilungen unerlässlich wurde.
Als Reaktion darauf begannen sie, eine Reihe von Speicher- und Datenbanktechnologien zu entwickeln, um die Anforderungen der E-Commerce-Plattform Amazon.com an Skalierbarkeit und Zuverlässigkeit zu erfüllen. Werner Vogels sagte: „Dynamo entstand aus unserem Bedarf an einer hochzuverlässigen und extrem skalierbaren Schlüssel/Wert-Datenbank.
Diese nicht-relationale oder NoSQL-Datenbank war für die Anwendungsfälle gedacht, die im Mittelpunkt von Amazons E-Commerce-Operationen standen, wie z. B. Warenkorb und Sitzungsdienst.
Wir mussten eine revolutionäre Arbeit leisten. Nach der erfolgreichen Einführung des ersten Dynamo-Systems dokumentierten wir unsere Erfahrungen in einem Artikel, damit auch andere davon profitieren konnten. Seitdem wurden mehrere Dynamo-Klone gebaut und der Dynamo-Artikel diente als Grundlage für mehrere andere Arten von verteilten Datenbanken.“
Wie funktioniert Amazon DynamoDB ?
DynamoDB unterteilt Informationen in Tabellen (die keine relationalen Tabellen sind!), Artikel und Attribute. Jede Tabelle besteht aus Artikeln, die ihrerseits mindestens ein Attribut enthalten.
Die Artikel unterscheiden sich untereinander durch die Attribute, die sie enthalten, und die Daten, die diese Attribute speichern.
Amazon DynamoDB-Datenbanken werden daher nicht durch Schemata geregelt.
Jeder Artikel wird anhand seines Partitionierungsschlüssels identifiziert. Jeder Artikel hat auch einen Sortierschlüssel, mit dem er zusammen mit anderen Artikeln auf den Partitionen innerhalb der Tabellen angeordnet wird.
Abfragen von DynamoDB-Tabellen sind nur möglich, wenn man einen dieser beiden Schlüssel hat. Alle Daten werden auf SSD-Festplatten gespeichert und dreimal repliziert.
Über APIs kann man direkt aus Anwendungen heraus auf Daten in DynamoDB-Datenbanken zugreifen. Es gibt drei Arten von Operationen, die man kennen muss:
Data Plane auf Tabellen angewendet.
Diese Operation ermöglicht das Schreiben und Lesen von Daten mit 4 Werkzeugen:
- create
- read
- update
- delete.
Control Plane
Mithilfe des Control Plane kann man Tabellen in der Datenbank verwalten und erstellen. Es ermöglicht auch die Steuerung von Streams und Indizes.
DynamoDB Streams
Diese Operation ermöglicht es, in einer einzelnen Tabelle einen Stream zu aktivieren oder zu deaktivieren.
Einer der Vorteile von DynamoDB ist seine Kompatibilität mit der anderen Software seines Herstellers, Amazon Web Services, der eine Vielzahl von Diensten anbietet, von Datenanalyse- oder Machine-Learning-Tools bis hin zu Netzwerk- und Speicherwerkzeugen. Außerdem ist es für die breite Öffentlichkeit zugänglicher als seine Konkurrenten, da es vollständig verwaltet wird. Man muss die Software nur in seiner AWS-Konsole starten, um seine NoSQL-Datenbanken zu verwalten, während man bei einem Konkurrenten wie MongoDB einer langen Liste von Anweisungen folgen muss.
Schließlich ist die Anpassungsfähigkeit, die DynamoDB bietet, zweifellos einer seiner größten Vorteile. Die Fähigkeit, sich an unterschiedliche Datenmengen anzupassen, ermöglicht es, die Entwicklung von Unternehmen auf die komfortabelste Art und Weise zu unterstützen, die möglich ist.
Entwickler, die cloudbasierte Anwendungen skalieren, können mit genau der Kapazität beginnen, die sie benötigen, und dann die Nachfragekapazität einer bestimmten Tabelle erhöhen, wenn ihre Anwendung an Popularität gewinnt. Ihre Tabellen können auch unbegrenzt wachsen, wenn ihre Benutzer immer größere Datenmengen speichern.
DynamoDB bietet auch ein brandneues Tool zur Verschlüsselung ihrer Daten an, um die Sicherheit ihrer Datenbanken zu gewährleisten. Weitere Informationen über Datenschutz und Cybersicherheit im Allgemeinen.
Möchtest du dich in Sachen NoSQL-Datenbanken weiterbilden? Dann ist unsere Fortbildung zum Data Engineer genau das Richtige für dich! Sie ermöglicht es dir letztendlich, Werkzeuge zu entwickeln, um große Datenmengen zu verwalten und sie für dein gesamtes Team zugänglich und nutzbar zu machen.
Du kannst weitere Informationen auf unserer Website erhalten oder direkt einen Termin mit unserem Ausbildungsteam vereinbaren.