SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Datenbanken in der Cloud
                Data-Storage jenseits von SQL




                Mathias Meyer, 25.11.2009
                Peritor GmbH


Mittwoch, 25. November 2009

NEUE GENERATION von post-relationalen Datenbanken
Wer?


    “Chief Cloud Officer” bei Peritor
    Ruby-Entwickler
    Open-Source-Contributor (http://github.com/mattmatt)




                                                                     2

Mittwoch, 25. November 2009

PERITOR ist erster Amazon Web Services Solution Provider in Europa
Peritor




              Cloud-Management und -Deployment made easy
                              http://scalarium.com


                                                           3

Mittwoch, 25. November 2009
Cloud-Datenbanken?


    Built for the Web
    Skalierbar
    Performant
    Flexibles Datenschema




                                                4

Mittwoch, 25. November 2009

WEB bedarf neuer Denkweisen über Daten
STORAGE muss Verteilung und Robustheit bieten
VERFÜGBARKEIT ist King
Cloud-Datenbanken?

                                  Riak        BigTable
                    Lotus Notes                 Amazon S3
                                                  Memcached
                               Redis
                                                   Cassandra
                   MongoDB
                         Dynamo                   Dynomite
                                                  CouchDB
  Amazon SimpleDB
                                                Excel ;)
                              Tokyo Tyrant     Neo4j
                        Project Voldemort    HBase

                                                               5

Mittwoch, 25. November 2009
Der Status-Quo


    Relationale Datenstrukturen
    SQL
    Transaktionssicherheit
    Locking




                                  6

Mittwoch, 25. November 2009
Das Problem




                                                           7

Mittwoch, 25. November 2009

DATENSTRUKTUREN verändern sich
SCHEMATA sind nicht fix
DATENTYPEN sind nicht immer fix
MIGRATIONSZEITEN steigen mit der Menge Daten
KOMPLEXE Datenstrukturen lassen sich nur schwer abbilden
Das Problem




                                                                       8

Mittwoch, 25. November 2009

TRANSAKTIONSSICHERHEIT oftmals unnötig
LOCKING bremst Performance, erschwert Replikation
INDEX-UPDATES sind oftmals immediate und verzögern die Transaktion
MEHR INDIZES bedeuten mehr Arbeit (Updates, Index-Auswahl bei Query)


http://www.flickr.com/photos/31667878@N03/4113087794
Die Lösung




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




                                                                  9

Mittwoch, 25. November 2009

SIMPLIZITÄT statt Komplexität
DATEN statt Struktur
Die Lösung




                              key => “value”



                                               10

Mittwoch, 25. November 2009

KEY/VALUE für einfache Datenstrukturen
Dokumente




                                                             11

Mittwoch, 25. November 2009

DOKUMENTE statt fixe Tabellenstrukturen
DOKUMENTE enthalten alle relevanten Daten (self-contained)
SCHEMAPFLEGE entfällt
DATENMIGRATION nicht
Dokumente




                                                             11

Mittwoch, 25. November 2009

DOKUMENTE statt fixe Tabellenstrukturen
DOKUMENTE enthalten alle relevanten Daten (self-contained)
SCHEMAPFLEGE entfällt
DATENMIGRATION nicht
Dokumente




                                                             11

Mittwoch, 25. November 2009

DOKUMENTE statt fixe Tabellenstrukturen
DOKUMENTE enthalten alle relevanten Daten (self-contained)
SCHEMAPFLEGE entfällt
DATENMIGRATION nicht
Dokumente




                                                             11

Mittwoch, 25. November 2009

DOKUMENTE statt fixe Tabellenstrukturen
DOKUMENTE enthalten alle relevanten Daten (self-contained)
SCHEMAPFLEGE entfällt
DATENMIGRATION nicht
Integrität




                                                      12

Mittwoch, 25. November 2009

Atomicity, Consistency, Isolation, Durability
ACID ist King, oder auch nicht
ACID vs. Performance
ACID ist lokal
EVENTUAL CONSISTENCY statt verteilter Transaktionen

