No SQL - BarCamp Nürnberg 2010

63
Jonathan Weiss, 20.02.2010 Peritor GmbH NSQL Data-Storage jenseits von SQL Saturday, February 20, 2010

description

Präsentation von Jonathan Weiss (Folien von Mathias Meyer) auf dem BarCamp Nürnberg 2010 zu NoSQL und postrelationalen Datenbanken.

Transcript of No SQL - BarCamp Nürnberg 2010

Page 1: No SQL - BarCamp Nürnberg 2010

Jonathan Weiss, 20.02.2010Peritor GmbH

N✮SQLData-Storage jenseits von SQL

Saturday, February 20, 2010

Page 2: No SQL - BarCamp Nürnberg 2010

Wer?

Ruby-Entwickler

Open-Source-Contributor (http://github.com/jweiss)

@jweiss

2

Saturday, February 20, 2010

Page 3: No SQL - BarCamp Nürnberg 2010

N✮SQL-Datenbanken?

3

Built for the Web

Skalierbar

Performant

Flexibles Datenschema

Saturday, February 20, 2010

Page 4: No SQL - BarCamp Nürnberg 2010

4

DynamoCouchDBDynomite

Tokyo Tyrant

MongoDB

Riak

Amazon SimpleDB

Redis Memcached

BigTableAmazon S3

Cassandra

Lotus Notes

Excel ;)Neo4j

Project Voldemort HBase

Saturday, February 20, 2010

Page 5: No SQL - BarCamp Nürnberg 2010

Der Status-Quo

Relationale Datenstrukturen

SQL

Transaktionssicherheit

Locking

5

Saturday, February 20, 2010

Page 6: No SQL - BarCamp Nürnberg 2010

Das Problem

6

Saturday, February 20, 2010

Page 7: No SQL - BarCamp Nürnberg 2010

Das Problem

7

Saturday, February 20, 2010

Page 8: No SQL - BarCamp Nürnberg 2010

Die Lösung

8

”Simplicity is prerequisite for reliability“— Edsger W. Dijkstra

Saturday, February 20, 2010

Page 9: No SQL - BarCamp Nürnberg 2010

Die Lösung

key => “value”

9

Saturday, February 20, 2010

Page 10: No SQL - BarCamp Nürnberg 2010

Dokumente

10

Saturday, February 20, 2010

Page 11: No SQL - BarCamp Nürnberg 2010

Dokumente

10

Saturday, February 20, 2010

Page 12: No SQL - BarCamp Nürnberg 2010

Dokumente

10

Saturday, February 20, 2010

Page 13: No SQL - BarCamp Nürnberg 2010

Dokumente

10

Saturday, February 20, 2010

Page 14: No SQL - BarCamp Nürnberg 2010

Integrität

11

Saturday, February 20, 2010

Page 15: No SQL - BarCamp Nürnberg 2010

Eventual Consistency

12

Saturday, February 20, 2010

Page 16: No SQL - BarCamp Nürnberg 2010

Append-Only

13

Saturday, February 20, 2010

Page 17: No SQL - BarCamp Nürnberg 2010

Append-Only

14

Update

Saturday, February 20, 2010

Page 18: No SQL - BarCamp Nürnberg 2010

Append-Only

15

Update

Saturday, February 20, 2010

Page 19: No SQL - BarCamp Nürnberg 2010

Skalierbarkeit

16

Saturday, February 20, 2010

Page 20: No SQL - BarCamp Nürnberg 2010

Tools

17

Saturday, February 20, 2010

Page 21: No SQL - BarCamp Nürnberg 2010

Tools

18

DynamoCouchDBDynomite

Tokyo Tyrant

MongoDB

Riak

Amazon SimpleDB

Redis Memcached

BigTableAmazon S3

Cassandra

Lotus Notes

Excel ;)Neo4j

Project Voldemort HBase

Saturday, February 20, 2010

Page 22: No SQL - BarCamp Nürnberg 2010

Tools

19

DynamoCouchDBDynomite

Tokyo Tyrant

MongoDB

Riak

Amazon SimpleDB

Redis Memcached

BigTableAmazon S3

Cassandra

Lotus Notes

Excel ;)Neo4j

Project Voldemort HBase

Saturday, February 20, 2010

Page 23: No SQL - BarCamp Nürnberg 2010

Redis

Simpler Key-Value-Store

Speichert Strings, Listen und Sets

Semi-Persistent

20

Saturday, February 20, 2010

Page 24: No SQL - BarCamp Nürnberg 2010

Redis

21

Saturday, February 20, 2010

Page 25: No SQL - BarCamp Nürnberg 2010

Redis

set foo 4

1000

+OK

22

Saturday, February 20, 2010

Page 26: No SQL - BarCamp Nürnberg 2010

Redis

set foo 4

1000

+OK

22

Request

Response

Saturday, February 20, 2010

Page 27: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

Database as a Service

Hoch-Skaliert

Always On

HTTP-API

23

Saturday, February 20, 2010

Page 28: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

24

Saturday, February 20, 2010

Page 29: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

25

Saturday, February 20, 2010

Page 30: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

26

MembershipsItem #1

Name: Paul, Address: 234 Performance Rd.

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Saturday, February 20, 2010

