← ALL WRITING
Data · Essay

CouchDB Teil 1 - Installation

CouchDB ist ein Dokumenten basiertes Datenbank System und lizenziert als Apache Projekt. Das Projekt findet man unter http://couchdb.apache.org/.…

Andreas2011.05.23 · 3 MIN READ

CouchDB ist ein Dokumenten basiertes Datenbank System und lizenziert als Apache Projekt. Das Projekt findet man unter http://couchdb.apache.org/. Geschrieben ist das System in Erlang. Die Kommunikation ist über eine Representational State Transfer (REST) API realisiert. Weitere technische Details findet ihr hier. Die ganze Datenbank ist sehr leichtgewichtig und lässt sich damit sogar auf mobilen Endgeräten betreiben.

DCouchDBas ist auch ein Grund warum ich mich für dieses System interessiere. Es ist leichtgewichtig und damit auch flexibel. Des Weiteren ist es skalierbar und kann, laut Entwicklern, vom mobilen Endgerät bis hin zu einer verteilten Datenbank und Daten Replikation alles abdecken was man eigentlich von einer Datenbank erwartet. Durch die Implementierung in der Sprache Erlang verspreche ich mir hohe Stabilität und Ressourcen schonende, performante Implementierung.

Den ersten Kontakt hatte ich mit CouchDB, als ich den Vortrag von CouchDB Core Developer Jan Lehnardt auf der RheinJug aus Düsseldorf (Video) angeschaut habe. Jan gibt einen sehr guten Einblick in die Möglichkeiten der Couch. Kann ich nur empfehlen!

Installation auf Ubuntu 11.04

Um das System einmal auszuprobieren und zu evaluieren habe ich mir, um nicht noch eine weitere Datenbank auf meinem Rechner installieren zu müssen, eine Virtual Box mit Ubuntu aufgesetzt. Virtual Box ist eine kostenlose Virtualisierungs Lösung von SUN (…Oracle). Die VirtualBox hat als Standard Netzwerk Einstellung NAT eingestellt. Um von außen auf einen Server in der Box zugreifen zu können, muss für die entsprechenden Ports das Forwarding aktiviert werden. Das bedeutet, wenn wir auf den Port der CouchDB zugreifen wollen, müssen wir diesen explizit von unserem Host System weiterleiten. Das ganze kann man in den Einstellungen der entsprechenden Box machen. Maschine -> Ändern -> Netzwerk -> Erweitert -> Port-Weiterleitung. Dort unter dem Namen CouchDB den TCP Port 5984 bei Host-Port und Guest-Port eintragen. Oder auf der Commandozeile folgendes eingeben

VBoxManage modifyvm “VM name” —natpf1 “couchDB,tcp,,5984,,5984”

Als OS habe ich mich für Ubuntu 11.04 entschieden. Nicht die Server Variante, da ich mir auch die neue Oberfläche anschauen wollte. Einfach die Standard Installation starten, danach CouchDB über apt-get installieren oder das Packet runterladen. Die CouchDB Standard Installation ist so konfiguriert, das ein Zugriff nur von localhost erfolgen kann. Um das zu ändern muss man in der Datei {couchDBHome}/etc/couchdb/local.ini folgendes anpassen.

Alt

; port = 5984 ; bind_address = 127.0.0.1

Neu

port = 5984 bind_address = 0.0.0.0

Nach der Installation muss noch der Port 5984 in der Firewall freigeschaltet werden, damit die Datenbank von außen erreichbar ist.

sudo ufw allow 5984/tcp

Jetzt die Datenbank einfach starten.

{couchDBHome}/bin sudo ./couchdb

Auf der Commandozeile sollte jetzt erscheinen

Apache CouchDB is running as process XXX, time to relax.

Unter der Adresse http://localhost:5984/_utils/index.php solltet ihr jetzt das Webinterface des Servers erreichen.

Im Großen und Ganzen finde ich den Ansatz der CouchDB sehr interessant. Der Zugriff über REST ist sicherlich eine sehr gute Sache, da er auf schon definierten Standards basiert. Wer sich für dieses Thema interessiert, dem kann ich nur das Buch “REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien” von Stefan Tilkov empfehlen. In den nächsten Tagen werde ich eine oder mehrere der vorhandenen Java Libraries ausprobieren und die Ergebnisse zusammentragen. Ich denke das wird dann der spannendere Teil…

http://www.amazon.de/REST-HTTP-Einsatz-Architektur-Integrationsszenarien/dp/3898645835/ref=sr\_1\_1?ie=UTF8&qid=1306138470&sr=8-1

Thanks for readingDataMore essays
Written by Andreas

Weekly essays on technology, organizations, AI, data, and software — thinking in systems, assembled block by block.

Follow