http://www.flickr.com/photos/peapea/40955407/
Eventual Consistency




                                                  13

Mittwoch, 25. November 2009

UPDATES propagieren irgendwann über alle Knoten
EXISTIERT bereits in RDBMS
Append-Only




                                         14

Mittwoch, 25. November 2009

SPEICHERPLATZ ist billig
UPDATE der Daten = NEUE Revision
KEIN Locking weil kein Update In-Place
Append-Only




                              Update




                                       15

Mittwoch, 25. November 2009
Append-Only




                              Update




                                       16

Mittwoch, 25. November 2009
Skalierbarkeit




                                                               17

Mittwoch, 25. November 2009

OPTIMIERT fuer hohe Concurrency (Read > Write)
REPLIKATION als Feature nicht als Add-On
SKALIERBARKEIT durch Auto-Sharding und/oder Sharding/Hashing

http://www.flickr.com/photos/calliope/3573471166
Tools




                              18

Mittwoch, 25. November 2009
Tools

                                  Riak        BigTable
                    Lotus Notes                 Amazon S3
                                                  Memcached
                               Redis
                                                   Cassandra
                   MongoDB
                         Dynamo                   Dynomite
                                                  CouchDB
  Amazon SimpleDB
                                                Excel ;)
                              Tokyo Tyrant     Neo4j
                        Project Voldemort    HBase

                                                               19

Mittwoch, 25. November 2009
Tools

                                  Riak        BigTable
                    Lotus Notes                 Amazon S3
                                                  Memcached
                               Redis
                                                   Cassandra
                   MongoDB
                         Dynamo                   Dynomite
                                                  CouchDB
  Amazon SimpleDB
                                                Excel ;)
                              Tokyo Tyrant     Neo4j
                        Project Voldemort    HBase

                                                               20

Mittwoch, 25. November 2009
Redis



    Simpler Key-Value-Store
    Speichert Strings, Listen und Sets
    Semi-Persistent




                                                           21

Mittwoch, 25. November 2009

SIMPEL weil einfach gehalten
ATOMARE Operationen auf Strings, Listen und Sets möglich
PERSISTENT über Snapshots und/oder Append-Logs
DATENSET wird im Speicher gehalten
Redis




                                                               22

Mittwoch, 25. November 2009

SPEED ist King
OPERATIONEN in Redis sind auf Speed und Simplizität getrimmt
SINGLE Prozess
REPLIKATION über Master/Slave
Redis

       set foo 4
       1000
       +OK




                                       23

Mittwoch, 25. November 2009

DATENGRÖßE je Key auf 1GB beschränkt
Redis

       set foo 4
                                       Request
       1000
       +OK                             Response




                                                  23

Mittwoch, 25. November 2009

DATENGRÖßE je Key auf 1GB beschränkt
Amazon SimpleDB



    Database as a Service
    Hoch-Skaliert
    Always On
    HTTP-API




                                              24

Mittwoch, 25. November 2009

VERTEILTE Datenbank
ABRECHNUNG nach Computing Hours und Traffic
Amazon SimpleDB




                              25

Mittwoch, 25. November 2009
Amazon SimpleDB




                                                 26

Mittwoch, 25. November 2009

NEUE ATTRIBUTE erfordern keine Schema-Änderung
BASIS aller Schemalosen Datenbanken
STRINGS ist der einzige Datentyp in SimpleDB
NUMMERN sollten mit Paddings versehen werden
DATUM muss als String formatiert werden
Amazon SimpleDB


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

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

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

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




                                                                         27

Mittwoch, 25. November 2009

DOMAINS sind der Spreadsheet
Amazon SimpleDB
                                                 Domain

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

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

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

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




                                                                         27

Mittwoch, 25. November 2009

DOMAINS sind der Spreadsheet
Amazon SimpleDB


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

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

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

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




                                                                         28

Mittwoch, 25. November 2009

ITEMS sind die Einträge
Amazon SimpleDB
                              Item
                                             Memberships
                                                Item #1
                                Name: Paul, Address: 234 Performance Rd.

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

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

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




                                                                           28