Page 31: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

26

MembershipsItem #1

Name: Paul, Address: 234 Performance Rd.

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Domain

Saturday, February 20, 2010

Page 32: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

27

MembershipsItem #1

Name: Paul, Address: 234 Performance Rd.

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Saturday, February 20, 2010

Page 33: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

27

MembershipsItem #1

Name: Paul, Address: 234 Performance Rd.

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Item

Saturday, February 20, 2010

Page 34: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

28

Memberships

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Item #1Name: Paul, Address: 234 Performance Rd.

Saturday, February 20, 2010

Page 35: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

28

Memberships

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Item #1Name: Paul, Address: 234 Performance Rd.

Attribute

Saturday, February 20, 2010

Page 36: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

28

Memberships

Item #2Name: John, Address: 567 Couch St.

Item #3Name: Frank, Address: 321 Cloud Ave.

Item #4Name: Tom, Address: 123 Scale St.

Item #1Name: Paul, Address: 234 Performance Rd.

Attribute Value

Saturday, February 20, 2010

Page 37: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

Wie komme ich an die Daten?

29

Saturday, February 20, 2010

Page 38: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

GetAttributes: ItemName=1

30

Saturday, February 20, 2010

Page 39: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

select * from memberships where Name = ‘Paul’

31

Saturday, February 20, 2010

Page 40: No SQL - BarCamp Nürnberg 2010

Amazon SimpleDB

32

Simplizität durch Restriktionen

Saturday, February 20, 2010

Page 41: No SQL - BarCamp Nürnberg 2010

Skalierung mit Eventual Consistency

33

Amazon SimpleDB

Saturday, February 20, 2010

Page 42: No SQL - BarCamp Nürnberg 2010

34

CouchDBrelax

Saturday, February 20, 2010

Page 43: No SQL - BarCamp Nürnberg 2010

CouchDB

Dokument-orientiert

35

Saturday, February 20, 2010

Page 44: No SQL - BarCamp Nürnberg 2010

36

”CouchDB is built of the Web“— Jacob Kaplan-Moss

Saturday, February 20, 2010

Page 45: No SQL - BarCamp Nürnberg 2010

CouchDB

37

{ "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}

Saturday, February 20, 2010

Page 46: No SQL - BarCamp Nürnberg 2010

CouchDB

38

{ "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}

Saturday, February 20, 2010

Page 47: No SQL - BarCamp Nürnberg 2010

CouchDB

39

{ "_id": "BCCD12CBB", "_rev": "1-AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}

Saturday, February 20, 2010

Page 48: No SQL - BarCamp Nürnberg 2010

CouchDB - CRUD

Erstellen/Aktualisieren:

PUT /starwars/BCCD12CBB

Lesen:

GET /starwars/BCCD12CBB

Löschen:

DELETE /starwars/BCCD12CBB

40

Saturday, February 20, 2010

Page 49: No SQL - BarCamp Nürnberg 2010

CouchDB

Wie komme ich an meine Daten?

41

Saturday, February 20, 2010

Page 50: No SQL - BarCamp Nürnberg 2010

CouchDB

42

Views!

Saturday, February 20, 2010

Page 51: No SQL - BarCamp Nürnberg 2010

CouchDB

43

function(doc) { if (doc.headware) { for (var hat in doc.headware) { emit(hat, 1); } }}

Saturday, February 20, 2010

Page 52: No SQL - BarCamp Nürnberg 2010

CouchDB

44

function(keys, values, rereduce) { return sum(values);}

Saturday, February 20, 2010

Page 53: No SQL - BarCamp Nürnberg 2010

CouchDB

45

Saturday, February 20, 2010

Page 54: No SQL - BarCamp Nürnberg 2010

CouchDB

46

Saturday, February 20, 2010

Page 55: No SQL - BarCamp Nürnberg 2010

CouchDB

47

Saturday, February 20, 2010

Page 56: No SQL - BarCamp Nürnberg 2010

CouchDB

48

Saturday, February 20, 2010

Page 57: No SQL - BarCamp Nürnberg 2010

CouchDB

POST /_replication

49

Saturday, February 20, 2010

Page 58: No SQL - BarCamp Nürnberg 2010

Und?

Daten sind wieder König

50

Saturday, February 20, 2010

Page 59: No SQL - BarCamp Nürnberg 2010

Aber!

Kein goldener Hammer

51

Saturday, February 20, 2010

Page 60: No SQL - BarCamp Nürnberg 2010

52

Saturday, February 20, 2010

Page 61: No SQL - BarCamp Nürnberg 2010

53

Saturday, February 20, 2010

Page 62: No SQL - BarCamp Nürnberg 2010

Peritor

54

Cloud-Management und -Deployment made easy

http://scalarium.com

Saturday, February 20, 2010

Page 63: No SQL - BarCamp Nürnberg 2010

© Peritor GmbH - Alle Rechte Vorbehalten

Peritor GmbHBlücherstr. 22, Hof III Aufgang 610961 Berlin

Tel.: +49 (0)30 69 20 09 84 0Fax: +49 (0)30 69 20 09 84 9

Internet: www.peritor.comE-Mail: [email protected]

Saturday, February 20, 2010