nosql datenbanken am beispiel von couchdb · orientation in objects gmbh weinheimer str. 68 68309...

Post on 13-Jul-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de Version:

NoSQL Datenbanken

am Beispiel von

CouchDB

OIO - Hauskonferenz 2011

1.0

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

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 3

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

!SQL 4

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

http://www.google.de/trends?q=nosql

5

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 6

map.put(“ort“, “Mannheim“)

value = map.get(“ort“)

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 7

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 8

FlockDB

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 9

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 10

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

NoSQL im Einsatz

11

Dynamo

BigTable

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

Cluster of unreliable commodity Hardware DataBase

12

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

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 14

{

"firstname": "Thomas",

"lastname": "Bayer",

"city": "Bonn",

"email": thomas.bayer@oio.de

}

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 15

{

"firstname": "Thomas",

"lastname": "Bayer",

"city": "Bonn",

"email": [ "thomas.bayer@oio.de",

"thomas.bayer@predic8.de" ]

}

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 16

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 17

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH 18

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":mndy@mcdonnell.com

}

19

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':

'mndy@mcdonnell.com'}" -H "Content-Type:

application/json"

http://192.168.56.101:5984/my_friends/

{"ok":true,"id":”5","rev":“1"}

20

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': 'mandy@mcdonnell.com'}"

-H "Content-Type: application/json"

http://192.168.56.101:5984/my_friends/3

{"ok":true,"id":“3","rev":“2"}

21

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

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

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

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

POST /offer/786

25

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

kill -9 423

26

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

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

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

Multi Version Concurrency Control

• Optimistic Locking

• Keine Versionskontrolle

29

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

NoSQL Datenbanken am Beispiel von CouchDB © 2011 Orientation in Objects GmbH

Fazit

• Einfache Entwicklung

• Robust

• Replication

• Built of/for the Web

31

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

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de

? ?

? ?

? Fragen ?

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de

Vielen Dank für ihre

Aufmerksamkeit !

top related