Mittwoch, 25. November 2009

ITEMS sind die Einträge
Amazon SimpleDB


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

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

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

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




                                                                         29

Mittwoch, 25. November 2009

ATTRIBUTE die Eigenschaften
VALUES die Werte der Eigenschaften
ATTRIBUTE können mehrere Values haben
Amazon SimpleDB
                                 Attribute
                                          Memberships
                                              Item #1
                              Name: Paul, Address: 234 Performance Rd.

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

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

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




                                                                         29

Mittwoch, 25. November 2009

ATTRIBUTE die Eigenschaften
VALUES die Werte der Eigenschaften
ATTRIBUTE können mehrere Values haben
Amazon SimpleDB
                                 Attribute                            Value
                                          Memberships
                                              Item #1
                              Name: Paul, Address: 234 Performance Rd.

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

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

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




                                                                              29

Mittwoch, 25. November 2009

ATTRIBUTE die Eigenschaften
VALUES die Werte der Eigenschaften
ATTRIBUTE können mehrere Values haben
Amazon SimpleDB




    Wie komme ich an die Daten?




                                  30

Mittwoch, 25. November 2009
Amazon SimpleDB




    GetAttributes: ItemName=1




                                31

Mittwoch, 25. November 2009
Amazon SimpleDB




    select * from memberships where Name = ‘Paul’




                                                    32

Mittwoch, 25. November 2009

SUPPORT für rudimentäre Queries
Amazon SimpleDB




                                     Simplizität durch Restriktionen




                                                                       33

Mittwoch, 25. November 2009

SIMPLIZITÄT durch Restriktionen
10GB pro Domain
10 Mio. Attribute pro Domain
1024 Bytes pro Attribute/Value
256 Attribute-Value-Pairs pro Item
VENDOR Lock-In (Daten einfach rein, aber schwerer wieder raus)
Amazon SimpleDB




    Skalierung mit Eventual Consistency




                                           34

Mittwoch, 25. November 2009

DATENÄNDERUNGEN propagieren nicht sofort
MEHRERE Sekunden kann es dauern
GUT GEEIGNET für read-later Daten
CouchDB
                                   relax
                                           35

Mittwoch, 25. November 2009
CouchDB




    Dokument-orientiert




                                   36

Mittwoch, 25. November 2009

ERLANG als Basis
HOHE CONCURRENCY als Philosophie
”CouchDB is built of the Web“
                              — Jacob Kaplan-Moss




                                                              37

Mittwoch, 25. November 2009

RESTful HTTP-API
VIELE ELEMENTE von HTTP werden verwendet
JSON und UTF-8 für Storage und Transfer
CouchDB


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

                                                         38

Mittwoch, 25. November 2009

DOKUMENTE in JSON
ATTRIBUTE mit _ sind reserviert
_ID ist der Identifier eines Dokumentes
_REV die Revisionsnummer
CouchDB


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

                                                         39

Mittwoch, 25. November 2009

DOKUMENTE in JSON
ATTRIBUTE mit _ sind reserviert
_ID ist der Identifier eines Dokumentes
_REV die Revisionsnummer
CouchDB


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

                                                         40

Mittwoch, 25. November 2009

DOKUMENTE in JSON
ATTRIBUTE mit _ sind reserviert
_ID ist der Identifier eines Dokumentes
_REV die Revisionsnummer
CouchDB - CRUD
    Erstellen/Aktualisieren:
    PUT /starwars/BCCD12CBB


    Lesen:
    GET /starwars/BCCD12CBB


    Löschen:
    DELETE /starwars/BCCD12CBB

                                 41

Mittwoch, 25. November 2009
CouchDB




    Wie komme ich an meine Daten?




                                    42

Mittwoch, 25. November 2009
CouchDB




                              Views!


                                                          43

Mittwoch, 25. November 2009

MAP/REDUCE über Views in JavaScript oder auch Erlang
B-TREE Indizes für schnellen Lookup
VIEWS werden erst beim Lesen erstellt bzw. aktualisiert
CouchDB


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

                                                                              44

