SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
GETTING COMFORTABLE WITH

   Patrick Heneise, @PatrickHeneise
About.Me/PatrickHeneise
 Information Architect / Consultant


 MSc. in Media Technology, Leiden University, NL

 BSc. in Computer Science in Media, Furtwangen University, DE

 Certified Software Engineer

♥ node.js, , NoSQL

 2 years CouchDB/Couchbase experience
AGENDA
Agenda
Introduction to Couchbase

Introduction to Document Design and Best Practices

Introduction to Views (Map, Reduce)

Introduction to memcached

Use Cases

Q&A
Not on the Agenda

Cluster Design

Deployment

Security

Advanced Document Design

Buckets/vBuckets
Couchbase Server
CouchDB                  memcached

 JSON Documents           In-memory key-value store

 Indexing and Querying    Sub-millisecond latency

 Map/Reduce               Distributed
Couchbase Server


Auto-Sharding (dynamically add new servers)

Management and monitoring

Data replication with auto-failover

Mobile synchronization
WHY NOSQL?
Why NoSQL?


No schema required

Interactive database engineering

Organic growth

Document/Object related
CouchDB
Use Cases


Information storage

Catalogues

Document-based information
How does it look like?
                Key        Value
           {
               “title”: “Barcelona”,        Strings
               “state”: “Catalonia”,
               “tagline”: “Best place to live in Europe”,
               “population”: 1621537,
Arrays         “tags”: [
                                              Numbers
                  “gaudi”, “sagrada familia”, “beach”, “sun”
               ],
               “startups”: {       Objects
 Nested           “itnig”: {
 Objects              “tagline”: “Make it happen”,
                      “tags”: [“web development”, “marketing”]
                  },
                  “desentia”: {
                      “tagline”: “design to go.”,
                      “tags”: [“design”, “mobile”, “commerce”]
                  }
               }
           }
How to interact with data?
city.title                       =>   “Barcelona”

city.tags                        =>   [“gaudi”, “sagrada
                                      familia”, “beach”,
                                      “sun”]



city.tags[4]                     =>   “gaudi”

city.startups.desentia.tagline   =>   “design to go.”
Where’s SELECT?


Map/Reduce Views

  JavaScript or Erlang

Spatial Views
Views

