Key-Value-Store: Wie funktionieren Schlüssel-Werte-Datenbanken?
Im IT-Bereich werden die unterschiedlichsten Datenbanken verwendet. Besonders beliebt sind relationale Modelle, da sie eine gute Vernetzung der Informationen ermöglichen. Aber es gibt auch noch andere Typen, die spezielle Vorteile bieten und deshalb in bestimmten Situationen unter Umständen eine bessere Wahl sind: NoSQL-Datenbanken, dokumentenorientierte Datenbanken, spaltenorientierte Datenbanken oder Graphdatenbanken. Daneben gibt es aber auch noch die sogenannte Key-Value-Database: Bei ihnen führt ein simples Prinzip zu enormer Leistung.
Was ist ein Key-Value-Store?
Die Schlüssel-Werte-Datenbank basiert auf einer Tabelle mit nur zwei Spalten: In der einen befindet sich der Wert, die andere beinhaltet einen Schlüssel, ein eindeutiges Identifikationsmerkmal. Ein Wert kann unterschiedliche Formen einnehmen: So sind ganz einfache Werte wie Strings oder Integer möglich, aber auch komplexe Objekte können als Werte in der Datenbank auftauchen. (Die Funktion bzw. den Platz des Wertes kann beispielsweise auch ein Dokument einnehmen, wobei man dann von einer dokumentenorientierten Datenbank spricht.) Auch Referenzen auf Dateien lassen sich in die Datenbank einfügen. Ebenfalls sind Tupel, also Sammlungen von Werten, umsetzbar.
Die Werte einer Datenbank müssen nicht einheitlich sein. Es ist möglich, unterschiedliche Objekte in derselben Spalte unterzubringen. Das gleiche gilt für die Identifikationsmerkmale. In den meisten Fällen wird der Schlüssel vermutlich einem bestimmten Schema folgen. Doch das ist prinzipiell nicht nötig. Strings und Integer können auch hier nach beliebigen Kriterien aufgebaut sein.
Die Werte einer Datenbank müssen nicht einheitlich sein. Es ist möglich, unterschiedliche Objekte in derselben Spalte unterzubringen. Das gleiche gilt für die Identifikationsmerkmale. In den meisten Fällen wird der Schlüssel vermutlich einem bestimmten Schema folgen. Doch das ist prinzipiell nicht nötig. Strings und Integer können auch hier nach beliebigen Kriterien aufgebaut sein.
Key-Value-Stores kommen als In-Memory-Datenbanken (also im Arbeitsspeicher) und als On-Disk-Lösungen (also im Festplattenspeicher) vor.
Vorteile und Einsatzgebiete der Key-Value-Database
Die Vorteile der Schlüssel-Werte-Datenbanken sind die hohe Performanz und die flexible Skalierbarkeit. Beides resultiert aus der einfachen Struktur des Modells. Da der Key-Value-Store kein einheitliches Schema verlangt oder vorgibt, lassen sich Änderungen an der Datenbank im laufenden Betrieb vornehmen. So kann man ein neues Feld einführen, während gleichzeitig Aktionen in anderen Einträgen erfolgen.
Die hohe Geschwindigkeit ermöglicht dies Datenbankmodell durch seine einfache Verbindung von Schlüssel und Wert: Möchte man Informationen abrufen, greift man auf den Wert direkt über den spezifischen Schlüssel zu. Die Daten liegen direkt vor. Das ist zugleich aber auch einer der Nachteile des Key-Value-Stores, denn eine andere Zugriffsmethode ist eigentlich nicht vorgesehen. Insbesondere relationale Datenbanken lassen hingegen auch komplexe Abfragen zu. Der Inhalt solcher Datenbanken kann unter verschiedenen Aspekten durchsucht werden. In einem Key-Value-Store ist im Gegensatz dazu nur der Zugriff über den Schlüssel eingeplant. Auf weitere Indizes und Suchmöglichkeiten muss man in der Regel verzichten.
Einsatzgebiete von Key-Value-Stores ergeben sich sowohl aus den Vorteilen als auch den Einschränkungen der Datenbanken. Immer dann, wenn schnelle Zugriffszeiten bei großen Datenmengen gewünscht sind, kommen Schlüssel-Werte-Datenbanken zum Einsatz. Typische Einsatzgebiete sind aus diesem Grund Warenkörbe in Onlineshops oder Session-Daten. Informationen sind hierbei klar zugeordnet und müssen in kürzester Zeit verfügbar sein. Bei großen und bekannten Websites müssen diese Datenbanken ständig neue Einträge erstellen und veraltete wieder löschen. Schlüssel-Werte-Datenbanken sind dafür perfekt geeignet.
Die hohe Geschwindigkeit ermöglicht dies Datenbankmodell durch seine einfache Verbindung von Schlüssel und Wert: Möchte man Informationen abrufen, greift man auf den Wert direkt über den spezifischen Schlüssel zu. Die Daten liegen direkt vor. Das ist zugleich aber auch einer der Nachteile des Key-Value-Stores, denn eine andere Zugriffsmethode ist eigentlich nicht vorgesehen. Insbesondere relationale Datenbanken lassen hingegen auch komplexe Abfragen zu. Der Inhalt solcher Datenbanken kann unter verschiedenen Aspekten durchsucht werden. In einem Key-Value-Store ist im Gegensatz dazu nur der Zugriff über den Schlüssel eingeplant. Auf weitere Indizes und Suchmöglichkeiten muss man in der Regel verzichten.
Einsatzgebiete von Key-Value-Stores ergeben sich sowohl aus den Vorteilen als auch den Einschränkungen der Datenbanken. Immer dann, wenn schnelle Zugriffszeiten bei großen Datenmengen gewünscht sind, kommen Schlüssel-Werte-Datenbanken zum Einsatz. Typische Einsatzgebiete sind aus diesem Grund Warenkörbe in Onlineshops oder Session-Daten. Informationen sind hierbei klar zugeordnet und müssen in kürzester Zeit verfügbar sein. Bei großen und bekannten Websites müssen diese Datenbanken ständig neue Einträge erstellen und veraltete wieder löschen. Schlüssel-Werte-Datenbanken sind dafür perfekt geeignet.
Bekannte Schlüssel-Werte-Datenbanken
Es gibt inzwischen verschiedene Datenbankmanagementsysteme (DBMS), die auf einer Key-Value-Database basieren.
- Amazon DynamoDB: Das proprietäre DBMS gehört zu den Amazon Web Services (AWS) und lässt sich auch als dokumentenorientierte Datenbank verwenden.
- Berkeley DB: Dieses DBMS wird von Oracle entwickelt und bietet Schnittstellen für unterschiedlichste Programmiersprachen.
- Redis: Das Open-Source-Projekt Redis ist eines der am häufigsten eingesetzten DBMS und wurde bereits in einem frühen Stadium von Instagram und GitHub verwendet.
- Riak: Das DBMS Riak gibt es in einer Open-Source-Variante, als Enterprise-Lösung oder in Form eines Cloud-Speichers.
- Voldemort: Das verteilte DBMS wird unter anderem von LinkedIn verwendet und vorangetrieben.