couchdb
DESCRIPTION
Kurze Vorstellung von CouchDB in der Großen Entwicklerrunde der SUB Göttingen zum Thema NoSQL Datenbanken im Februar 2012.TRANSCRIPT
![Page 1: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/1.jpg)
CouchDBEinführung in CouchDBZurücklehnen und entspannen!
Thomas Schrader (@slogmen) 12/2010
http://slog.io
![Page 2: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/2.jpg)
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
![Page 3: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/3.jpg)
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
![Page 4: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/4.jpg)
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
![Page 5: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/5.jpg)
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
![Page 6: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/6.jpg)
Ü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
![Page 7: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/7.jpg)
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
![Page 8: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/8.jpg)
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
![Page 9: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/9.jpg)
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
![Page 10: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/10.jpg)
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
![Page 11: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/11.jpg)
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
![Page 12: CouchDB](https://reader038.vdokument.com/reader038/viewer/2022100600/556251f8d8b42a6c368b5035/html5/thumbnails/12.jpg)
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