SlideShare a Scribd company logo
1 of 48
NoSQL ISKA

 Tim Mahy
NoSQL ISKA
•   Wat is het
•   Waarom is het er
•   Welke vormen zijn er
•   Voorbeeld (RavenDb)
•   Toekomst
Wat ?
Wat het NIET is
•   Een sales term (nog niet)
•   Elke database die maar niet relationeel is
•   Een haat beweging tegen SQL databases
•   Een idee dat in de kinderschoenen staat
Wat het WEL is




Not Only SQL
Waarom?
Reden 1: zoveel data
                                 ExaBytes per jaar
    2010                                                   988

    2009                                     623

    2008                         397
                                                                        Exabytes
    2007                 253

    2006           161

           0       200         400     600         800   1000    1200


http://www.internetnews.com/stats/article.php/3663641
Reden 2: zoveel snelheid nodig
•   Keten schakelingen
•   Near realtime
•   24 / 24
•   web 2.0  web 3.0
•   Alle data is interconnected
Reden 3: Complexiteit van change
• Semi gestructureerd wordt steeds belangrijker
• Meer data per entiteit
• Continue changes op werkelijke entiteiten
Reden 4: achitectuur
1980’s:

                 Applicatie




                 Database
Reden 4: achitectuur
1990’s:

    Applicatie           Applicatie     Applicatie




                           Database
Reden 4: achitectuur
2000’s:

    Service             Service       Service




    Database           Database       Database
Reden 4: achitectuur
> 2000:
                Queue


                                      Service
    Service              Service




    Database            Database      Database
Reden 4: architectuur
• Binnenkort?
  – Command Query Responsibility Seggregation
  – Business Event Sourcing
Waarom nu ?
•   Reden 1: schaal
•   Reden 2: connectivity
•   Reden 3: semi structured data
•   Reden 4: achitectuur
CAP theorie

                 Availability




                Kies er twee


Consistency                     Partitioning
CAP theorie

                  Availability


Relational
databases

                 Kies er twee


 Consistency                     Partitioning
RDBMS problemen  patches
             • Transacties  nolock
             • Structured  Xml
               fields
             • Size  filegroup
               partitioning
             • Performance 
               replication and
               master slave
Waarom niet db type per service
SOA geeft vrijheid

     Service         Service     Service




     RDBMS           GraphDb   Document Db
Andere data structuren
•   Key-Value
•   Graph
•   Column / BigTable
•   Document

•   Geo
•   Object
•   Xml
•   Array
•   Memory
•   Disk
•   Grid (P2P)
Key-Value
Key-Value
• Consistent hashing of key
• Distributed
• Alles gebeurd op basis
  v/d key
• Doet denken aan
  een persisted cache
Key-Value
• Query / put mogelijkheden:
    – map / reduce
    – key

•   Azure table storage
•   Amazon SimpleDb
•   MemcacheDB
•   Tokyo Cabinet
Map / Reduce?
Wat is die map / reduce?
• 2 functies (voorbeeld)
      Map:
  from order in docs.Orders
  from line in order.Lines
  select new{ line.Album, line.Quantity }

      Reduce
  from result in results
  group result by result.Album into g
  select new{ Album = g.Key, Quantity =
  g.Sum(x=>x.Quantity) }
Wat is dan eigenlijk het nut van M/R?
Some old Google stats
              Aug. '04   Mar. '06   Sep. '07

Number of
              29         171        2,217
jobs (1000s)
Avg.
completion    634        874        395
time (secs)
Machine years
              217        2,002      11,081
used
map input
              3,288      52,254     403,152
data (TB)
map output
              758        6,743      34,774
data (TB)
reduce output
              193        2,970      14,018
data (TB)
Avg. machines
              157        268        394
per job
Unique implementations
map           395        1958       4083
reduce        269        1208       2418
Column / BigTable
Column / BigTable
    EmpId         Lastname          Firstname           Salary
1             Smith           Joe               40000
2             Jones           Mary              50000
3             Johnson         Cathy             44000



1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;
Column / BigTable
• DHT
  – Gebaseerd op Dynamo
  – Column: { name , version , value, timestamp} 
    multi dimensionaal
  – Schema less
  – Column Families  Consistency scope
  – Super columns
