nosql datenbanken am beispiel von couchdb · orientation in objects gmbh weinheimer str. 68 68309...
TRANSCRIPT
![Page 1: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/1.jpg)
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
[email protected] Version:
NoSQL Datenbanken
am Beispiel von
CouchDB
OIO - Hauskonferenz 2011
1.0
![Page 2: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/2.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Ihr Sprecher
2
Thomas Bayer
Programmierer
Schwerpunkte Funktionale Programmierung
REST SOA, XML
NoSQL Mobile Apps
Membrane
![Page 3: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/3.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 3
![Page 4: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/4.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
!SQL 4
![Page 5: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/5.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
http://www.google.de/trends?q=nosql
5
![Page 6: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/6.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 6
map.put(“ort“, “Mannheim“)
value = map.get(“ort“)
![Page 7: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/7.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 7
![Page 8: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/8.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 8
FlockDB
![Page 9: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/9.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 9
![Page 10: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/10.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 10
![Page 11: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/11.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
NoSQL im Einsatz
11
Dynamo
BigTable
![Page 12: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/12.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Cluster of unreliable commodity Hardware DataBase
12
![Page 13: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/13.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
-module(ping_pong).
-export([ping/0, pong/0]).
ping() ->
Pong = spawn(ping_pong, pong, []),
Pong ! {self(), ping},
receive
pong ->
pong
end.
pong() ->
receive
{Ping, ping} ->
Ping ! pong
end.
Quelle: http://de.wikipedia.org/wiki/Erlang_(Programmiersprache)
13
![Page 14: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/14.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 14
{
"firstname": "Thomas",
"lastname": "Bayer",
"city": "Bonn",
"email": [email protected]
}
![Page 15: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/15.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 15
{
"firstname": "Thomas",
"lastname": "Bayer",
"city": "Bonn",
"email": [ "[email protected]",
}
![Page 16: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/16.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 16
![Page 17: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/17.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 17
![Page 18: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/18.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 18
![Page 19: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/19.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Abfragen einzelner Daten
curl -X GET http://192.168.56.101:5984/my_friends/3
{ "_id":“3",
"_rev":"1",
"firstname":"Mandy",
"lastname":"Mcdonnell",
"city":"Salem",
"email":[email protected]
}
19
![Page 20: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/20.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Anlegen neuer Daten
curl -X POST -d "{'firstname':'Mandy', 'lastname':
'Mcdonnell', 'city': 'Salem', 'email':
'[email protected]'}" -H "Content-Type:
application/json"
http://192.168.56.101:5984/my_friends/
{"ok":true,"id":”5","rev":“1"}
20
![Page 21: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/21.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Aktualisieren der Daten
curl -X PUT -d "{'_rev':'1-
52a806e1eead7d337ab0319197400fd5',
'firstname':'Mandy', 'lastname': 'Mcdonnell',
'city': 'Salem', 'email': '[email protected]'}"
-H "Content-Type: application/json"
http://192.168.56.101:5984/my_friends/3
{"ok":true,"id":“3","rev":“2"}
21
![Page 22: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/22.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Löschen der Daten
curl -X DELETE http://192.168.56.101:5984/my_friends/3
{"ok":true,"id":“3","rev":“3"}
22
![Page 23: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/23.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Updates
• GET, Modify, POST
• POST => neue Revision
• Keine Manipulation von bestehenden Daten
• POST kann sich mit GET überschneiden
23
![Page 24: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/24.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
function(doc) {
var c = doc.name.split(".");
return emit(c[c.length -1] , doc.size);
}
24
![Page 25: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/25.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
POST /offer/786
25
![Page 26: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/26.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
kill -9 423
26
![Page 27: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/27.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Replication
• N-Master
• Offline arbeiten und dann synchronisieren
• Konflikt Erkennung und Behebung
• Merge
27
![Page 28: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/28.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Replication
• Nur in eine Richtung
• Überträgt Dokumente, die sich unterscheiden
• Jede Änderung wird mit DB Sequenznummer versehen
– Effiziente Replication
• Manuel oder Continuous
28
![Page 29: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/29.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Multi Version Concurrency Control
• Optimistic Locking
• Keine Versionskontrolle
29
![Page 30: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/30.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Konflikte
• Konflikte werden erkannt
• Alle Knoten lösen Konflikte gleich
– Wining/Losing Revision
• Merge analog zu Subversion
30
![Page 31: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/31.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Fazit
• Einfache Entwicklung
• Robust
• Replication
• Built of/for the Web
31
![Page 32: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/32.jpg)
NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH
Referenzen
• John Quinn, Presentation: NoSQL: Dealing with the Data Deluge
http://nosql.mypopescu.com/post/535275826/presentation-nosql-
dealing-with-the-data-deluge
• http://damienkatz.net/
• CouchDB: The definite Guide
– http://guide.couchdb.org/
• NoSQL Tutorial: CouchDB mit Java
– http://predic8.de/couchdb-tutorial.htm
32
![Page 33: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/33.jpg)
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
? ?
? ?
? Fragen ?
![Page 34: NoSQL Datenbanken am Beispiel von CouchDB · Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: info@oio.de NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz](https://reader033.vdocuments.site/reader033/viewer/2022050103/5f427234b4716e61a0582488/html5/thumbnails/34.jpg)
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
Vielen Dank für ihre
Aufmerksamkeit !