RethinkDB ist ein dokumentorientiertes, NoSQL-Datenbankmanagementsystem, das 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.RethinkDB FAQ (englisch).

Geschichte 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.RethinkDB releases first production version of its real-time database (englisch).RethinkDB 2.0: production ready (englisch).NoSQL: RethinkDB gibt erste produktionsbereite Version frei. Am 5. Oktober 2016 wurde bekanntgegeben, dass die Firma hinter RethinkDB und Horizon schließt.

Verbreitung Nach DB-Engines.com ist RethinkDB im Popularitätsranking auf Rang 46 (Stand September 2016) und somit die fünft-populärste dokumentbasierte Datenbank.DB-Engines Ranking (englisch). 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 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.

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 Anders als relationale Datenbanken wie MySQL verwendet RethinkDB ähnlich anderen NoSQL-Datenbanken JSON-Dokumente. Dies erlaubt komplexe, verschachtelte Strukturen pro Datensatz und es wird kein spezielles Datenbankschema erzwungen.

RethinkDB Query Language (ReQL) 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.Introduction to ReQL (englisch).

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 Vergleich zwischen MongoDB und RethinkDB Erfahrungsbericht zu RethinkDB

Einzelnachweise

Kategorie:NoSQL Kategorie:Freies Datenbankmanagementsystem