RethinkDB

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
RethinkDB
Basisdaten

Erscheinungsjahr 2009
Aktuelle Version 2.3.6[1]
(23. Juli 2017)
Betriebssystem Cross-platform
Programmiersprache C++
Kategorie Dokumentenorientierte Datenbank
Lizenz GNU AGPL v3.0[2] (Treiber: Apache-Lizenz)
www.rethinkdb.com

RethinkDB ist eine dokumentorientierte, NoSQL-Datenbank, die als Open-Source-Projekt entwickelt wird. Sie speichert Sammlungen von JSON-Dokumenten mit dynamischem Datenbankschema und ist unter anderem für die Bereitstellung von Datenaktualisierungen in Echtzeit konzipiert.[3]

Geschichte[Bearbeiten | Quelltext bearbeiten]

RethinkDB wurde 2009 als gleichnamiges Startup gegründet und die erste Version der Datenbank veröffentlicht. 2012 wurde die Version 1.2 der Datenbank als Open-Source-Software veröffentlicht. Die Version 2.0 wurde als große Weiterentwicklung und erster „Production ready“-Release (als geeignet für den produktiven Einsatz) bezeichnet.[4][5][6] Am 5. Oktober 2016 wurde bekanntgegeben, dass die Firma hinter RethinkDB und Horizon schliesst[7].

Verbreitung[Bearbeiten | Quelltext bearbeiten]

Nach DB-Engines.com ist RethinkDB im Popularitätsranking auf Rang 46 (Stand September 2016) und somit die fünft-populärste dokumentbasierte Datenbank.[8] Die populärsten Bibliotheken zum Austausch mit der Datenbank haben 2088 (Packagist, Stand September 2016) und 22105 (NPM) Downloads pro Monat. Die Datenbank ist mit 15451 Stars / Likes (Stand September 2016) auf GitHub die zweitbeliebteste NoSQL-Datenbank (vor MongoDB).

Einsatzgebiete[Bearbeiten | Quelltext bearbeiten]

Besonderes Augenmerk wurde in RethinkDB auf die einfache Bereitstellung von Echtzeitaktualisierungen durch eine entsprechende Push-Architektur gelegt. Es soll für Entwickler einfach sein, aktuelle Daten in Echtzeit in ihre Anwendungen einzubauen. Als typische Einsatzgebiete für diese Funktionalität werden unter anderem kollaborative Onlineanwendungen und Multiplayer-Spiele genannt.[3]

Nicht empfohlen wird der Einsatz von RethinkDB wenn:

  • ACID komplett unterstützt werden soll (Alternativen: MySQL, PostgreSQL).
  • Rechenintensive Analysen über einen großen Teil der Datenbank durchgeführt werden sollen (Alternativen: Hadoop).
  • Wenn besonders hohe Verfügbarkeit gewährleistet werden soll, da RethinkDB den Schwerpunkt hier auf die Datenkonsistenz legt (Alternativen: Riak).

Funktionsweise[Bearbeiten | Quelltext bearbeiten]

Anders als relationale Datenbanken wie MySQL verwendet RethinkDB ähnlich anderen NoSQL-Datenbanken JSON-Dokumente. Dies erlaubt komplexe, verschachtelte Strukturen pro Datensatz, es wird jedoch kein spezielles Datenbankschema erzwungen.

RethinkDB Query Language (ReQL)[Bearbeiten | Quelltext bearbeiten]

Die RethinkDB Query Language ist eine dem JavaScript-Syntax sehr ähnliche Sprache zum Beschreiben von Datenbankabfragen. Befehle werden hier ähnlich der JQuery-Syntax aneinandergehängt.[9]

Ein Beispiel für eine Abfrage:

r.db("music").table("catalog").filter(function(album){
  return album("details").filter(function(track){
    return track("media_type_id").eq(2)
  })
})

Weblinks[Bearbeiten | Quelltext bearbeiten]

Referenzen[Bearbeiten | Quelltext bearbeiten]

  1. Release 2.3.6. 23. Juli 2017 (abgerufen am 15. März 2018).
  2. RethinkDB Lizenzbestimmungen
  3. a b RethinkDB FAQ
  4. RethinkDB releases first production version of its real-time database
  5. RethinkDB 2.0: production ready
  6. NoSQL: RethinkDB gibt erste produktionsbereite Version frei
  7. RethinkDB is shutting down - RethinkDB. In: rethinkdb.com. Abgerufen am 14. November 2016.
  8. DB-Engines Ranking
  9. Introduction to ReQL