SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Einführung in CouchDB

CouchDB

Zurücklehnen und entspannen!
http://slog.io
Thomas Schrader (@slogmen) 12/2010
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 CouchDB
Zurücklehnen und entspannen!
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 CouchDB
Zurücklehnen und entspannen!
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 CouchDB
Zurücklehnen und entspannen!
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 CouchDB
Zurücklehnen und entspannen!
Ü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 CouchDB
Zurücklehnen und entspannen!
Views
• ermöglichen systematischen Zugriff auf
die Dokumente

• Map / Reduce
• konzeptuell zunächst ungewohnt
• werden in sogenannten »Design

Dokumenten« in der Datenbank abgelegt

Einführung in CouchDB
Zurücklehnen und entspannen!
Map
• Dokument wird als Variable doc übergeben
• Daten schreiben mit der Funktion emit
• Beispiel:
function (doc) {
emit(doc.request, doc.urgency);
}
Einführung in CouchDB
Zurücklehnen und entspannen!
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 CouchDB
Zurücklehnen und entspannen!
Abfrage
http://localhost:5984/

Host

pazpar2-log/

DB

_design/log/_view/inits

View

?	

 startkey=[1327705875000]

ab wo?

&	

 group=true

gruppieren

&	

 group_level=2
Einführung in CouchDB
Zurücklehnen und entspannen!
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 CouchDB
Zurücklehnen und entspannen!
Verfügbarkeit
• Manuelle Installation aufwendig
• Linux: Pakete für Ubuntu, ältere für SuSE
• Mac: Homebrew, älter: CouchDBX
• Windows
Einführung in CouchDB
Zurücklehnen und entspannen!

Weitere ähnliche Inhalte

Andere mochten auch

Thomas metzler, wer nach minergie baut muss umdenken
Thomas metzler, wer nach minergie baut muss umdenkenThomas metzler, wer nach minergie baut muss umdenken
Thomas metzler, wer nach minergie baut muss umdenken
Vorname Nachname
 
Ardennes
ArdennesArdennes
Ardennes
CCDH75
 
CARTA ALS REIS MAGS
CARTA ALS REIS MAGSCARTA ALS REIS MAGS
CARTA ALS REIS MAGS
Xeli Alcaide
 
Treball cimoco
Treball cimocoTreball cimoco
Treball cimoco
sergirando
 

Andere mochten auch (19)

Gefällt mir?
Gefällt mir?Gefällt mir?
Gefällt mir?
 
Taller los secretos del abuelo sapo
Taller los secretos del abuelo sapoTaller los secretos del abuelo sapo
Taller los secretos del abuelo sapo
 
HSD Exclusive by POSLIGNE_de
HSD Exclusive by POSLIGNE_deHSD Exclusive by POSLIGNE_de
HSD Exclusive by POSLIGNE_de
 
Thomas metzler, wer nach minergie baut muss umdenken
Thomas metzler, wer nach minergie baut muss umdenkenThomas metzler, wer nach minergie baut muss umdenken
Thomas metzler, wer nach minergie baut muss umdenken
 
¿Por qué realmente renunció el papa Benedicto XVI? Luis Salvador Velasquez R...
¿Por qué realmente renunció el papa Benedicto XVI?  Luis Salvador Velasquez R...¿Por qué realmente renunció el papa Benedicto XVI?  Luis Salvador Velasquez R...
¿Por qué realmente renunció el papa Benedicto XVI? Luis Salvador Velasquez R...
 
TECNOCLASSISTEMAS 2
TECNOCLASSISTEMAS 2TECNOCLASSISTEMAS 2
TECNOCLASSISTEMAS 2
 
La educación en jovellanos
La educación en jovellanosLa educación en jovellanos
La educación en jovellanos
 
gold im Mai – DAS STAR-MAGAZIN von Netto
gold im Mai – DAS STAR-MAGAZIN von Nettogold im Mai – DAS STAR-MAGAZIN von Netto
gold im Mai – DAS STAR-MAGAZIN von Netto
 
Ardennes
ArdennesArdennes
Ardennes
 
Hat Ihr Blog eine Persönlichkeit?
Hat Ihr Blog eine Persönlichkeit?Hat Ihr Blog eine Persönlichkeit?
Hat Ihr Blog eine Persönlichkeit?
 
Für Ärzte & Therapeuten - Praxisvideos im Marketing /m.Richtpreisen
Für Ärzte & Therapeuten - Praxisvideos im Marketing /m.RichtpreisenFür Ärzte & Therapeuten - Praxisvideos im Marketing /m.Richtpreisen
Für Ärzte & Therapeuten - Praxisvideos im Marketing /m.Richtpreisen
 