Column families

Key    Column        Column      Column   Column



Key    Column



Key     Column        Column   Column




      Voorbeeld:
      • Groen = Persoon
      • Rood = Studies
Column families
{
    "mccv":{
       "Users":{
          "emailAddress":{"name":"emailAddress", "value":"foo@bar.com"},
          "webSite":{"name":"webSite", "value":"http://bar.com"}
       },
       "Stats":{
          "visits":{"name":"visits", "value":"243"}
       }
    },
    "user2":{
       "Users":{
          "emailAddress":{"name":"emailAddress", "value":"user2@bar.com"},
          "twitter":{"name":"twitter", "value":"user2"}
       }
    }
}
Super columns

Key   Column   Column



Key   Column



Key   Column   Column   Column
Super columns
{
    "mccv": {
      "Tags": {
        "cassandra": {
          "incubator": {"incubator": "http://incubator.apache.org/cassandra/"},
          "jira": {"jira": "http://issues.apache.org/jira/browse/CASSANDRA"}
        },
        "thrift": {
          "jira": {"jira": "http://issues.apache.org/jira/browse/THRIFT"}
        }
      }
    }
}
Column / BigTable
• Query: map / reduce
• Voordelen:
    – Sneller te aggregeren voor queries
    – Geen seeks


•   Cassandra
•   Hypertable
•   Google Tables (gemakkelijk/gratis)
•   Hadoop
Graph
Graph
• Voor complexe relaties
• Populair op social websites
      moeder
                  werkt samen met


         zuster
                   vader


        vader
Graph
Document based
Document based
• Full document storage
Document based
• Query:
  – Map / Reduce
  – Indexes
• Formaat is meestal JSON of Binary JSON
• Totaal andere manier van moduleren
• Demo:
  – RavenDb
• Popular:
  – MongoDb, Solr, CouchDb, ….
RavenDb
Nadelen? Actually NoSQL Sucks!
• Query is niet op basis van standaarden
• Query is meestal via map/reduce in een
  functionele programmeertaal
• Basis standaard tooling ontbreekt meestal
• Slechts bruikbaar in 10% v/d cases (scale, …)
• Migraties
• Bijna nooit authenticatie / authorisatie voorzien
• Datastorage in eigen formaten
• Enkel RavenDb zit op de MS stack
1 stap terug om 2
stappen vooruit te
      zetten
Voordelen
• Bijna allemaal via REST/http API
  (authenticatie/authorisatie zelf te regelen)
• Zijn beter voor systemen waarbij het
  relationele model niet goed past
• Is meestal proven technologie (Cassandra 
  Facebook, etc…)
Use the right tool for the
       right job!
2010   iska - tim m - nosql iska

More Related Content

Similar to 2010 iska - tim m - nosql iska

Gegevensbanken En Gebruikers
Gegevensbanken En GebruikersGegevensbanken En Gebruikers
Gegevensbanken En GebruikersErik Duval
 
Flexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenFlexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenMarco Gralike
 
metadata & open source #osgeonl dag 2012
metadata & open source #osgeonl dag 2012 metadata & open source #osgeonl dag 2012
metadata & open source #osgeonl dag 2012 pvangenuchten
 
Metadata oplossingen
Metadata oplossingenMetadata oplossingen
Metadata oplossingengrus001
 
2019 diy migration webinar gs nl
2019 diy migration webinar gs nl2019 diy migration webinar gs nl
2019 diy migration webinar gs nlEDB
 
Meetup DB testing met SoapUI en Robot Framework.pdf
Meetup DB testing met SoapUI en Robot Framework.pdfMeetup DB testing met SoapUI en Robot Framework.pdf
Meetup DB testing met SoapUI en Robot Framework.pdfchristiantester
 
Why Drupal Is So Slow
Why Drupal Is So SlowWhy Drupal Is So Slow
Why Drupal Is So SlowBert Boerland
 
Projectpaas drupaljam 2013 rotterdam
Projectpaas drupaljam 2013 rotterdamProjectpaas drupaljam 2013 rotterdam
Projectpaas drupaljam 2013 rotterdamBert Boerland
 