function (doc, meta) {

    if(doc.jsonType == 'city') {

        emit(doc.title, doc.tagline);

    }

}
-   {
    -   total_rows: 3,
    -   rows:
        [
            -


                {
                    -   id: "barcelona",
                    -   key: "Barcelona",
                    -   value: "Best place to live in Europe"
            -   },
            -


                {
                    -   id: "berlin",
                    -   key: "Berlin",
                    -   value: "Beer and Startups"
            -   },
            -


                {
                    -   id: "london",
                    -   key: "London",
                    -   value: "Bloody Rainy"
            -   }
    -   ]
-   }
View all tags
function (doc, meta) {

    if(doc.jsonType == 'city') {

        doc.tags.forEach(function(tag) {

          emit(tag, doc.title);

        });

    }

}
-   {
    -   total_rows: 12,
    -   rows:
        [
         -

             {
                 -   id: "barcelona",
                 -   key: "beach",
                 -   value: "Barcelona"
         -   },
         -

             {
                 -   id: "berlin",
                 -   key: "brandenburg gate",
                 -   value: "Berlin"
         -   },
         -

             {
                 -   id: "berlin",
                 -   key: "cold",
                 -   value: "Berlin"
         -   },
         -

             {
                id: "berlin",
                 -

              - key: "DDR",
              - value: "Berlin"
         -   },...
JOINS
function (doc, meta) {

    if(doc.jsonType == "startup") {

        emit([doc.city, 1], doc.title);

    } else if(doc.jsonType == "city") {

        emit([meta.id, 0], doc.title);

    }

}
["barcelona",0]   barcelona    "Barcelona"
["barcelona",1]   desentia     "desentia"
["barcelona",1]   itnig        "itnig"
["berlin",0]      berlin       "Berlin"
["berlin",1]      soundcloud   "soundcloud"
["london",0]      london       "London"
MAP/REDUCE
function (doc, meta) {

    if(doc.jsonType == "startup") {

        emit(doc.city, 1);

    }

}



_count
group_level 0                                group_level 1

                                     -   {
                                         -   rows:
                                             [
-   {
                                                 -
    -   rows:
                                                     {
        [
                                                         -   key: "barcelona",
            -
                                                         -   value: 2
                {
                                                 -   },
                    -   key: null,               -
                    -   value: 3
                                                     {
            -   }                                        -   key: "berlin",
    -   ]
                                                         -   value: 1
-   }                                            -   }
                                         -   ]
                                     -   }
memcached
Use Cases


Session Store

Always and fast changing data (user activity)

Stock exchange data

Game states
Pure key-value store

 c.set("foo", "bar")
 c.set("foo", "bar", :ttl => 30)
 c["foo"] = "bar"




c.set("foo", 1)
c.incr("foo")                  #=>   2
c.incr("foo", :delta => 2)     #=>   4
c.incr("foo", 4)               #=>   8
c.incr("foo", -1)              #=>   7
Examples

user:patrick:id               => 1

user:patrick:lastPage         => ‘/account’

farmhill:currentPlants        => 5

farmhill:nextAvailablePlant   => ‘Sunflower’

sess:abc:username             => ‘patrick’

global:nextUserId             => 15
DEMO
WHERE CAN I USE
 COUCHBASE?
Use Cases
eCommerce Systems                              Products, Location Information

  Products, Session, Users, Sales, ...   Social Information Systems /
                                         Business Intranets
Q/A Systems
                                               Timesheets, Project information
  Store a document per user with
  questions and answers                  Wiki / CMS / Blog

History Databases                              Articles, Pages, ...

  Ancient Books, letters,                Gaming Systems
  transcriptions, ...
                                               Game states, user data
mCommerce Systems
                                         ...
Additional Information


couchbase.com / @couchbase / @jchris / @janl

couchbasemodels.com / @scalabl3

couchbase.com/docs/couchbase-manual-2.0/

couchbase.com/couchconf-berlin - CouchConf Berlin, Oct 30
Q&A
JOIN US ON MEETUP:
THE-BARCELONA-COUCHBASE-GROUP
THANK YOU!

Más contenido relacionado

Similar a Couchbase presentation - by Patrick Heneise

SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japantristansokol
 
Webinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasWebinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasMongoDB
 
MongoDB Live Hacking
MongoDB Live HackingMongoDB Live Hacking
MongoDB Live HackingTobias Trelle
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"South Tyrol Free Software Conference
 
Erlang for data ops
Erlang for data opsErlang for data ops
Erlang for data opsmnacos
 
d3sparql.js demo at SWAT4LS 2014 in Berlin
d3sparql.js demo at SWAT4LS 2014 in Berlind3sparql.js demo at SWAT4LS 2014 in Berlin
d3sparql.js demo at SWAT4LS 2014 in BerlinToshiaki Katayama
 
Webinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsWebinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsMongoDB
 
Strongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasStrongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasNorberto Leite
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapHoward Lewis Ship
 
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...MongoDB
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardGeorg Sorst
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleMariaDB plc
 
CouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceCouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceleinweber
 
Webinar: General Technical Overview of MongoDB for Dev Teams
Webinar: General Technical Overview of MongoDB for Dev TeamsWebinar: General Technical Overview of MongoDB for Dev Teams
Webinar: General Technical Overview of MongoDB for Dev TeamsMongoDB
 
The Aggregation Framework
The Aggregation FrameworkThe Aggregation Framework
The Aggregation FrameworkMongoDB
 
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...MongoDB
 
PyData Berlin Meetup
PyData Berlin MeetupPyData Berlin Meetup
PyData Berlin MeetupSteffen Wenz
 

Similar a Couchbase presentation - by Patrick Heneise (20)

SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
 
Webinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasWebinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible Schemas
 
MongoDB Live Hacking
MongoDB Live HackingMongoDB Live Hacking
MongoDB Live Hacking
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
 
Erlang for data ops
Erlang for data opsErlang for data ops
Erlang for data ops
 
d3sparql.js demo at SWAT4LS 2014 in Berlin
d3sparql.js demo at SWAT4LS 2014 in Berlind3sparql.js demo at SWAT4LS 2014 in Berlin
d3sparql.js demo at SWAT4LS 2014 in Berlin
 
Webinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation OptionsWebinar: Data Processing and Aggregation Options
Webinar: Data Processing and Aggregation Options
 
Strongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasStrongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible Schemas
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter Bootstrap
 
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboard
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScale
 
CouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceCouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conference
 
Webinar: General Technical Overview of MongoDB for Dev Teams
Webinar: General Technical Overview of MongoDB for Dev TeamsWebinar: General Technical Overview of MongoDB for Dev Teams
Webinar: General Technical Overview of MongoDB for Dev Teams
 
The Aggregation Framework
The Aggregation FrameworkThe Aggregation Framework
The Aggregation Framework
 
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
 
Go之道
Go之道Go之道
Go之道
 
PyData Berlin Meetup
PyData Berlin MeetupPyData Berlin Meetup
PyData Berlin Meetup
 

Más de itnig

Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...
Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...
Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...itnig
 
Web Scraping for Non Programmers
Web Scraping for Non ProgrammersWeb Scraping for Non Programmers
Web Scraping for Non Programmersitnig
 
Hands-On Prototyping Without Code
Hands-On Prototyping Without CodeHands-On Prototyping Without Code
Hands-On Prototyping Without Codeitnig
 
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...itnig
 
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...itnig
 
Data Tools cosystem_for_non_programmers
Data Tools cosystem_for_non_programmersData Tools cosystem_for_non_programmers
Data Tools cosystem_for_non_programmersitnig
 
The Black Magic of Ruby Metaprogramming
The Black Magic of Ruby MetaprogrammingThe Black Magic of Ruby Metaprogramming
The Black Magic of Ruby Metaprogrammingitnig
 
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrow
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of TomorrowFuturology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrow
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrowitnig
 
Visualizing large datasets (BIG DATA itnig friday)
Visualizing large datasets (BIG DATA itnig friday)Visualizing large datasets (BIG DATA itnig friday)
Visualizing large datasets (BIG DATA itnig friday)itnig
 
Make your own Open Source transition with CocoaPods
Make your own Open Source transition with CocoaPodsMake your own Open Source transition with CocoaPods
Make your own Open Source transition with CocoaPodsitnig
 
"El boom del Consumo Colaborativo" by Albert Cañigueral
"El boom del Consumo Colaborativo" by Albert Cañigueral"El boom del Consumo Colaborativo" by Albert Cañigueral
"El boom del Consumo Colaborativo" by Albert Cañigueralitnig
 
Control Your Life - The Startup Way
Control Your Life - The Startup WayControl Your Life - The Startup Way
Control Your Life - The Startup Wayitnig
 
Analítica Ágil - De la Sobrecarga a la Evidencia de los Datos
Analítica Ágil - De la Sobrecarga a la Evidencia de los DatosAnalítica Ágil - De la Sobrecarga a la Evidencia de los Datos
Analítica Ágil - De la Sobrecarga a la Evidencia de los Datositnig
 
Ser público en internet lo es todo.
Ser público en internet lo es todo.Ser público en internet lo es todo.
Ser público en internet lo es todo.itnig
 
Performance marketingonline enterategratis_
Performance marketingonline enterategratis_Performance marketingonline enterategratis_
Performance marketingonline enterategratis_itnig
 
SEO para ecommerce by Alfonso Moure
SEO para ecommerce by Alfonso MoureSEO para ecommerce by Alfonso Moure
SEO para ecommerce by Alfonso Moureitnig
 
Hablar en Público by Marion Chevalier
Hablar en Público by Marion ChevalierHablar en Público by Marion Chevalier
Hablar en Público by Marion Chevalieritnig
 
Collecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsDCollecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsDitnig
 
La burbuja publicitaria
La burbuja publicitariaLa burbuja publicitaria
La burbuja publicitariaitnig
 
Analisis de las empresas del Ibex35
Analisis de las empresas del Ibex35Analisis de las empresas del Ibex35
Analisis de las empresas del Ibex35itnig
 

Más de itnig (20)

Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...
Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...
Presentation of the project "Startups Made in Spain" · On Friday, January 9 a...
 
Web Scraping for Non Programmers
Web Scraping for Non ProgrammersWeb Scraping for Non Programmers
Web Scraping for Non Programmers
 
Hands-On Prototyping Without Code
Hands-On Prototyping Without CodeHands-On Prototyping Without Code
Hands-On Prototyping Without Code
 
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...
Essentials Every Non-Technical Person Need To Know To Build The Best Tech-Tea...
 
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...
Die Another Day: Scaling from 0 to 4 million daily requests as a lone develop...
 
Data Tools cosystem_for_non_programmers
Data Tools cosystem_for_non_programmersData Tools cosystem_for_non_programmers
Data Tools cosystem_for_non_programmers
 
The Black Magic of Ruby Metaprogramming
The Black Magic of Ruby MetaprogrammingThe Black Magic of Ruby Metaprogramming
The Black Magic of Ruby Metaprogramming
 
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrow
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of TomorrowFuturology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrow
Futurology For Entrepreneurs: 7 Ways To Spot The Opportunities Of Tomorrow
 
Visualizing large datasets (BIG DATA itnig friday)
Visualizing large datasets (BIG DATA itnig friday)Visualizing large datasets (BIG DATA itnig friday)
Visualizing large datasets (BIG DATA itnig friday)
 
Make your own Open Source transition with CocoaPods
Make your own Open Source transition with CocoaPodsMake your own Open Source transition with CocoaPods
Make your own Open Source transition with CocoaPods
 
"El boom del Consumo Colaborativo" by Albert Cañigueral
"El boom del Consumo Colaborativo" by Albert Cañigueral"El boom del Consumo Colaborativo" by Albert Cañigueral
"El boom del Consumo Colaborativo" by Albert Cañigueral
 
Control Your Life - The Startup Way
Control Your Life - The Startup WayControl Your Life - The Startup Way
Control Your Life - The Startup Way
 
Analítica Ágil - De la Sobrecarga a la Evidencia de los Datos
Analítica Ágil - De la Sobrecarga a la Evidencia de los DatosAnalítica Ágil - De la Sobrecarga a la Evidencia de los Datos
Analítica Ágil - De la Sobrecarga a la Evidencia de los Datos
 
Ser público en internet lo es todo.
Ser público en internet lo es todo.Ser público en internet lo es todo.
Ser público en internet lo es todo.
 
Performance marketingonline enterategratis_
Performance marketingonline enterategratis_Performance marketingonline enterategratis_
Performance marketingonline enterategratis_
 
SEO para ecommerce by Alfonso Moure
SEO para ecommerce by Alfonso MoureSEO para ecommerce by Alfonso Moure
SEO para ecommerce by Alfonso Moure
 
Hablar en Público by Marion Chevalier
Hablar en Público by Marion ChevalierHablar en Público by Marion Chevalier
Hablar en Público by Marion Chevalier
 
Collecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsDCollecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsD
 
La burbuja publicitaria
La burbuja publicitariaLa burbuja publicitaria
La burbuja publicitaria
 
Analisis de las empresas del Ibex35
Analisis de las empresas del Ibex35Analisis de las empresas del Ibex35
Analisis de las empresas del Ibex35
 

Último

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Último (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Couchbase presentation - by Patrick Heneise

  • 1. GETTING COMFORTABLE WITH Patrick Heneise, @PatrickHeneise
  • 2. About.Me/PatrickHeneise Information Architect / Consultant MSc. in Media Technology, Leiden University, NL BSc. in Computer Science in Media, Furtwangen University, DE Certified Software Engineer ♥ node.js, , NoSQL 2 years CouchDB/Couchbase experience
  • 4. Agenda Introduction to Couchbase Introduction to Document Design and Best Practices Introduction to Views (Map, Reduce) Introduction to memcached Use Cases Q&A
  • 5. Not on the Agenda Cluster Design Deployment Security Advanced Document Design Buckets/vBuckets
  • 6.
  • 7. Couchbase Server CouchDB memcached JSON Documents In-memory key-value store Indexing and Querying Sub-millisecond latency Map/Reduce Distributed
  • 8. Couchbase Server Auto-Sharding (dynamically add new servers) Management and monitoring Data replication with auto-failover Mobile synchronization
  • 10.
  • 11. Why NoSQL? No schema required Interactive database engineering Organic growth Document/Object related
  • 14. How does it look like? Key Value { “title”: “Barcelona”, Strings “state”: “Catalonia”, “tagline”: “Best place to live in Europe”, “population”: 1621537, Arrays “tags”: [ Numbers “gaudi”, “sagrada familia”, “beach”, “sun” ], “startups”: { Objects Nested “itnig”: { Objects “tagline”: “Make it happen”, “tags”: [“web development”, “marketing”] }, “desentia”: { “tagline”: “design to go.”, “tags”: [“design”, “mobile”, “commerce”] } } }
  • 15. How to interact with data? city.title => “Barcelona” city.tags => [“gaudi”, “sagrada familia”, “beach”, “sun”] city.tags[4] => “gaudi” city.startups.desentia.tagline => “design to go.”
  • 16. Where’s SELECT? Map/Reduce Views JavaScript or Erlang Spatial Views
  • 17. Views function (doc, meta) { if(doc.jsonType == 'city') { emit(doc.title, doc.tagline); } }
  • 18. - { - total_rows: 3, - rows: [ - { - id: "barcelona", - key: "Barcelona", - value: "Best place to live in Europe" - }, - { - id: "berlin", - key: "Berlin", - value: "Beer and Startups" - }, - { - id: "london", - key: "London", - value: "Bloody Rainy" - } - ] - }
  • 19. View all tags function (doc, meta) { if(doc.jsonType == 'city') { doc.tags.forEach(function(tag) { emit(tag, doc.title); }); } }
  • 20. - { - total_rows: 12, - rows: [ - { - id: "barcelona", - key: "beach", - value: "Barcelona" - }, - { - id: "berlin", - key: "brandenburg gate", - value: "Berlin" - }, - { - id: "berlin", - key: "cold", - value: "Berlin" - }, - { id: "berlin", - - key: "DDR", - value: "Berlin" - },...
  • 21. JOINS function (doc, meta) { if(doc.jsonType == "startup") { emit([doc.city, 1], doc.title); } else if(doc.jsonType == "city") { emit([meta.id, 0], doc.title); } }
  • 22. ["barcelona",0] barcelona "Barcelona" ["barcelona",1] desentia "desentia" ["barcelona",1] itnig "itnig" ["berlin",0] berlin "Berlin" ["berlin",1] soundcloud "soundcloud" ["london",0] london "London"
  • 23. MAP/REDUCE function (doc, meta) { if(doc.jsonType == "startup") { emit(doc.city, 1); } } _count
  • 24. group_level 0 group_level 1 - { - rows: [ - { - - rows: { [ - key: "barcelona", - - value: 2 { - }, - key: null, - - value: 3 { - } - key: "berlin", - ] - value: 1 - } - } - ] - }
  • 26. Use Cases Session Store Always and fast changing data (user activity) Stock exchange data Game states
  • 27. Pure key-value store c.set("foo", "bar") c.set("foo", "bar", :ttl => 30) c["foo"] = "bar" c.set("foo", 1) c.incr("foo") #=> 2 c.incr("foo", :delta => 2) #=> 4 c.incr("foo", 4) #=> 8 c.incr("foo", -1) #=> 7
  • 28. Examples user:patrick:id => 1 user:patrick:lastPage => ‘/account’ farmhill:currentPlants => 5 farmhill:nextAvailablePlant => ‘Sunflower’ sess:abc:username => ‘patrick’ global:nextUserId => 15
  • 29. DEMO
  • 30.
  • 31. WHERE CAN I USE COUCHBASE?
  • 32. Use Cases eCommerce Systems Products, Location Information Products, Session, Users, Sales, ... Social Information Systems / Business Intranets Q/A Systems Timesheets, Project information Store a document per user with questions and answers Wiki / CMS / Blog History Databases Articles, Pages, ... Ancient Books, letters, Gaming Systems transcriptions, ... Game states, user data mCommerce Systems ...
  • 33. Additional Information couchbase.com / @couchbase / @jchris / @janl couchbasemodels.com / @scalabl3 couchbase.com/docs/couchbase-manual-2.0/ couchbase.com/couchconf-berlin - CouchConf Berlin, Oct 30
  • 34. Q&A
  • 35. JOIN US ON MEETUP: THE-BARCELONA-COUCHBASE-GROUP