NoSQL<br />Lotus Notes nya kläder?<br />GeekmeetVästerås24/3 2011<br />Peppe Bergqvist p@bergqvi.st<br />
Upplägg<br />Presentation<br />NoSQL<br />Bakgrund<br />NoSQL vs RDBMS<br />CouchDB<br />KOD!<br />
Så, vem är Peppe?<br />31 år<br />Pappa till en, och en till på G<br />Nybliven Västeråsare<br />Gillar:<br />Färgen grönt...
Så, vad gör Peppe?<br />Nu: BI-konsult på Acando<br />Då:Webutvecklare (hej Hostit!)IxD-konsult	Kognitionsvetenskap i Link...
NoSQL? Lotus Notes tack!<br />Samlingsbegrepp<br />Dokumentdatabaser (CouchDB, MongoDB)<br />Key/value<br />Lotus Notes<br...
Olika smaker!<br />Google (Bigtable)<br />Används av Google (duh!), Google App Engine<br />Facebook (Cassandra)<br />Nu ho...
Olika smaker!<br />CouchDB<br />Erlang<br />Protokoll: HTTP/REST, JSON<br />Master-master replikering<br />MVCC<br />Versi...
Fler smaker!<br />Cassandra<br />Java<br />Protokoll: Eget<br />Skriv snabbare än läs!<br />Map/reduce<br />Skalar väldigt...
NOSQL vs RDBMS<br />Struktur<br />Modell av verkligheten<br />Relationer!<br />Bra att ha!<br />Reducerar mängden data (2:...
När behövs NoSQL?<br />Mycket data<br />Skalbarhet<br />Osäker datastruktur<br />Exempel<br />Följder av detta?<br />
Vad innebär det för mig?<br />Ändra kod?<br />Modeller? Controller? Views?<br />Vänta på Django-nonrel/Doctrine ODM etc<br />
“Django may be built for the Web, but CouchDB is built of the Web. I’ve never seen software that so completely embraces th...
Historia<br />Skapades av Damien Katz 2005<br />Drivs av Apache Foundation sedan 2008<br />
Grunder i CouchDB<br />Erlang<br />HTTP<br />Javascript<br />JSON<br />Map&reduce<br />Dataexempel<br />Futon<br />
Gettin’ dirty!<br />Sätta upp CouchDB-server<br />Replikering + multi-master<br />Skapa vyer<br />Map&reduce<br />Last-bal...
Avslutning<br />Frågor?<br />Tack!<br />Finns på p@bergqvi.st, twitter: peppelorum<br />Slideshare, oh yes!<br />
Upcoming SlideShare
Loading in …5
×

NoSQL-presentation Geekmeet Västerås 24/3

812 views
721 views

Published on

Peppe Bergqvist:s föredrag om NoSQL på Geekmeet Västerås den 24/3 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
812
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Har inte klockat mig själv
  • TackaHostit för tillfälle att lära mig NoSQL
  • Fråga hur många som använder sig av NoSQL idag?Fråga någon om vad NoSQL betyderLotus Notes? Har legat som inspiration till t ex CouchDB och MongoDBThe term NOSQL (Not Only SQL) was used in 1998 as the name for a lightweight open source relational database that did not expose a SQL interface. Its author, Carlo Strozzi, claims that as the NoSQL movement &quot;departs from the relational model altogether it should therefore have been called more appropriately &apos;NoREL&apos;, or something to that effect&quot;
  • Redis används av Disqus (en av världens största Django-siter btw)Memcache, ofta just cache i ex DB/web
  • Couch: bra för data som ändras ibland, där versionshantering är viktigt (CMS, CRM, multi-site)Redis: bra på snabbt ändrande data med en viss storlek (Aktiepriser, analytics, realtidsdata insamling)Like many relational database engines, CouchDB provides ACID semantics[9]. It does this by implementing a form of Multi-Version Concurrency Control (MVCC) not unlike InnoDB or Oracle. That means CouchDB can handle a high volume of concurrent readers and writers without conflict.
  • MongoDB: för allt som MySQL/PostgreSQL kan, men utan fördefinierade kolumnerCassandra: loggning, när du måste ha Java. Realtidsanalys
  • The document model has some features that encourage scalability. Because all the data needed for most operations is held in a single document, there is no need for joins or multi-object transactions; in fact, these are not directly supported. Omitting joins and transactions eases clustering issues, and both CouchDB and MongoDB support scalable clustering, either through sharding (MongoDB) or consistent hashing (CouchDB).
  • Söka med t ex Lucene
  • - Some backends (e.g., MongoDB) use a string instead of an integer for AutoField. If you want to be on the safe side always write code and urlpatterns that would work with both strings and integers.There is no integrity guarantee. When deleting a model instance the related objects will not be deleted. This had to be done because such a deletion process can take too much time. We might solve this in a later release.- JOINs don&apos;t work (yet). Queries can only be executed on one single model (filters can&apos;t span relationships like user__username=...).- You can&apos;t use transactions. If your particular DB supports a special kind of transaction (e.g., run_in_transaction on App Engine) you have to use the platform-specific functions.- Not all DBs provide strong consistency. If you want your code to be fully portable you should assume an eventual consistency model.
  • Katz drev finansierade utvecklingen själv under drygt två år
  • NoSQL-presentation Geekmeet Västerås 24/3

    1. 1. NoSQL<br />Lotus Notes nya kläder?<br />GeekmeetVästerås24/3 2011<br />Peppe Bergqvist p@bergqvi.st<br />
    2. 2. Upplägg<br />Presentation<br />NoSQL<br />Bakgrund<br />NoSQL vs RDBMS<br />CouchDB<br />KOD!<br />
    3. 3. Så, vem är Peppe?<br />31 år<br />Pappa till en, och en till på G<br />Nybliven Västeråsare<br />Gillar:<br />Färgen grönt<br />Felparkerade bilar<br />Att bli bättre<br />Hittas på http://p.bergqvi.st, mail: p@bergqvi.st,twitter: peppelorum<br />
    4. 4. Så, vad gör Peppe?<br />Nu: BI-konsult på Acando<br />Då:Webutvecklare (hej Hostit!)IxD-konsult Kognitionsvetenskap i Linköping SystemförvaltareIT-bubblan, var på Sprays sista bjudfest<br />
    5. 5. NoSQL? Lotus Notes tack!<br />Samlingsbegrepp<br />Dokumentdatabaser (CouchDB, MongoDB)<br />Key/value<br />Lotus Notes<br />Not SQL?<br />Not only SQL?<br />NoRel?<br />
    6. 6. Olika smaker!<br />Google (Bigtable)<br />Används av Google (duh!), Google App Engine<br />Facebook (Cassandra)<br />Nu hos Twitter, Digg, reddit, Rackspace<br />Amazon (SimpleDB)<br />RavenDB (.net)<br />CouchDB, MongoDB<br />Memcache, Redis, Tokyo Cabinet, Neo4j m fl<br />
    7. 7. Olika smaker!<br />CouchDB<br />Erlang<br />Protokoll: HTTP/REST, JSON<br />Master-master replikering<br />MVCC<br />Versionshantering<br />Konflikthantering<br />Map/reduce<br />JS queries<br />MongoDB<br />C++<br />Protokoll: Eget, BSON<br />Master-slav replikering<br />Inbyggd sharding<br />Kraschsäkerhet kommer i 1.8<br />JS queries<br />
    8. 8. Fler smaker!<br />Cassandra<br />Java<br />Protokoll: Eget<br />Skriv snabbare än läs!<br />Map/reduce<br />Skalar väldigt bra<br />Redis<br />C/C++<br />Protokoll: Telnet-ish<br />Galet snabb!<br />Måste platsa i RAM (ändras iom 2.2 och 2.4)<br />Transaktioner<br />
    9. 9. NOSQL vs RDBMS<br />Struktur<br />Modell av verkligheten<br />Relationer!<br />Bra att ha!<br />Reducerar mängden data (2:a normalformen)<br />Kommer iom Django-nonrel & Doctrine ODM<br />ACID<br />A – atomär<br />C – konsistensbevarande<br />I – isolerade från varandra<br />D – hållbara<br />Skalbarhet<br />RDMS, sharding, partionering (ändra kod)<br />NoSQL, med på köpet!<br />
    10. 10. När behövs NoSQL?<br />Mycket data<br />Skalbarhet<br />Osäker datastruktur<br />Exempel<br />Följder av detta?<br />
    11. 11. Vad innebär det för mig?<br />Ändra kod?<br />Modeller? Controller? Views?<br />Vänta på Django-nonrel/Doctrine ODM etc<br />
    12. 12.
    13. 13. “Django may be built for the Web, but CouchDB is built of the Web. I’ve never seen software that so completely embraces the philosophies behind HTTP. CouchDB makes Django look old-school in the same way that Django makes ASP look outdated.”— Jacob Kaplan-Moss<br />
    14. 14. Historia<br />Skapades av Damien Katz 2005<br />Drivs av Apache Foundation sedan 2008<br />
    15. 15. Grunder i CouchDB<br />Erlang<br />HTTP<br />Javascript<br />JSON<br />Map&reduce<br />Dataexempel<br />Futon<br />
    16. 16. Gettin’ dirty!<br />Sätta upp CouchDB-server<br />Replikering + multi-master<br />Skapa vyer<br />Map&reduce<br />Last-balansering med Nginx<br />
    17. 17. Avslutning<br />Frågor?<br />Tack!<br />Finns på p@bergqvi.st, twitter: peppelorum<br />Slideshare, oh yes!<br />

    ×