Willem de Kooning - dataviz - week 2
Willem de Kooning - dataviz -  week 2Willem de Kooning - dataviz -  week 2
Willem de Kooning - dataviz - week 2Alper Çugun
 
Opdracht 1 Het big data landschap
Opdracht 1 Het big data landschap Opdracht 1 Het big data landschap
Opdracht 1 Het big data landschap Jurjen Helmus
 
Nord Toelichting Techniek
Nord Toelichting TechniekNord Toelichting Techniek
Nord Toelichting Techniektjercus
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webBart Hanssens
 
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDeltares
 
Registreren en publiceren volgens CEST richtlijnen
Registreren en publiceren volgens CEST richtlijnenRegistreren en publiceren volgens CEST richtlijnen
Registreren en publiceren volgens CEST richtlijnenPACKED vzw
 
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachNLJUG
 

Similar to 2010 iska - tim m - nosql iska (20)

Gegevensbanken En Gebruikers
Gegevensbanken En GebruikersGegevensbanken En Gebruikers
Gegevensbanken En Gebruikers
 
Flexibiliteit, Agility & Snel Schakelen - SHIFT13 congres
Flexibiliteit, Agility & Snel Schakelen - SHIFT13 congresFlexibiliteit, Agility & Snel Schakelen - SHIFT13 congres
Flexibiliteit, Agility & Snel Schakelen - SHIFT13 congres
 
Flexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenFlexibiliteit & Snel Schakelen
Flexibiliteit & Snel Schakelen
 
metadata & open source #osgeonl dag 2012
metadata & open source #osgeonl dag 2012 metadata & open source #osgeonl dag 2012
metadata & open source #osgeonl dag 2012
 
Office 365
Office 365Office 365
Office 365
 
Metadata oplossingen
Metadata oplossingenMetadata oplossingen
Metadata oplossingen
 
2019 diy migration webinar gs nl
2019 diy migration webinar gs nl2019 diy migration webinar gs nl
2019 diy migration webinar gs nl
 
Meetup DB testing met SoapUI en Robot Framework.pdf
Meetup DB testing met SoapUI en Robot Framework.pdfMeetup DB testing met SoapUI en Robot Framework.pdf
Meetup DB testing met SoapUI en Robot Framework.pdf
 
Why Drupal Is So Slow
Why Drupal Is So SlowWhy Drupal Is So Slow
Why Drupal Is So Slow
 
Projectpaas drupaljam 2013 rotterdam
Projectpaas drupaljam 2013 rotterdamProjectpaas drupaljam 2013 rotterdam
Projectpaas drupaljam 2013 rotterdam
 
Willem de Kooning - dataviz - week 2
Willem de Kooning - dataviz -  week 2Willem de Kooning - dataviz -  week 2
Willem de Kooning - dataviz - week 2
 
Opdracht 1 Het big data landschap
Opdracht 1 Het big data landschap Opdracht 1 Het big data landschap
Opdracht 1 Het big data landschap
 
Nord Toelichting Techniek
Nord Toelichting TechniekNord Toelichting Techniek
Nord Toelichting Techniek
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic web
 
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
 
Registreren en publiceren volgens CEST richtlijnen
Registreren en publiceren volgens CEST richtlijnenRegistreren en publiceren volgens CEST richtlijnen
Registreren en publiceren volgens CEST richtlijnen
 
Webservices
WebservicesWebservices
Webservices
 
Het geheugen van de architect: een reality check
Het geheugen van de architect: een reality checkHet geheugen van de architect: een reality check
Het geheugen van de architect: een reality check
 
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
 
Oracle database security voor het voetlicht
Oracle database security voor het voetlichtOracle database security voor het voetlicht
Oracle database security voor het voetlicht
 

More from Tim Mahy

2013 training - tim m - cross cutting concerns
2013   training - tim m - cross cutting concerns2013   training - tim m - cross cutting concerns
2013 training - tim m - cross cutting concernsTim Mahy
 
