Suchen

NoSQL-Datenbanken im Überblick, Teil 2 Neun NoSQL-Datenbanken für den produktiven Einsatz

| Autor / Redakteur: Thomas Joos / Dr. Jürgen Ehneß

In der erten Abhandlung hat der Autor Thomas Joos einen Überblick zu NoSQL-Datenbanken gegeben. Im folgenden Beitrag listet er weitere NoSQL-Datenbanken auf, vor allem aus dem Open-Source-Bereich.

Firma zum Thema

NoSQL-Datenbanken eignen sich für den Einsatz bei großen Datenmengen und gewinnen an Bedeutung.
NoSQL-Datenbanken eignen sich für den Einsatz bei großen Datenmengen und gewinnen an Bedeutung.
(Bild: gemeinfrei / Pixabay )

Im ersten Teil dieser Artikelreihe sind wir auf den generellen Unterschied von NoSQL-Datenbanken („Not only SQL“) im Vergleich zu herkömmlichen Datenbanken eingegangen, und haben bereits einige Beispiele von NoSQL-Datenbanken gezeigt. NoSQL-Datenbanken werden häufig auch als „dokumentenorientierte Datenbanken“ bezeichnet. Es gibt aber weitere Kategorien, auf die wir bereits im ersten Teil des Beitrags eingegangen sind.

Dokumentdatenbanken im NoSQL-Bereich

Im ersten Teil des Beitrags haben wir bereits die Datenbanken „Terrastore“, „CouchDB“ und „Google Cloud Firestone“ als Beispiele für dokumentenorientierte Datenbanken gezeigt. Weitere Datenbanken in diesem Bereich stellen wir nachfolgend vor. Häufig werden auch Datenbanken in diesem Bereich eingesetzt, die ebenfalls solche unstrukturierten Daten speichern können.

Allerdings werden in diesem Fall trotzdem wieder Tabellen eingesetzt. Beispiele dafür sind die Open-Source-Datenbanken „PostgreSQL“ und „MySQL/MariaDB“.

BaseX – XML-Datenbank unter BSD-Lizenz

Die mit Java entwickelte DatenbankBasex“ wird auch häufig im NoSQL-Datenbankbereich eingesetzt. Basex ist eine XML-Datenbank. Sie unterstützt W3C-Update- und Volltexterweiterungen. Ebenfalls integriert ist ein XQuery/XQuery-Full-Text-Prozessor.

Die Datenbank wird häufig für Webanwendungen eingesetzt und bietet auch eine grafische Benutzeroberfläche. Die Datenbank kann in Linux, MacOS und auch auf Windows-Rechnern eingesetzt werden. Basex unterstützt XML, HTML, JSON, CSV sowie Text- und Binärdateien.

BaseX verfügt über eine grafische Oberfläche.
BaseX verfügt über eine grafische Oberfläche.
(Bild: Joos/BaseX (Screenshot))

Elasticsearch – Dokumente als NoSQL speichern

Die Software „Elasticsearch“ ist eine RESTful-Suchmaschine und Analyse-Engine. Auch diese Software wurde mit Java entwickelt. Die Lösung speichert Dokumente mit JSON im NoSQL-Format. Die Kommunikation erfolgt über ein Webinterface. Die Software wird vor allem zur Suche verwendet. Generell ist die Software als Open-Source-Lizenz verfügbar. Allerdings stehen erweiterte Funktionen unter kommerzieller Lizenz.

ExistDB – XML-Datenbank mit GNU-Lizenz

Die native XML-Datenbank „ExistDB“ steht ebenfalls als Open Source zur Verfügung. Die Datenbank wird in einer Java Virtual Machine betrieben. Dieser Umstand macht sie unabhängig von Betriebssystemen. Die Datenbank kann auch als Docker-Container betrieben werden. Auf der Webseite der Entwickler stehen die Installationsdateien und Container-Images zur Verfügung.

Marklogic Server – NoSQL mit ACID-Eigenschaften für Machine Learning