Mittwoch, 25. November 2009

MAP Funktion kann beliebige Attribute mit beliebig vielen Werten indizieren
CouchDB



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




                                                          45

Mittwoch, 25. November 2009

REDUCE Funktion aggregiert Ergebnisse aus MAP
CouchDB




                                                         46

Mittwoch, 25. November 2009

B-TREES speichern Referenzen für Views und Key-Lookups
TREE-Storage ist Append-Only
NIEMALS Update In-Place
CouchDB




                                                            47

Mittwoch, 25. November 2009

STORAGE ist Crash-Proof
KONSISTENZ der Datenbank ist durch Append-Only garantiert
CouchDB




                              48

Mittwoch, 25. November 2009

OFFLINE by Default
CouchDB




                                                     49

Mittwoch, 25. November 2009

REPLIKATION ist ein zentrales Feature, kein Add-On
JEDER kann zu jeder Zeit zu jedem replizieren
CouchDB




    POST /_replication




                                                              50

Mittwoch, 25. November 2009

REPLIKATION ist nichts weiter als ein POST-Request
KONTINUIERLICHE Replikation ist seit Release 0.10.0 möglich
Und?




    Daten sind wieder König




                                            51

Mittwoch, 25. November 2009

CONSTRAINTS werden gebrochen
WEB benoetigt mehr Flexibilität als RDBMS
Aber!




    Kein goldener Hammer




                                         52

Mittwoch, 25. November 2009

RICHTIGES Tool für den richtigen Zweck
53

Mittwoch, 25. November 2009

TOOLS kann man ignorieren
54

Mittwoch, 25. November 2009

ODER AKZEPTIEREN dass kein Tool für alle Zwecke passt
ZUKUNFT gehört spezialisierten Tools
Peritor GmbH
                Blücherstr. 22, Hof III Aufgang 6
                10961 Berlin
                Tel.: +49 (0)30 69 20 09 84 0
                Fax: +49 (0)30 69 20 09 84 9
                Internet: www.peritor.com
                E-Mail: info@peritor.com



                © Peritor GmbH - Alle Reche Vorbehalten

Mittwoch, 25. November 2009

Más contenido relacionado

