Datenbanken und Datenbank-Plattformen wie MySQL, PostgreSQL, MongoDB, Apache Cassandra, Redis, RethinkDB, InfluxDB, Neo4j, ArangoDB, OrientDB sowie Elasticsearch und deren Installation und Konfiguration unter einem Ubuntu-Server sowie deren wichtigste Features, haben wir dir bereits in einer Reihe unserer Tutorials vorgestellt.
Apache CouchDB zählt wie die oben genannten Datenbanken und Datenbank-Plattformen mit zu den Meistgenutzten und ich möchte dir in diesem Tutorial helfen, diese zu installieren, einzurichten und erste Schritte als Nutzer dieser Datenbank durchzuführen.
Zu Apache CouchDB
Apache CouchDB ist ein relationales und dokumentenorientiertes NoSQL-Datenbankmanagementsystem, das von der Apache Software Foundation entwickelt wurde. CouchDB wurde das erste Mal in 2015 veröffentlicht und ist 2008 zu einem Apache Projekt geworden. Du kannst mit einer einzelnen CouchDB-Instanz beginnen und anspruchsvollere Projekte nahtlos auf einen Cluster aktualisieren. Anders als bei einem konventionellen relationalen Datenbankmanagementsystem werden die Daten und Relationen bei Apache CouchDB nicht in Tabellen, Zeilen und Spalten gespeichert, sondern jede Datenbank ist eine Sammlung unabhängiger Dokumente. Jedes Dokument erhält seine eigenen Daten, die im JSON-Format gespeichert werden. Die Queries werden in JavaScript durchgeführt. Apache CouchDB nutzt das HTTP-Protokoll für seine bereitgestellte API. Über diese REST-HTTP-Schnittstelle sind Daten erreichbar. Zusätzlich macht Fauxton, die Web-Benutzeroberfläche von Apache CouchDB, diese leistungsstark und einfach zu verwalten. Apache CouchDB bietet Merge-Replikation als Feature, was dir ermöglicht, mehrere Instanzen gleichzeitig und unabhängig voneinander zu betreiben.
Installation von Apache CouchDB
Füge Apache CouchDB Repository zu Ubuntu hinzu, indem du die im Code-Snippet unten präsentierten Befehle ausführst, um den Repository-Schlüssel und das Repository addest
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | apt-key add -
Wenn dein Server auf Ubuntu 16.04 läuft, dann nutze weiter folgendes Kommando.
echo "deb https://apache.bintray.com/couchdb-deb xenial main" | tee -a /etc/apt/sources.list.d/apache_couchdb_xenial.list
Andernfalls, wenn 18.04 die Version deines Ubuntu-Servers ist, setze folgendes Kommando im Terminal um.
echo "deb https://apache.bintray.com/couchdb-deb bionic main" | tee -a /etc/apt/sources.list.d/apache_couchdb_bionic.list
Führe auf deinem Server ein Update durch
apt update
und führe im Anschluss daran folgenden Befehle aus, um Apache CouchDB zu installieren.
apt-get install apache2 couchdb
Während der Installation wirst du dann automatisch zur Konfiguration via Interface aufgefordert, wie im Screenshot unten zu sehen. Hierbei bestätigst du zunächst mit der Enter-Taste.
Für die Server-Konfiguration kannst du entweder „standalone“ oder „clustered“ wählen. Solltest du diese von Grund auf selbst konfigurieren wollen, bietet sich „none“ als Auswahl an.
Im nächsten Abschnitt kannst du eine Schnittstelle auswählen, an die CouchDB bindet. Per default ist hierfür die IP 127.0.0.1 vorgesehen. Wenn du möchtest, dass dein Apache CouchDB-Panel über das Internet zugänglich ist, trage „0.0.0.0“ in die vorgesehene Zeile ein, wie im Screenshot unten zu erkennen.
Schließlich wirst du dann noch gebeten ein Passwort als admin-Nutzer festzulegen.
Nachdem der Installationsvorgang abgeschlossen ist, führe die drei unten stehenden Kommandos aus, um Apache CouchDB zu starten.
systemctl stop couchdb.service
systemctl start couchdb.service
systemctl enable couchdb.service
Du kannst den Status des Dienstes mit den folgenden Befehlen überprüfen.
systemctl status couchdb
netstat -ln | grep 5984
Getting started mit Apache CouchDB via Fauxton UI
Nachdem du die Anleitung im vorherigen Kapitel durchgeführt hast, kannst du in deinem Browser http://localhost:5984/_utils/ eingeben, wobei du localhost mit der IP deines Servers austauscht. Daraufhin solltest du die Anmeldeseite der Fauxton UI sehen, wie im Screenshot unten verbildlicht. Hier meldest du dich dann unter dem Nutzer admin und dem während der Installation im Interface festgelegten Passwort an, um Zugriff zu bekommen.
Unter dem Databases-Menüpunkt hast du eine Liste der in Apache CouchDB existierenden Datenbanken. _replicator und _users gehören zu default-Datenbanken.
Via dem Create Database-Button oben rechts, wie im Screenshot unten präsentiert, ist es dir möglich den Namen einer neuen Datenbank festzulegen und diese anzulegen.
In meinem Beispiel habe ich die Datenbank test_db hinzugefügt.
Oben rechts befinden sich weitere Buttons. Mit dem { } JSON-Button lassen sich die Datenbank-Prozesse in JSON-Format überführen. Der darauf folgende Dokument-Button führt zu online verfügbaren Dokumentation von Apache CouchDB. Schließlich erhälst du über das Glocken-Icon eine Übersicht der Vorgänge, die in der Datenbank stattgefunden haben. Es werden sozusagen alle Vorgänge im Sinne von Benachrichtigungen gleich einem Verlauf abrufbar gemacht.
Wenn ich nun auf meine eben erzeugte Datenbank test_db klicke, gelange ich auf die Seite der Datenbank, in der ich u.a. die Möglichkeit habe der Datenbank Dokumente hinzuzufügen und nach diesen via Query zu suchen.
Mittels dem Create Document-Button gelangst du zu einem Editor, in dem du das Dokument mit Inhalt im JSON-Format definieren kannst. Im Screenshot unten siehst du, dass zu diesem Zeitpunkt noch nichts erstellt wurde. Das Dokument besteht per default zunächst nämlich lediglich aus einem JSON-Objekt und einer ID mit einem Globally Unique Identifier (GUID). Du kannst dem JSON-Objekt nun eine beliebige Anzahl an Elementen hinzufügen.
Fazit
Du hast gesehen, wie schnell und unkompliziert es möglich ist Apache CouchDB auf deinem Ubuntu-Server zu installieren und dass hierfür keine weiteren Voraussetzungen nötig sind. Mit Fauxton stellt dir Apache CouchDB eine einfache Web-Oberfläche für das Management von Datenbanken, die Implementierung von Daten in diese und deren Abrufbarkeit via Query zur Verfügung, sowie den direkten Zugang zur Dokumentation von Apache CouchDB. Ich wünsche dir viel Erfolg bei der Umsetzung deiner Projekte.