MarkLogic“ ist eine dokumentenorientierte Datenbank, die JSON- und XML-Dokumente speichern und durchsuchen kann. Die Datenbank kann auch hochverfügbar betrieben werden. Die Installation ist für Linux und Windows, aber auch für macOS verfügbar. Außerdem kann die Datenbank an Microsoft Azure und Amazon Web Services (AWS) angebunden werden. Marklogic Server ist eine Multimodelldatenbank, die sowohl über NoSQL- als auch über Enterprise-Funktionen verfügt, um transaktionale und analytische Anwendungen zu speichern.

RavenDB – NoSQL für Windows, Linux, MacOS und Raspberry PI

„RavenDB“ steht als NoSQL-Datenbank ebenfalls sowohl für die lokale Installation als auch als Managed-Cloud-Angebot zur Verfügung. Die verwaltete Cloud-Datenbank steht in kurzer Zeit bereit und bietet dokumentenorientierte Datenbankfunktionen. Die „Community Edition“ steht kostenlos zur Verfügung, unterstützt aber nicht alle Funktionen.

Auch diese Datenbank kann verteilt eingesetzt werden und unterstützt den Betrieb in einer Cluster-Umgebung. RavenDB kann zudem als Graphen-Datenbank genutzt und auch als Open Source eingesetzt werden. Ein Vergleich zwischen MongoDB und RavenDB ist auf der Seite db-engines.com zu finden.

Azure Cosmos DB – NoSQL in der Cloud nutzen

Azure Cosmos DB“ ist eine NoSQL-Datenbank, die in Microsoft Azure gebucht werden kann. Im Rahmen der Testumgebung von Microsoft Azure kann die Datenbank auch eine Zeitlang kostenlos getestet werden. Microsoft Azure Cosmos DB ist ein weltweit verteilter, modellübergreifender Datenbankdienst in der Azure Cloud.

Die Datenbank bietet eine elastische und unabhängige Skalierung des Durchsatzes sowie eine Speicherung von Daten über verschiedene Azure-Regionen hinweg. Cosmos DB arbeitet mit SQL, MongoDB, Cassandra und „Gremlin“ zusammen. Die Datenbank bietet umfassende Service Level Agreements (SLAs) für Durchsatz, Latenz, Verfügbarkeit und Konsistenzgarantien.

Gremlin ist eine Graph-Traversal-Sprache von „Apache Tinkerpop“. Die funktionale Datenflusssprache ermöglicht es, komplexe Traversale oder Abfragen durchzuführen.

Redis – In-Memory-Datenbank

Die In-Memory-Datenbank „Redis“ nutzt den Arbeitsspeicher und Cache eines Servers für bessere Leistung. Die Datenbank steht ebenfalls als Open Source zur Verfügung und gehört zu den bekanntesten NoSQL-Datenbanken im Key-Value-Bereich (Schlüsselwertbereich). Redis steht auch über Amazon AWS und Microsoft Azure zur Verfügung.

Scalaris – Key-Value-Datenbank

Scalaris“ ist eine verteilte Schlüsselwert-NoSQL-Datenbank. Die Datenbank gehört zu den ersten NoSQL-Datenbanken, mit der ACID-Eigenschaften für Mehrschlüsseltransaktionen unterstützt wurden. Auch diese Datenbank kann zum Aufbau skalierbarer Dienste verwendet werden. Die Datenbank verwendet ein strukturiertes Overlay mit einem nicht blockierenden Paxos-Commit-Protokoll für die Transaktionsverarbeitung.

Project Voldemort

Project Voldemort“ ist ebenfalls eine NoSQL-Datenbank, die unter anderem von LinkedIn/Microsoft genutzt wird. Generell speichert die Datenbank die Daten als eine große, verteilte, persistente, fehlertolerante Hash-Tabelle.

Für Anwendungen, die einen O/R-Mapper verwenden, bietet dieser Ansatz horizontale Skalierbarkeit und eine hohe Verfügbarkeit. Im Gegensatz zur MySQL-Replikation skalieren sowohl Lese- als auch Schreibvorgänge horizontal. Die Datenportionierung ist transparent und ermöglicht eine Cluster-Erweiterung, ohne dass alle Daten neu abgeglichen werden müssen. Der Quellcode ist unter der Apache-2.0-Lizenz verfügbar.

(ID:46862006)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist