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

No SQL - BarCamp Nürnberg 2010

Embed Size (px)

DESCRIPTION

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

Citation preview

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