couchdb

Post on 25-May-2015

117 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Kurze Vorstellung von CouchDB in der Großen Entwicklerrunde der SUB Göttingen zum Thema NoSQL Datenbanken im Februar 2012.

TRANSCRIPT

CouchDBEinführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

REST-Interface

• API über http GET, PUT, POST, DELETE

• Browser und curl sind unsere Freunde:➜ curl http://localhost:5984/demo/1dc6eece6526ad34c376a04dad0019e2

{"_id": "1dc6eece6526ad34c376a04dad0019e2", "_rev": "1-09ef435d312bbc80136ec750025a44d1", "urgency": "3", "request": "init"}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Dokument anlegen➜ curl -X POST -H 'Content-Type: application/json'

-d '{"request": "init", "urgency": 3}'

http://name:pw@localhost:5984/demo

HTTP/1.1 201 Created

{"ok": true,

"id": "5fe5c3d8731379a5d0b4d4ae0e0046da",

"rev": "1-09ef435d312bbc80136ec750025a44d1"}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Dokument mit ID➜ curl -X POST -H 'Content-Type: application/json'

-d '{"request": "init", "urgency": 3}'

http://name:pw@localhost:5984/demo/very-urgent

HTTP/1.1 201 Created

{"ok": true,

"id": "very-urgent",

"rev": "1-09ef435d312bbc80136ec750025a44d1"}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Konflikt➜ curl -X PUT -H 'Content-Type: application/json'

-d '{"request": "init", "urgency": 10}'

http://name:pw@localhost:5984/demo/very-urgent

HTTP/1.1 409 Conflict

{"error": "conflict",

"reason": "Document update conflict."}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Überschreiben➜ curl -X PUT -H 'Content-Type: application/json'

-d '{"request": "init", "urgency": 10,

"_rev": "1-09ef435d312bbc80136ec750025a44d1" }'

http://name:pw@localhost:5984/demo/very-urgent

HTTP/1.1 201 Created

{"ok": true, "id": "very-urgent", "rev": "2-d13bda084accd9c47ecd176b9fe164b3"}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Views

• ermöglichen systematischen Zugriff aufdie Dokumente

• Map / Reduce

• konzeptuell zunächst ungewohnt

• werden in sogenannten »Design Dokumenten« in der Datenbank abgelegt

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Map

• Dokument wird als Variable doc übergeben

• Daten schreiben mit der Funktion emit

• Beispiel:

function (doc) {

emit(doc.request, doc.urgency);

}

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Reduce

• optional

• zum Zusammenfassen von Dokumenten mit demselbem Map-Ergebnis: muß einen Array von Werten zu einem Wert reduzieren

• muß technische Bedingungen erfüllen

• vordefiniert: _count, _sum

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Abfragehttp://localhost:5984/

pazpar2-log/

_design/log/_view/inits

? startkey=[1327705875000]

& group=true

& group_level=2

Host

DB

View

ab wo?

gruppieren

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Nützlich

• Dokumente mit Attachments

• Mehr View Features: _list, _show

• Weboberfläche unter _utils

• couchapp für Design Dokumente

• O’Reilly Buch: guide.couchdb.org

• Wiki: wiki.apache.org/couchdb/

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

Verfügbarkeit

• Manuelle Installation aufwendig

• Linux: Pakete für Ubuntu, ältere für SuSE

• Mac: Homebrew, älter: CouchDBX

• Windows

Einführung in CouchDBZurücklehnen und entspannen!

Thomas Schrader (@slogmen) 12/2010

http://slog.io

top related