RethinkDB
RethinkDB | |
---|---|
Basisdaten
| |
Erscheinungsjahr | 2009 |
Aktuelle Version | 2.4.4[1] (11. Dezember 2023) |
Betriebssystem | Cross-platform |
Programmiersprache | C++ |
Kategorie | Dokumentenorientierte Datenbank |
Lizenz | GNU AGPL v3.0[2] (Treiber: Apache-Lizenz) |
www.rethinkdb.com |
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.[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 schließt.[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 und es wird 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]- A Comparison of MongoDB and RethinkDB with Patent Data. In: juristat.com. 21. Juli 2014, archiviert vom am 3. Dezember 2016; abgerufen am 24. Dezember 2023 (englisch). Vergleich zwischen MongoDB und RethinkDB
- Gordon Murray Dent: We use [RethinkDB] at Workshape.io. In: workshape.io. 11. März 2015, archiviert vom am 31. Juli 2021; abgerufen am 24. Dezember 2023 (englisch). Erfahrungsbericht zu RethinkDB
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 2.4.4. 11. Dezember 2023 (abgerufen am 19. Dezember 2023).
- ↑ RethinkDB Lizenzbestimmungen (englisch).
- ↑ a b RethinkDB FAQ (englisch).
- ↑ RethinkDB releases first production version of its real-time database (englisch).
- ↑ RethinkDB 2.0: production ready (englisch).
- ↑ NoSQL: RethinkDB gibt erste produktionsbereite Version frei.
- ↑ RethinkDB is shutting down - RethinkDB. In: rethinkdb.com. Abgerufen am 14. November 2016 (englisch).
- ↑ DB-Engines Ranking (englisch).
- ↑ Introduction to ReQL (englisch).