Destacado

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destacado (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Cloud Conf - Datenbanken in der Cloud

  • 1. Datenbanken in der Cloud Data-Storage jenseits von SQL Mathias Meyer, 25.11.2009 Peritor GmbH Mittwoch, 25. November 2009 NEUE GENERATION von post-relationalen Datenbanken
  • 2. Wer? “Chief Cloud Officer” bei Peritor Ruby-Entwickler Open-Source-Contributor (http://github.com/mattmatt) 2 Mittwoch, 25. November 2009 PERITOR ist erster Amazon Web Services Solution Provider in Europa
  • 3. Peritor Cloud-Management und -Deployment made easy http://scalarium.com 3 Mittwoch, 25. November 2009
  • 4. Cloud-Datenbanken? Built for the Web Skalierbar Performant Flexibles Datenschema 4 Mittwoch, 25. November 2009 WEB bedarf neuer Denkweisen über Daten STORAGE muss Verteilung und Robustheit bieten VERFÜGBARKEIT ist King
  • 5. Cloud-Datenbanken? Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 5 Mittwoch, 25. November 2009
  • 6. Der Status-Quo Relationale Datenstrukturen SQL Transaktionssicherheit Locking 6 Mittwoch, 25. November 2009
  • 7. Das Problem 7 Mittwoch, 25. November 2009 DATENSTRUKTUREN verändern sich SCHEMATA sind nicht fix DATENTYPEN sind nicht immer fix MIGRATIONSZEITEN steigen mit der Menge Daten KOMPLEXE Datenstrukturen lassen sich nur schwer abbilden
  • 8. Das Problem 8 Mittwoch, 25. November 2009 TRANSAKTIONSSICHERHEIT oftmals unnötig LOCKING bremst Performance, erschwert Replikation INDEX-UPDATES sind oftmals immediate und verzögern die Transaktion MEHR INDIZES bedeuten mehr Arbeit (Updates, Index-Auswahl bei Query) http://www.flickr.com/photos/31667878@N03/4113087794
  • 9. Die Lösung ”Simplicity is prerequisite for reliability“ — Edsger W. Dijkstra 9 Mittwoch, 25. November 2009 SIMPLIZITÄT statt Komplexität DATEN statt Struktur
  • 10. Die Lösung key => “value” 10 Mittwoch, 25. November 2009 KEY/VALUE für einfache Datenstrukturen
  • 11. Dokumente 11 Mittwoch, 25. November 2009 DOKUMENTE statt fixe Tabellenstrukturen DOKUMENTE enthalten alle relevanten Daten (self-contained) SCHEMAPFLEGE entfällt DATENMIGRATION nicht
  • 12. Dokumente 11 Mittwoch, 25. November 2009 DOKUMENTE statt fixe Tabellenstrukturen DOKUMENTE enthalten alle relevanten Daten (self-contained) SCHEMAPFLEGE entfällt DATENMIGRATION nicht
  • 13. Dokumente 11 Mittwoch, 25. November 2009 DOKUMENTE statt fixe Tabellenstrukturen DOKUMENTE enthalten alle relevanten Daten (self-contained) SCHEMAPFLEGE entfällt DATENMIGRATION nicht
  • 14. Dokumente 11 Mittwoch, 25. November 2009 DOKUMENTE statt fixe Tabellenstrukturen DOKUMENTE enthalten alle relevanten Daten (self-contained) SCHEMAPFLEGE entfällt DATENMIGRATION nicht
  • 15. Integrität 12 Mittwoch, 25. November 2009 Atomicity, Consistency, Isolation, Durability ACID ist King, oder auch nicht ACID vs. Performance ACID ist lokal EVENTUAL CONSISTENCY statt verteilter Transaktionen http://www.flickr.com/photos/peapea/40955407/
  • 16. Eventual Consistency 13 Mittwoch, 25. November 2009 UPDATES propagieren irgendwann über alle Knoten EXISTIERT bereits in RDBMS
  • 17. Append-Only 14 Mittwoch, 25. November 2009 SPEICHERPLATZ ist billig UPDATE der Daten = NEUE Revision KEIN Locking weil kein Update In-Place
  • 18. Append-Only Update 15 Mittwoch, 25. November 2009
  • 19. Append-Only Update 16 Mittwoch, 25. November 2009
  • 20. Skalierbarkeit 17 Mittwoch, 25. November 2009 OPTIMIERT fuer hohe Concurrency (Read > Write) REPLIKATION als Feature nicht als Add-On SKALIERBARKEIT durch Auto-Sharding und/oder Sharding/Hashing http://www.flickr.com/photos/calliope/3573471166
  • 21. Tools 18 Mittwoch, 25. November 2009
  • 22. Tools Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 19 Mittwoch, 25. November 2009
  • 23. Tools Riak BigTable Lotus Notes Amazon S3 Memcached Redis Cassandra MongoDB Dynamo Dynomite CouchDB Amazon SimpleDB Excel ;) Tokyo Tyrant Neo4j Project Voldemort HBase 20 Mittwoch, 25. November 2009
  • 24. Redis Simpler Key-Value-Store Speichert Strings, Listen und Sets Semi-Persistent 21 Mittwoch, 25. November 2009 SIMPEL weil einfach gehalten ATOMARE Operationen auf Strings, Listen und Sets möglich PERSISTENT über Snapshots und/oder Append-Logs DATENSET wird im Speicher gehalten
  • 25. Redis 22 Mittwoch, 25. November 2009 SPEED ist King OPERATIONEN in Redis sind auf Speed und Simplizität getrimmt SINGLE Prozess REPLIKATION über Master/Slave
  • 26. Redis set foo 4 1000 +OK 23 Mittwoch, 25. November 2009 DATENGRÖßE je Key auf 1GB beschränkt
  • 27. Redis set foo 4 Request 1000 +OK Response 23 Mittwoch, 25. November 2009 DATENGRÖßE je Key auf 1GB beschränkt
  • 28. Amazon SimpleDB Database as a Service Hoch-Skaliert Always On HTTP-API 24 Mittwoch, 25. November 2009 VERTEILTE Datenbank ABRECHNUNG nach Computing Hours und Traffic
  • 29. Amazon SimpleDB 25 Mittwoch, 25. November 2009
  • 30. Amazon SimpleDB 26 Mittwoch, 25. November 2009 NEUE ATTRIBUTE erfordern keine Schema-Änderung BASIS aller Schemalosen Datenbanken STRINGS ist der einzige Datentyp in SimpleDB NUMMERN sollten mit Paddings versehen werden DATUM muss als String formatiert werden
  • 31. Amazon SimpleDB Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 27 Mittwoch, 25. November 2009 DOMAINS sind der Spreadsheet
  • 32. Amazon SimpleDB Domain Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 27 Mittwoch, 25. November 2009 DOMAINS sind der Spreadsheet
  • 33. Amazon SimpleDB Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 28 Mittwoch, 25. November 2009 ITEMS sind die Einträge
  • 34. Amazon SimpleDB Item Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 28 Mittwoch, 25. November 2009 ITEMS sind die Einträge
  • 35. Amazon SimpleDB Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 29 Mittwoch, 25. November 2009 ATTRIBUTE die Eigenschaften VALUES die Werte der Eigenschaften ATTRIBUTE können mehrere Values haben
  • 36. Amazon SimpleDB Attribute Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 29 Mittwoch, 25. November 2009 ATTRIBUTE die Eigenschaften VALUES die Werte der Eigenschaften ATTRIBUTE können mehrere Values haben
  • 37. Amazon SimpleDB Attribute Value Memberships Item #1 Name: Paul, Address: 234 Performance Rd. Item #2 Name: John, Address: 567 Couch St. Item #3 Name: Frank, Address: 321 Cloud Ave. Item #4 Name: Tom, Address: 123 Scale St. 29 Mittwoch, 25. November 2009 ATTRIBUTE die Eigenschaften VALUES die Werte der Eigenschaften ATTRIBUTE können mehrere Values haben
  • 38. Amazon SimpleDB Wie komme ich an die Daten? 30 Mittwoch, 25. November 2009
  • 39. Amazon SimpleDB GetAttributes: ItemName=1 31 Mittwoch, 25. November 2009
  • 40. Amazon SimpleDB select * from memberships where Name = ‘Paul’ 32 Mittwoch, 25. November 2009 SUPPORT für rudimentäre Queries
  • 41. Amazon SimpleDB Simplizität durch Restriktionen 33 Mittwoch, 25. November 2009 SIMPLIZITÄT durch Restriktionen 10GB pro Domain 10 Mio. Attribute pro Domain 1024 Bytes pro Attribute/Value 256 Attribute-Value-Pairs pro Item VENDOR Lock-In (Daten einfach rein, aber schwerer wieder raus)
  • 42. Amazon SimpleDB Skalierung mit Eventual Consistency 34 Mittwoch, 25. November 2009 DATENÄNDERUNGEN propagieren nicht sofort MEHRERE Sekunden kann es dauern GUT GEEIGNET für read-later Daten
  • 43. CouchDB relax 35 Mittwoch, 25. November 2009
  • 44. CouchDB Dokument-orientiert 36 Mittwoch, 25. November 2009 ERLANG als Basis HOHE CONCURRENCY als Philosophie
  • 45. ”CouchDB is built of the Web“ — Jacob Kaplan-Moss 37 Mittwoch, 25. November 2009 RESTful HTTP-API VIELE ELEMENTE von HTTP werden verwendet JSON und UTF-8 für Storage und Transfer
  • 46. CouchDB {    "_id":  "BCCD12CBB",    "_rev":  "1-­‐AB764C",    "type":  "person",    "name":  "Darth  Vader",    "age":  63,    "headware":  ["Helmet",  "Sombrero"],    "dark_side":  true } 38 Mittwoch, 25. November 2009 DOKUMENTE in JSON ATTRIBUTE mit _ sind reserviert _ID ist der Identifier eines Dokumentes _REV die Revisionsnummer
  • 47. CouchDB {    "_id":  "BCCD12CBB",    "_rev":  "1-­‐AB764C",    "type":  "person",    "name":  "Darth  Vader",    "age":  63,    "headware":  ["Helmet",  "Sombrero"],    "dark_side":  true } 39 Mittwoch, 25. November 2009 DOKUMENTE in JSON ATTRIBUTE mit _ sind reserviert _ID ist der Identifier eines Dokumentes _REV die Revisionsnummer
  • 48. CouchDB {    "_id":  "BCCD12CBB",    "_rev":  "1-­‐AB764C",    "type":  "person",    "name":  "Darth  Vader",    "age":  63,    "headware":  ["Helmet",  "Sombrero"],    "dark_side":  true } 40 Mittwoch, 25. November 2009 DOKUMENTE in JSON ATTRIBUTE mit _ sind reserviert _ID ist der Identifier eines Dokumentes _REV die Revisionsnummer
  • 49. CouchDB - CRUD Erstellen/Aktualisieren: PUT /starwars/BCCD12CBB Lesen: GET /starwars/BCCD12CBB Löschen: DELETE /starwars/BCCD12CBB 41 Mittwoch, 25. November 2009
  • 50. CouchDB Wie komme ich an meine Daten? 42 Mittwoch, 25. November 2009
  • 51. CouchDB Views! 43 Mittwoch, 25. November 2009 MAP/REDUCE über Views in JavaScript oder auch Erlang B-TREE Indizes für schnellen Lookup VIEWS werden erst beim Lesen erstellt bzw. aktualisiert
  • 52. CouchDB function(doc)  {    if  (doc.headware)  {        for  (var  hat  in  doc.headware)  {            emit(hat,  1);        }    } } 44 Mittwoch, 25. November 2009 MAP Funktion kann beliebige Attribute mit beliebig vielen Werten indizieren
  • 53. CouchDB function(keys,  values,  rereduce)  {    return  sum(values); } 45 Mittwoch, 25. November 2009 REDUCE Funktion aggregiert Ergebnisse aus MAP
  • 54. CouchDB 46 Mittwoch, 25. November 2009 B-TREES speichern Referenzen für Views und Key-Lookups TREE-Storage ist Append-Only NIEMALS Update In-Place
  • 55. CouchDB 47 Mittwoch, 25. November 2009 STORAGE ist Crash-Proof KONSISTENZ der Datenbank ist durch Append-Only garantiert
  • 56. CouchDB 48 Mittwoch, 25. November 2009 OFFLINE by Default
  • 57. CouchDB 49 Mittwoch, 25. November 2009 REPLIKATION ist ein zentrales Feature, kein Add-On JEDER kann zu jeder Zeit zu jedem replizieren
  • 58. CouchDB POST /_replication 50 Mittwoch, 25. November 2009 REPLIKATION ist nichts weiter als ein POST-Request KONTINUIERLICHE Replikation ist seit Release 0.10.0 möglich
  • 59. Und? Daten sind wieder König 51 Mittwoch, 25. November 2009 CONSTRAINTS werden gebrochen WEB benoetigt mehr Flexibilität als RDBMS
  • 60. Aber! Kein goldener Hammer 52 Mittwoch, 25. November 2009 RICHTIGES Tool für den richtigen Zweck
  • 61. 53 Mittwoch, 25. November 2009 TOOLS kann man ignorieren
  • 62. 54 Mittwoch, 25. November 2009 ODER AKZEPTIEREN dass kein Tool für alle Zwecke passt ZUKUNFT gehört spezialisierten Tools
  • 63. Peritor GmbH Blücherstr. 22, Hof III Aufgang 6 10961 Berlin Tel.: +49 (0)30 69 20 09 84 0 Fax: +49 (0)30 69 20 09 84 9 Internet: www.peritor.com E-Mail: info@peritor.com © Peritor GmbH - Alle Reche Vorbehalten Mittwoch, 25. November 2009