• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2010   iska - tim m - nosql iska
 

2010 iska - tim m - nosql iska

on

  • 315 views

Public session given about NoSQL databases

Public session given about NoSQL databases

Statistics

Views

Total Views
315
Views on SlideShare
315
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    2010   iska - tim m - nosql iska 2010 iska - tim m - nosql iska Presentation Transcript

    • 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 isNot 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 1200http://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: achitectuur1980’s: Applicatie Database
    • Reden 4: achitectuur1990’s: Applicatie Applicatie Applicatie Database
    • Reden 4: achitectuur2000’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 tweeConsistency Partitioning
    • CAP theorie AvailabilityRelationaldatabases 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 serviceSOA 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. 07Number of 29 171 2,217jobs (1000s)Avg.completion 634 874 395time (secs)Machine years 217 2,002 11,081usedmap input 3,288 52,254 403,152data (TB)map output 758 6,743 34,774data (TB)reduce output 193 2,970 14,018data (TB)Avg. machines 157 268 394per jobUnique implementationsmap 395 1958 4083reduce 269 1208 2418
    • Column / BigTable
    • Column / BigTable EmpId Lastname Firstname Salary1 Smith Joe 400002 Jones Mary 500003 Johnson Cathy 440001,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 familiesKey Column Column Column ColumnKey ColumnKey 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 columnsKey Column ColumnKey ColumnKey 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 2stappen 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!