Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
NOSQL?
MONGO, COUCH & CO.
    Michael Whittaker
   Webmontag Paderborn
      8. April 2013
ERFAHRUNGEN
NOSQL
NO SQL?
NOT ONLY SQL
WHY NOT ONLY SQL?
„BigData“?
Millionen                (PetaBytes)
 User?                    unstrukturiert




             CODD 1970

Realt...
Atomic            Consistent


           ACID
Isolated           Durable
Basic
                            Soft-State
Availability

               BASE
                Eventual
               Con...
DB-TYPEN



Relationen / SQL    Graphen


   BigTable /      Dokumente /
 Spaltenbasiert      Objekte
SQL / RELATIONALES SCHEMA


Mitglieder




                                                 }
 ID          Name           ...
SQL / RELATIONALES SCHEMA

                       Max ist mit
                    Sandra und Peter
                      b...
OBJEKTGRAPH
max@...
                                                          peter@...

            Mitglied
            ...
IST DAS NICHT...
IST DAS NICHT...
FAST EIN ER-DIAGRAMM?
                  kann das
            so nicht direkt in die
                     ...
GRAPHDATENBANKEN
      NEO4J
DOKUMENTENORIENTIERTE
    DATENBANKEN
{name: „Mongo“, type: „DB“}
BSON-DOKUMENTE
           IN COLLECTIONS


    {
      "_id": {
          "$oid": "5056259d…000012",
      },
      "email...
BSON-DOKUMENTE
           IN COLLECTIONS

    {
      "_id": {
          "$oid": "5056259d…000011",
      },
      "email"...
BSON-DOKUMENTE
            IN COLLECTIONS

    {
      "_id": {
          "$oid": "5056259d…000011",
      },
      "email...
MONGODB QUERY


{
  > db.members.find( { "name": "Max Mustermann" } )

  > db.members.find( { "name": /max.*/i } )

  > db...
ZUGRIFF



MongoDB-Server

Treiber

CREATE TABLE …
MONGOS STÄRKEN


Geschwindigkeit

JSON-Im/-Export / Hot Backups

Queries und Indizes (Geospatial, verschachtelt, ...)

Kon...
MONGODB USERS
JSON DOKUMENTE IN
              COUCHDB
    {
      "_id": "member_5056259d…000011",
      "type": "member",
      "email"...
COUCHDB VIEWS
               (JS MAPREDUCE)


{
  function(doc) {
    if (doc.type === "member" && doc.name.test(/max.*/i)...
COUCHDB VIEWS


{
  function(doc) {
    if (doc.type === "member" &&
        doc.addresses &&
        doc.addresses.length...
ZUGRIFF



CouchDB-Server

HTTP / Treiber (Wrapper)

Views definieren
COUCHDBS STÄRKEN


Built for the Web – HTTP/JSON

  CouchApp

Versionierung

Views / Indizes / MapReduce

High Availability
COUCHDB USERS
KEY-VALUE STORES
KEY-VALUE STORES

SPEICHERN WERTE MIT EINEM
       SCHLÜSSEL AB
memcached
MEMCACHED


  speichert beliebige Zeichenketten im RAM ab

  weitverbreitet, „memcache-Protokoll“ (Telnet)

  oft für Dist...
REDIS

    speichert Zeichenketten, Zahlen, Arrays und Mengen
    im RAM* ab

    „Datenstruktur-Server“

    rasend schne...
blog.nahurst.com/visual-guide-to-nosql-systems
LINKS

Neo4J: neo4j.org
MongoDB: mongodb.org (try.mongodb.org)
CouchDB: couchdb.apache.org (couchapp.org)
Couchbase: couch...
DAS WAR‘S :-)


MichaelWhi online:

post@michael-whittaker.de

michael-whittaker.de

twitter.com/MichaelWhi

github.com/Mi...
NoSQL - Mongo, Couch und Co
NoSQL - Mongo, Couch und Co
NoSQL - Mongo, Couch und Co
Nächste SlideShare
Wird geladen in …5
×

von

NoSQL - Mongo, Couch und Co Slide 1 NoSQL - Mongo, Couch und Co Slide 2 NoSQL - Mongo, Couch und Co Slide 3 NoSQL - Mongo, Couch und Co Slide 4 NoSQL - Mongo, Couch und Co Slide 5 NoSQL - Mongo, Couch und Co Slide 6 NoSQL - Mongo, Couch und Co Slide 7 NoSQL - Mongo, Couch und Co Slide 8 NoSQL - Mongo, Couch und Co Slide 9 NoSQL - Mongo, Couch und Co Slide 10 NoSQL - Mongo, Couch und Co Slide 11 NoSQL - Mongo, Couch und Co Slide 12 NoSQL - Mongo, Couch und Co Slide 13 NoSQL - Mongo, Couch und Co Slide 14 NoSQL - Mongo, Couch und Co Slide 15 NoSQL - Mongo, Couch und Co Slide 16 NoSQL - Mongo, Couch und Co Slide 17 NoSQL - Mongo, Couch und Co Slide 18 NoSQL - Mongo, Couch und Co Slide 19 NoSQL - Mongo, Couch und Co Slide 20 NoSQL - Mongo, Couch und Co Slide 21 NoSQL - Mongo, Couch und Co Slide 22 NoSQL - Mongo, Couch und Co Slide 23 NoSQL - Mongo, Couch und Co Slide 24 NoSQL - Mongo, Couch und Co Slide 25 NoSQL - Mongo, Couch und Co Slide 26 NoSQL - Mongo, Couch und Co Slide 27 NoSQL - Mongo, Couch und Co Slide 28 NoSQL - Mongo, Couch und Co Slide 29 NoSQL - Mongo, Couch und Co Slide 30 NoSQL - Mongo, Couch und Co Slide 31 NoSQL - Mongo, Couch und Co Slide 32 NoSQL - Mongo, Couch und Co Slide 33 NoSQL - Mongo, Couch und Co Slide 34 NoSQL - Mongo, Couch und Co Slide 35 NoSQL - Mongo, Couch und Co Slide 36 NoSQL - Mongo, Couch und Co Slide 37 NoSQL - Mongo, Couch und Co Slide 38 NoSQL - Mongo, Couch und Co Slide 39 NoSQL - Mongo, Couch und Co Slide 40 NoSQL - Mongo, Couch und Co Slide 41 NoSQL - Mongo, Couch und Co Slide 42
Nächste SlideShare
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

1 Gefällt mir

Teilen

Herunterladen, um offline zu lesen

NoSQL - Mongo, Couch und Co

Herunterladen, um offline zu lesen

Slides vom Webmontag Paderborn, 8.4.2013 zum Thema NoSQL-Datenbanken

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

NoSQL - Mongo, Couch und Co

  1. 1. NOSQL? MONGO, COUCH & CO. Michael Whittaker Webmontag Paderborn 8. April 2013
  2. 2. ERFAHRUNGEN
  3. 3. NOSQL
  4. 4. NO SQL?
  5. 5. NOT ONLY SQL
  6. 6. WHY NOT ONLY SQL?
  7. 7. „BigData“? Millionen (PetaBytes) User? unstrukturiert CODD 1970 Realtime Commodity Analytics? Hardware?
  8. 8. Atomic Consistent ACID Isolated Durable
  9. 9. Basic Soft-State Availability BASE Eventual Consistent
  10. 10. DB-TYPEN Relationen / SQL Graphen BigTable / Dokumente / Spaltenbasiert Objekte
  11. 11. SQL / RELATIONALES SCHEMA Mitglieder } ID Name Mail 1 Max Mustermann max@mustermann.de Relation/ 2 Sandra Musterfrau sandra@musterfrau.de Tabelle 3 Peter Müller peter@mueller.de
  12. 12. SQL / RELATIONALES SCHEMA Max ist mit Sandra und Peter befreundet Freundschaften Mitglied1_ID Mitglied2_ID Max‘ ID 1 2 Sandra Max 1 3 Peter
  13. 13. OBJEKTGRAPH max@... peter@... Mitglied Freund Mitglied Max Freund Peter Mitglied sandra@... Sandra
  14. 14. IST DAS NICHT...
  15. 15. IST DAS NICHT... FAST EIN ER-DIAGRAMM? kann das so nicht direkt in die DB?
  16. 16. GRAPHDATENBANKEN NEO4J
  17. 17. DOKUMENTENORIENTIERTE DATENBANKEN
  18. 18. {name: „Mongo“, type: „DB“}
  19. 19. BSON-DOKUMENTE IN COLLECTIONS {     "_id": {         "$oid": "5056259d…000012",     },     "email": "max@mustermann.de",     "name": "Max Mustermann" }
  20. 20. BSON-DOKUMENTE IN COLLECTIONS {     "_id": {         "$oid": "5056259d…000011",     },     "email": "max@mustermann.de",     "name": "Max Mustermann", "friend_ids": ["5056259d…000012", "5056259d…000013"] } Referenz auf IDs
  21. 21. BSON-DOKUMENTE IN COLLECTIONS {     "_id": {         "$oid": "5056259d…000011",     },     "email": "max@mustermann.de",     "name": "Max Mustermann", "friend_ids": ["5056259d…000012", "5056259d…000013"], "addresses": [{         "street": "Warburger Str. 100", "coords": [12.34, 23.45] }, … ] }
  22. 22. MONGODB QUERY {   > db.members.find( { "name": "Max Mustermann" } )   > db.members.find( { "name": /max.*/i } )   > db.members.find( { "friend_ids ": { $size: 0 } } )   > db.members.find( { "friend_ids ": { $elemMatch: "50…11" } } )
  23. 23. ZUGRIFF MongoDB-Server Treiber CREATE TABLE …
  24. 24. MONGOS STÄRKEN Geschwindigkeit JSON-Im/-Export / Hot Backups Queries und Indizes (Geospatial, verschachtelt, ...) Konsistenz
  25. 25. MONGODB USERS
  26. 26. JSON DOKUMENTE IN COUCHDB {     "_id": "member_5056259d…000011",     "type": "member",     "email": "max@mustermann.de",     "name": "Max Mustermann", "friend_ids": ["member_505…012", "member_505…013"], "addresses": [{         "street": "Warburger Str. 100", "coords": [12.34, 23.45] }, … ] } http://localhost:5984/test/member_5056259d…000011
  27. 27. COUCHDB VIEWS (JS MAPREDUCE) {   function(doc) { if (doc.type === "member" && doc.name.test(/max.*/i)){ emit(doc.name, doc) } }
  28. 28. COUCHDB VIEWS {   function(doc) { if (doc.type === "member" && doc.addresses && doc.addresses.length > 0){ emit(doc.name, doc.addresses[0][street]) } } http://localhost:5984/test/_design/names_with_street?key=Max+Mustermann
  29. 29. ZUGRIFF CouchDB-Server HTTP / Treiber (Wrapper) Views definieren
  30. 30. COUCHDBS STÄRKEN Built for the Web – HTTP/JSON CouchApp Versionierung Views / Indizes / MapReduce High Availability
  31. 31. COUCHDB USERS
  32. 32. KEY-VALUE STORES
  33. 33. KEY-VALUE STORES SPEICHERN WERTE MIT EINEM SCHLÜSSEL AB
  34. 34. memcached
  35. 35. MEMCACHED speichert beliebige Zeichenketten im RAM ab weitverbreitet, „memcache-Protokoll“ (Telnet) oft für Distributed Caching genutzt {   > set max_mustermann.street "Warburger Strasse 100" > get max_mustermann.street
  36. 36. REDIS speichert Zeichenketten, Zahlen, Arrays und Mengen im RAM* ab „Datenstruktur-Server“ rasend schnell Replikation / Failover { > set max_mustermann.profile_views 1 > incr max_mustermann.profile_views # => 2
  37. 37. blog.nahurst.com/visual-guide-to-nosql-systems
  38. 38. LINKS Neo4J: neo4j.org MongoDB: mongodb.org (try.mongodb.org) CouchDB: couchdb.apache.org (couchapp.org) Couchbase: couchbase.com Memcached: memcached.org Redis: redis.io Cassandra: cassandra.apache.org Riak: basho.com/riak/ GemStone/S: gemstone.com/products/gemstone Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Neo4j vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison: kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
  39. 39. DAS WAR‘S :-) MichaelWhi online: post@michael-whittaker.de michael-whittaker.de twitter.com/MichaelWhi github.com/MichaelWhi Folien von heute
  • mrflory

    Apr. 10, 2013

Slides vom Webmontag Paderborn, 8.4.2013 zum Thema NoSQL-Datenbanken

Aufrufe

Aufrufe insgesamt

4.705

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

29

Befehle

Downloads

15

Geteilt

0

Kommentare

0

Likes

1

×