2009 seminar - tim m - vs 2010 developer edition
2009   seminar - tim m - vs 2010 developer edition2009   seminar - tim m - vs 2010 developer edition
2009 seminar - tim m - vs 2010 developer editionTim Mahy
 
2009 training - tim m - object oriented programming
2009   training - tim m - object oriented programming2009   training - tim m - object oriented programming
2009 training - tim m - object oriented programmingTim Mahy
 
2010 iska - tim m - functioneel programmeren in c-sharp
2010   iska - tim m - functioneel programmeren in c-sharp2010   iska - tim m - functioneel programmeren in c-sharp
2010 iska - tim m - functioneel programmeren in c-sharpTim Mahy
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven designTim Mahy
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010Tim Mahy
 
communityday 2012 - cqrs
communityday 2012 - cqrscommunityday 2012 - cqrs
communityday 2012 - cqrsTim Mahy
 
CQRS & Queue unlimited
CQRS & Queue unlimitedCQRS & Queue unlimited
CQRS & Queue unlimitedTim Mahy
 

More from Tim Mahy (8)

2013 training - tim m - cross cutting concerns
2013   training - tim m - cross cutting concerns2013   training - tim m - cross cutting concerns
2013 training - tim m - cross cutting concerns
 
2009 seminar - tim m - vs 2010 developer edition
2009   seminar - tim m - vs 2010 developer edition2009   seminar - tim m - vs 2010 developer edition
2009 seminar - tim m - vs 2010 developer edition
 
2009 training - tim m - object oriented programming
2009   training - tim m - object oriented programming2009   training - tim m - object oriented programming
2009 training - tim m - object oriented programming
 
2010 iska - tim m - functioneel programmeren in c-sharp
2010   iska - tim m - functioneel programmeren in c-sharp2010   iska - tim m - functioneel programmeren in c-sharp
2010 iska - tim m - functioneel programmeren in c-sharp
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven design
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010
 
communityday 2012 - cqrs
communityday 2012 - cqrscommunityday 2012 - cqrs
communityday 2012 - cqrs
 
CQRS & Queue unlimited
CQRS & Queue unlimitedCQRS & Queue unlimited
CQRS & Queue unlimited
 

2010 iska - tim m - nosql iska

  • 2. NoSQL ISKA • Wat is het • Waarom is het er • Welke vormen zijn er • Voorbeeld (RavenDb) • Toekomst
  • 4. Wat het NIET is • Een sales term (nog niet) • Elke database die maar niet relationeel is • Een haat beweging tegen SQL databases • Een idee dat in de kinderschoenen staat
  • 5. Wat het WEL is Not Only SQL
  • 7. Reden 1: zoveel data ExaBytes per jaar 2010 988 2009 623 2008 397 Exabytes 2007 253 2006 161 0 200 400 600 800 1000 1200 http://www.internetnews.com/stats/article.php/3663641
  • 8. Reden 2: zoveel snelheid nodig • Keten schakelingen • Near realtime • 24 / 24 • web 2.0  web 3.0 • Alle data is interconnected
  • 9. Reden 3: Complexiteit van change • Semi gestructureerd wordt steeds belangrijker • Meer data per entiteit • Continue changes op werkelijke entiteiten
  • 10. Reden 4: achitectuur 1980’s: Applicatie Database
  • 11. Reden 4: achitectuur 1990’s: Applicatie Applicatie Applicatie Database
  • 12. Reden 4: achitectuur 2000’s: Service Service Service Database Database Database
  • 13. Reden 4: achitectuur > 2000: Queue Service Service Service Database Database Database
  • 14. Reden 4: architectuur • Binnenkort? – Command Query Responsibility Seggregation – Business Event Sourcing
  • 15. Waarom nu ? • Reden 1: schaal • Reden 2: connectivity • Reden 3: semi structured data • Reden 4: achitectuur
  • 16. CAP theorie Availability Kies er twee Consistency Partitioning
  • 17. CAP theorie Availability Relational databases Kies er twee Consistency Partitioning
  • 18.
  • 19. RDBMS problemen  patches • Transacties  nolock • Structured  Xml fields • Size  filegroup partitioning • Performance  replication and master slave
  • 20. Waarom niet db type per service SOA geeft vrijheid Service Service Service RDBMS GraphDb Document Db
  • 21. Andere data structuren • Key-Value • Graph • Column / BigTable • Document • Geo • Object • Xml • Array • Memory • Disk • Grid (P2P)
  • 23. Key-Value • Consistent hashing of key • Distributed • Alles gebeurd op basis v/d key • Doet denken aan een persisted cache
  • 24. Key-Value • Query / put mogelijkheden: – map / reduce – key • Azure table storage • Amazon SimpleDb • MemcacheDB • Tokyo Cabinet
  • 26. Wat is die map / reduce? • 2 functies (voorbeeld) Map: from order in docs.Orders from line in order.Lines select new{ line.Album, line.Quantity } Reduce from result in results group result by result.Album into g select new{ Album = g.Key, Quantity = g.Sum(x=>x.Quantity) }
  • 27. Wat is dan eigenlijk het nut van M/R?
  • 28. Some old Google stats Aug. '04 Mar. '06 Sep. '07 Number of 29 171 2,217 jobs (1000s) Avg. completion 634 874 395 time (secs) Machine years 217 2,002 11,081 used map input 3,288 52,254 403,152 data (TB) map output 758 6,743 34,774 data (TB) reduce output 193 2,970 14,018 data (TB) Avg. machines 157 268 394 per job Unique implementations map 395 1958 4083 reduce 269 1208 2418
  • 30. Column / BigTable EmpId Lastname Firstname Salary 1 Smith Joe 40000 2 Jones Mary 50000 3 Johnson Cathy 44000 1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;
  • 31. Column / BigTable • DHT – Gebaseerd op Dynamo – Column: { name , version , value, timestamp}  multi dimensionaal – Schema less – Column Families  Consistency scope – Super columns
  • 32. Column families Key Column Column Column Column Key Column Key Column Column Column Voorbeeld: • Groen = Persoon • Rood = Studies
  • 33. Column families { "mccv":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"foo@bar.com"}, "webSite":{"name":"webSite", "value":"http://bar.com"} }, "Stats":{ "visits":{"name":"visits", "value":"243"} } }, "user2":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"user2@bar.com"}, "twitter":{"name":"twitter", "value":"user2"} } } }
  • 34. Super columns Key Column Column Key Column Key Column Column Column
  • 35. Super columns { "mccv": { "Tags": { "cassandra": { "incubator": {"incubator": "http://incubator.apache.org/cassandra/"}, "jira": {"jira": "http://issues.apache.org/jira/browse/CASSANDRA"} }, "thrift": { "jira": {"jira": "http://issues.apache.org/jira/browse/THRIFT"} } } } }
  • 36. Column / BigTable • Query: map / reduce • Voordelen: – Sneller te aggregeren voor queries – Geen seeks • Cassandra • Hypertable • Google Tables (gemakkelijk/gratis) • Hadoop
  • 37. Graph
  • 38. Graph • Voor complexe relaties • Populair op social websites moeder werkt samen met zuster vader vader
  • 39. Graph
  • 41. Document based • Full document storage
  • 42. Document based • Query: – Map / Reduce – Indexes • Formaat is meestal JSON of Binary JSON • Totaal andere manier van moduleren • Demo: – RavenDb • Popular: – MongoDb, Solr, CouchDb, ….
  • 44. Nadelen? Actually NoSQL Sucks! • Query is niet op basis van standaarden • Query is meestal via map/reduce in een functionele programmeertaal • Basis standaard tooling ontbreekt meestal • Slechts bruikbaar in 10% v/d cases (scale, …) • Migraties • Bijna nooit authenticatie / authorisatie voorzien • Datastorage in eigen formaten • Enkel RavenDb zit op de MS stack
  • 45. 1 stap terug om 2 stappen vooruit te zetten
  • 46. Voordelen • Bijna allemaal via REST/http API (authenticatie/authorisatie zelf te regelen) • Zijn beter voor systemen waarbij het relationele model niet goed past • Is meestal proven technologie (Cassandra  Facebook, etc…)
  • 47. Use the right tool for the right job!