Introduction                Documents       Distributed System       Queries and Views               CouchApps            ...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                              Documents                     Distributed System                     Queries and...
Introduction                          Documents                 Distributed System                 Queries and Views      ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                       Documents              Distributed System              Queries and Views               ...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                               Documents                      Distributed System                      Queries ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                           Documents                  Distributed System                  Queries and Views   ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                      Documents     Document-Oriented Data Model             Distributed System     Updates an...
Introduction                            Documents     Document-Oriented Data Model                   Distributed System   ...
Introduction                            Documents     Document-Oriented Data Model                   Distributed System   ...
Introduction                               Documents     Document-Oriented Data Model                      Distributed Sys...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                          Documents     Document-Oriented Data Model                 Distributed System     Up...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                             Documents     Document-Oriented Data Model                    Distributed System ...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                                      Documents                             Distributed System                ...
Introduction                                      Documents                             Distributed System                ...
Introduction                                      Documents                             Distributed System                ...
Introduction                                      Documents                             Distributed System                ...
Introduction                                      Documents                             Distributed System                ...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                                Documents     Views                       Distributed System     Creating View...
Introduction                          Documents     Views                 Distributed System     Creating Views with Map R...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                           Documents     Views                  Distributed System     Creating Views with Map...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                            Documents     Views                   Distributed System     Creating Views with M...
Introduction                              Documents     Views                     Distributed System     Creating Views wi...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                             Documents     Views                    Distributed System     Creating Views with...
Introduction                               Documents     Views                      Distributed System     Creating Views ...
Introduction                               Documents     Views                      Distributed System     Creating Views ...
Introduction                                    Documents     Views                           Distributed System     Creat...
Introduction                                   Documents     Views                          Distributed System     Creatin...
Introduction                                   Documents     Views                          Distributed System     Creatin...
Introduction                   Documents     Views          Distributed System     Creating Views with Map Reduce         ...
Introduction                            Documents                   Distributed System                   Queries and Views...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction                             Documents                    Distributed System                    Queries and Vi...
Introduction               Documents      Distributed System      Queries and Views              CouchAppsQ&A         Than...
Links        The CouchDB Project        http://couchdb.apache.org                    Kerstin Puschke   NoSQL
Links        The CouchDB Project        http://couchdb.apache.org        CouchDB Wiki        http://wiki.apache.org/couchd...
Links        The CouchDB Project        http://couchdb.apache.org        CouchDB Wiki        http://wiki.apache.org/couchd...
Links        The CouchDB Project        http://couchdb.apache.org        CouchDB Wiki        http://wiki.apache.org/couchd...
Links        The CouchDB Project        http://couchdb.apache.org        CouchDB Wiki        http://wiki.apache.org/couchd...
Upcoming SlideShare
Loading in...5
×

CouchDB

1,416

Published on