Energie sparen und Wohnkomfort schaffen durch richtiges Dämmen
Energie sparen und Wohnkomfort schaffen durch richtiges DämmenEnergie sparen und Wohnkomfort schaffen durch richtiges Dämmen
Energie sparen und Wohnkomfort schaffen durch richtiges Dämmen
 
IBS QMS:expertenkreis 2015 in Leipzig
IBS QMS:expertenkreis 2015 in LeipzigIBS QMS:expertenkreis 2015 in Leipzig
IBS QMS:expertenkreis 2015 in Leipzig
 
CARTA ALS REIS MAGS
CARTA ALS REIS MAGSCARTA ALS REIS MAGS
CARTA ALS REIS MAGS
 
Mendez karen
Mendez karen Mendez karen
Mendez karen
 
Treball cimoco
Treball cimocoTreball cimoco
Treball cimoco
 
ROHINIE.COM: Marketing - Pinterest gegen Twitter: wer ist effektiver?
ROHINIE.COM: Marketing - Pinterest gegen Twitter: wer ist effektiver? ROHINIE.COM: Marketing - Pinterest gegen Twitter: wer ist effektiver?
ROHINIE.COM: Marketing - Pinterest gegen Twitter: wer ist effektiver?
 
Hallenfinder - Historie + Zukunft
Hallenfinder - Historie + ZukunftHallenfinder - Historie + Zukunft
Hallenfinder - Historie + Zukunft
 
Qualität bei Komfortlüftungen
Qualität bei KomfortlüftungenQualität bei Komfortlüftungen
Qualität bei Komfortlüftungen
 

Ähnlich wie CouchDB

Javascript done right
Javascript done rightJavascript done right
Javascript done right
Dirk Ginader
 
Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3
ginettateam
 

Ähnlich wie CouchDB (20)

Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für Entwickler
 
Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für Entwickler
 
DOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pubDOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pub
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
JSON in der Oracle12c Database
JSON in der Oracle12c DatabaseJSON in der Oracle12c Database
JSON in der Oracle12c Database
 
Einführung in Elasticsearch
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Webapplikationen mit Node.js
Webapplikationen mit Node.jsWebapplikationen mit Node.js
Webapplikationen mit Node.js
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?
 
Einführung in Elasticsearch
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
 
Datentransfer mit Oracle Tools
Datentransfer mit Oracle ToolsDatentransfer mit Oracle Tools
Datentransfer mit Oracle Tools
 
BI-System mit OData und SharePoint Online
BI-System mit OData und SharePoint OnlineBI-System mit OData und SharePoint Online
BI-System mit OData und SharePoint Online
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-FreaksSEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
 
Rack-Middleware
Rack-MiddlewareRack-Middleware
Rack-Middleware
 
Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3
 
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
 
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
 

Mehr von Sven-S. Porst (6)

Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
 
xmlinclude für DSpace
xmlinclude für DSpacexmlinclude für DSpace
xmlinclude für DSpace
 
Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
 
git Vorstellung
git Vorstellunggit Vorstellung
git Vorstellung
 
Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13
 
xmlinclude
xmlincludexmlinclude
xmlinclude
 

CouchDB

  • 1. Einführung in CouchDB CouchDB Zurücklehnen und entspannen! http://slog.io Thomas Schrader (@slogmen) 12/2010
  • 2. 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 CouchDB Zurücklehnen und entspannen!
  • 3. 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 CouchDB Zurücklehnen und entspannen!
  • 4. 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 CouchDB Zurücklehnen und entspannen!
  • 5. 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 CouchDB Zurücklehnen und entspannen!
  • 6. Ü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 CouchDB Zurücklehnen und entspannen!
  • 7. Views • ermöglichen systematischen Zugriff auf die Dokumente • Map / Reduce • konzeptuell zunächst ungewohnt • werden in sogenannten »Design Dokumenten« in der Datenbank abgelegt Einführung in CouchDB Zurücklehnen und entspannen!
  • 8. Map • Dokument wird als Variable doc übergeben • Daten schreiben mit der Funktion emit • Beispiel: function (doc) { emit(doc.request, doc.urgency); } Einführung in CouchDB Zurücklehnen und entspannen!
  • 9. 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 CouchDB Zurücklehnen und entspannen!
  • 10. Abfrage http://localhost:5984/ Host pazpar2-log/ DB _design/log/_view/inits View ? startkey=[1327705875000] ab wo? & group=true gruppieren & group_level=2 Einführung in CouchDB Zurücklehnen und entspannen!
  • 11. 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 CouchDB Zurücklehnen und entspannen!
  • 12. Verfügbarkeit • Manuelle Installation aufwendig • Linux: Pakete für Ubuntu, ältere für SuSE • Mac: Homebrew, älter: CouchDBX • Windows Einführung in CouchDB Zurücklehnen und entspannen!