CouchDB Session Barcamp 'The Next Web', Salzburg 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,416
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CouchDB

  1. 1. Introduction Documents Distributed System Queries and Views CouchApps CouchDB Kerstin PuschkeThe Next Web - Barcamp Salzburg 2011 Kerstin Puschke NoSQL
  2. 2. Introduction Documents Distributed System Queries and Views CouchAppsLicense License Creative Commons Attribution 3.0 Germany Lizenz, see http://creativecommons.org/licenses/by/3.0/de/ Kerstin Puschke NoSQL
  3. 3. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction Kerstin Puschke NoSQL
  4. 4. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents Kerstin Puschke NoSQL
  5. 5. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System Kerstin Puschke NoSQL
  6. 6. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System 4 Queries and Views Views Creating Views with Map Reduce Example Kerstin Puschke NoSQL
  7. 7. Introduction Documents Distributed System Queries and Views CouchAppsOutline 1 Introduction 2 Documents Document-Oriented Data Model Updates and Concurrency Design Documents 3 Distributed System 4 Queries and Views Views Creating Views with Map Reduce Example 5 CouchApps Kerstin Puschke NoSQL
  8. 8. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase Kerstin Puschke NoSQL
  9. 9. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store Kerstin Puschke NoSQL
  10. 10. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless Kerstin Puschke NoSQL
  11. 11. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication Kerstin Puschke NoSQL
  12. 12. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down Kerstin Puschke NoSQL
  13. 13. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down open web standards Kerstin Puschke NoSQL
  14. 14. Introduction Documents Distributed System Queries and Views CouchAppsCouchDB? Cluster Of Unreliable Commodity Hardware DataBase NoSQL database, non-relational data store schemaless distributed computing - robust replication scaling up and down open web standards decentralized (web)applications - available offline Kerstin Puschke NoSQL
  15. 15. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Kerstin Puschke NoSQL
  16. 16. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Ubuntu One Kerstin Puschke NoSQL
  17. 17. Introduction Documents Distributed System Queries and Views CouchAppsIn the Wild BBC Ubuntu One lots of software, websites, facebook apps, . . . Kerstin Puschke NoSQL
  18. 18. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Kerstin Puschke NoSQL
  19. 19. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included Kerstin Puschke NoSQL
  20. 20. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs Kerstin Puschke NoSQL
  21. 21. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo Kerstin Puschke NoSQL
  22. 22. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo delete a a database DELETE http://localhost:5984/foo Kerstin Puschke NoSQL
  23. 23. Introduction Documents Distributed System Queries and Views CouchAppsGetting Started RESTful HTTP/JSON API Webserver included http://localhost:5984 http://localhost:5984/_all_dbs create a database PUT http://localhost:5984/foo delete a a database DELETE http://localhost:5984/foo Webinterface Futon http://localhost:5984/_utils Kerstin Puschke NoSQL
  24. 24. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs Kerstin Puschke NoSQL
  25. 25. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) Kerstin Puschke NoSQL
  26. 26. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous Kerstin Puschke NoSQL
  27. 27. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . Kerstin Puschke NoSQL
  28. 28. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: Kerstin Puschke NoSQL
  29. 29. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) Kerstin Puschke NoSQL
  30. 30. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) revision identifier _rev Kerstin Puschke NoSQL
  31. 31. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDocument-Oriented Data Model abstraction layer above key-value pairs document: self-contained data, reasonable unit of information (invoice, business card,. . . ) schemaless, no referential integrity flexible, but dangerous JSON-object values can be scalar, array, objects, nested data structures,. . . mandatory fields: unique document identifier _id (UUID) revision identifier _rev files can be attached to documents Kerstin Puschke NoSQL
  32. 32. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsCouchDB DocumentJSON Kerstin Puschke NoSQL
  33. 33. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document Kerstin Puschke NoSQL
  34. 34. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document append-only - new version appended to database no diffs, no partial updates Kerstin Puschke NoSQL
  35. 35. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsUpdates client sends full document append-only - new version appended to database no diffs, no partial updates robust and fast Kerstin Puschke NoSQL
  36. 36. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking Kerstin Puschke NoSQL
  37. 37. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev Kerstin Puschke NoSQL
  38. 38. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database Kerstin Puschke NoSQL
  39. 39. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev Kerstin Puschke NoSQL
  40. 40. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev no: conflict - update refused with 409 Kerstin Puschke NoSQL
  41. 41. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsMulti Version Concurrency Control optimistic locking client sends new version of document along with old _rev server checks if _rev matches the one stored in the database yes: new version saved along with new _rev no: conflict - update refused with 409 no version control some versions unavailable (at least on some nodes) Kerstin Puschke NoSQL
  42. 42. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design Kerstin Puschke NoSQL
  43. 43. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document Kerstin Puschke NoSQL
  44. 44. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code Kerstin Puschke NoSQL
  45. 45. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates Kerstin Puschke NoSQL
  46. 46. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update Kerstin Puschke NoSQL
  47. 47. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output Kerstin Puschke NoSQL
  48. 48. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output map, reduce: creation of views/indices Kerstin Puschke NoSQL
  49. 49. Introduction Documents Document-Oriented Data Model Distributed System Updates and Concurrency Queries and Views Design Documents CouchAppsDesign Documents _id starts with _design create, update, replicate,. . . like any other document no data but code validate_doc_update: validation of updates update: server-side logic for document creation or update show, list: rendering output map, reduce: creation of views/indices default language: JavaScript plugins for PHP, Ruby, Python, Perl, Common Lisp, Erlang,. . . Kerstin Puschke NoSQL
  50. 50. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster Kerstin Puschke NoSQL
  51. 51. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental Kerstin Puschke NoSQL
  52. 52. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions Kerstin Puschke NoSQL
  53. 53. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . Kerstin Puschke NoSQL
  54. 54. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust Kerstin Puschke NoSQL
  55. 55. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust filtered Kerstin Puschke NoSQL
  56. 56. Introduction Documents Distributed System Queries and Views CouchAppsReplication shared nothing cluster incremental latest revision only - no transfer of previous versions N-Master, Master-Slave,. . . very robust filtered ’non-destructive’ conflict handling Kerstin Puschke NoSQL
  57. 57. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . Kerstin Puschke NoSQL
  58. 58. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency Kerstin Puschke NoSQL
  59. 59. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window Kerstin Puschke NoSQL
  60. 60. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window BASE - basically available, soft-state, eventually consistent Kerstin Puschke NoSQL
  61. 61. Introduction Documents Distributed System Queries and Views CouchAppsEventual ConsistencyConsistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance - you can’t have it all. . . CouchDB provides eventual consistency inconsistency window BASE - basically available, soft-state, eventually consistent ACID on a single node, BASE in a distributed system Kerstin Puschke NoSQL
  62. 62. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id Kerstin Puschke NoSQL
  63. 63. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id no dynamic queries, no ad hoc reporting Kerstin Puschke NoSQL
  64. 64. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQueries fetch document by _id no dynamic queries, no ad hoc reporting need to create views (indices) to query Kerstin Puschke NoSQL
  65. 65. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs Kerstin Puschke NoSQL
  66. 66. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Kerstin Puschke NoSQL
  67. 67. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value Kerstin Puschke NoSQL
  68. 68. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible Kerstin Puschke NoSQL
  69. 69. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key Kerstin Puschke NoSQL
  70. 70. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ Kerstin Puschke NoSQL
  71. 71. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ values can be aggregated Kerstin Puschke NoSQL
  72. 72. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViews (secondary) index key-value-pairs keys and values are values from documents Example: creation date as key, title of post as value composite keys and values possible sorted by key efficient lookup of keys or key ranges ’Posts created in May 2009’ values can be aggregated created and updated when accessed Kerstin Puschke NoSQL
  73. 73. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsViewExample View with key date and value title, in Futon Kerstin Puschke NoSQL
  74. 74. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming Kerstin Puschke NoSQL
  75. 75. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) Kerstin Puschke NoSQL
  76. 76. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents Kerstin Puschke NoSQL
  77. 77. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map Kerstin Puschke NoSQL
  78. 78. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document Kerstin Puschke NoSQL
  79. 79. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view Kerstin Puschke NoSQL
  80. 80. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key Kerstin Puschke NoSQL
  81. 81. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) Kerstin Puschke NoSQL
  82. 82. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) input: (partial) results of map or of previous calls to reduce Kerstin Puschke NoSQL
  83. 83. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap Reduce map and reduce functions common in functional programming MapReduce: framework for concurrent, distributed processing of large data sets (Google) map and reduce defined in design documents map input: one document computes key-value pairs for view sorted by key reduce (optional) input: (partial) results of map or of previous calls to reduce returns aggregated values Kerstin Puschke NoSQL
  84. 84. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsMap FunctionExample Design doc with map Kerstin Puschke NoSQL
  85. 85. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsReduce FunctionExample Design doc with map and reduce Kerstin Puschke NoSQL
  86. 86. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying ViewExample View without reduce Kerstin Puschke NoSQL
  87. 87. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying a ViewExample View with reduce Kerstin Puschke NoSQL
  88. 88. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsQuerying a ViewExample View with reduce View with reduce and group_level=2 Kerstin Puschke NoSQL
  89. 89. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExampleBlogpost with “inline” comments Kerstin Puschke NoSQL
  90. 90. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExamplePosts and Comments in different docs Kerstin Puschke NoSQL
  91. 91. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExampleView to query for posts and their comments map-function with composite key function(doc) { if (doc.type == "post") { emit([doc._id, 0], doc); } else if (doc.type == "comment") { emit([doc.post_id, 1], doc); } } Kerstin Puschke NoSQL
  92. 92. Introduction Documents Views Distributed System Creating Views with Map Reduce Queries and Views Example CouchAppsExamplecontd. Kerstin Puschke NoSQL
  93. 93. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database Kerstin Puschke NoSQL
  94. 94. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware Kerstin Puschke NoSQL
  95. 95. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication Kerstin Puschke NoSQL
  96. 96. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication show/list functions, direct access to attachments (HTML,JavaScript,. . . ) Kerstin Puschke NoSQL
  97. 97. Introduction Documents Distributed System Queries and Views CouchAppsCouchApps applications living in the database no middleware data and code are documents: update, fork, backup etc. via replication show/list functions, direct access to attachments (HTML,JavaScript,. . . ) load data via AJAX Kerstin Puschke NoSQL
  98. 98. Introduction Documents Distributed System Queries and Views CouchAppsQ&A Thanks for listening! Questions? Comments? Kerstin Puschke NoSQL
  99. 99. Links The CouchDB Project http://couchdb.apache.org Kerstin Puschke NoSQL
  100. 100. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Kerstin Puschke NoSQL
  101. 101. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org Kerstin Puschke NoSQL
  102. 102. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org CouchApp - framework: Simple JavaScript applications with CouchDB http://couchapp.org Kerstin Puschke NoSQL
  103. 103. Links The CouchDB Project http://couchdb.apache.org CouchDB Wiki http://wiki.apache.org/couchdb Book: CouchDB - The Definitive Guide http://guide.couchdb.org CouchApp - framework: Simple JavaScript applications with CouchDB http://couchapp.org Couchbase - free hosting, docs, and more http://www.couchone.com Kerstin Puschke NoSQL
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×