• Save
Hybrid lagring sans img  peter lundberg
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Hybrid lagring sans img peter lundberg

on

  • 3,361 views

 

Statistics

Views

Total Views
3,361
Views on SlideShare
505
Embed Views
2,856

Actions

Likes
0
Downloads
0
Comments
0

14 Embeds 2,856

http://www.valtechlabs.se 2640
http://phoenix-valtech.valtech.se 91
http://phoenix.valtech.se 59
https://valtech.se 23
http://phoenix-valtech.azurewebsites.net 14
http://valtech.local 13
http://translate.googleusercontent.com 5
https://phoenix.valtech.se 2
http://cloud.feedly.com 2
http://www.365dailyjournal.com 2
http://valtechlabs.se. 2
http://www.newsblur.com 1
http://texmex-bibimbap.herokuapp.com 1
http://www.feedly.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

Hybrid lagring sans img peter lundberg Presentation Transcript

  • 1. LAGRINGPeter LundbergHUR MÅNGA ANVÄNDE EN BEPRÖVADRELATIONSDATABAS I SITT SENASTEPROJEKT?HanduppräckningHYBRIDLAGRING HUR MÅNGA HAR PROVAT/ÖVERVÄGT ANNANLAGRING I SITT SENASTE PROJEKT?Handuppräckning
  • 2. GOLDEN HAMMER"Om ditt enda verktyg är en hammaretenderar du att se alla problem som en spik."- Abraham MaslowMER SYSTEMMånga databaserLättviktig utvecklingMER DATABig DataSökAnalysSensorerMER DATORERMolnetMinnespriserTillgänglighet
  • 3. MER MODELLERObjektorienteringFunktionella språkWebbAsynkronitetMODELLERINGHur skulle ni representera? Lagra?ProdukterOrder + OrderraderKunderTABELLER? TABELLEROrdern kan lagras så här:Läsa upp alla peters samlat:Använda O/R Mapper?insert into ORDER_DETAIL (id, customer, order_date)values (1001, "peter", new Date());insert into ORDER_ROW (id, order_id, product, amt)values (1001, 1, "Dinkelmjöl, 1 kg", 2);insert into ORDER_ROW (id, order_id, product, amt)values (1001, 2, "Fruktlådan", 1);select * from ORDER_DETAIL where customer="peter";select * from ORDER_ROW as rjoin ORDER_DETAIL as o on r.order_id=o.idwhere o.customer="peter";
  • 4. DOKUMENT?http://martinfowler.com/bliki/AggregateOrientedDatabase.htmlDOKUMENTOrdern kan lagras så här:Läsa upp alla peters samlat:Ingen mappning eller onödig I/O.db.order.save({customer_id: "peter",order_date: new Date(),rows: [{product: "Dinkelmjöl, 1 kg", amt: 2},{product: "Fruktlådan", amt: 1}]})db.order.find({customer_id: "peter"})GRAF? GRAFEROrdern kan lagras så här:och läsa upp allt samlat:order = Node({ order_date: new Date() });row1 = Node({product: "Dinkelmjöl, 1 kg", amt: 2});row2 = Node({product: "Fruktlådan", amt: 1});Rel(order, "detail", row1);Rel(order, "detail", row2);Rel(order, "order_by", peter);peter = graph.get("peter");orders = peter.incomming_rel("order_by");for o in orders:rows = o.outgoing_rel("detail");
  • 5. MÅNGA RELATIONER GRAFER - TRAVERSERINGAndra som har liknande taggar av sina favoritersom inte är kompisar:MATCH me-[:favorite]->myFavs-[:tagged]->tag<-[:tagged]-theirFavs<-[:favorite]-peopleWHERE me.name = "Joe" AND NOT(me=people)RETURN people.name, count(*) as similar_favsHUR MÅNGA KOMMER PROVA/ÖVERVÄGAANNAN MODELLERING I SITT NÄSTA PROJEKT?HanduppräckningMÅNGA ASPEKTER!PrestandaPlaceringFunktionalitetProduktivitet...
  • 6. PRESTANDAKRAVSkrivningar / LäsningarVolymerSvarstiderSkalbarhetTransaktionerKONSISTENSAtomicityConsistencyIsolationDurabilityTILLGÄNGLIGHETBasically AvailableSoft stateEventual consistencyKAN INTE FÅ ALLT!Vad passar behoven?ACID <-> BASECAP 2/3
  • 7. http://blog.nahurst.com/visual-guide-to-nosql-systemsFYSISK LAGINGMinneJournalDiskMulti-diskDISTRIBUTIONInom processEn maskinMulti-maskinMulti-datacenterANSVAREgenMoln plattformMoln tjänst
  • 8. FUNKTIONALITETAggregeringarTraverseringAffärslogikGeospatial...PRODUKTIVITETEnkel administrationSchema förändringNaturlig representationMÅNGA ASPEKTER?NäveVi behöver inte fundera, vi har ju MegaDb.Ett fingerVi borde kanske tänka mer.Fem fingrarVi borde tänka igenom vilka krav varje system ställer.OLIKA VERKTYGNot Only SQL - komplement!No SQL - nya sätt!New SQL - förnyelse!
  • 9. ETABLERAD MARKNAD"Evolving DB Landscape" - Aslett http://451research.com/NYCKEL/VÄRDEMapExtrema mängderMånga små läs/skrivKOLUMNERNästlad och ordnad mapExtrema mängderMassiva skrivningarMap-reduceDOKUMENTMap av större datastrukturerMycket funktionalitetBra prestandaWebb, CRUD
  • 10. SÖKMOTORDokumentSpråk- och synonymkunniga indexGRAFRelationer mellan NoderKomplexa relationerGrym på grafproblem"RELATIONER"TabellerMängdlära, rapporterTransaktionerNEW SQLRelationsdatabaser kan förnyas också...MinnesorienteratDistribueratAlternativ användning av befintliga
  • 11. ÖVRIGAGISObjectstores...ANNATHybriderEvent StoresTransaction/storage/query seperationPRESTANDA / FUNKTIONALITEThttp://www.neo4j.org/learn/nosqlHUR LAGRA ANVÄNDARSESSIONER?Förslag?
  • 12. HUR LAGRA PRODUKTKATALOGEN?Förslag?HUR LAGRA KASSAFLÖDET?Förslag?HUR LAGRA KUNDVAGNEN?Förslag?HUR LAGRA ANALYTICS?Förslag?
  • 13. HUR LAGRA REKOMMENDATIONER?Förslag?HUR LAGRA RAPPORTER?Förslag?KAN INTE ANVÄNDA "ALLT"Användarsessioner -> k/v mem -> Redis?Produktkatalog -> dokument -> Mongodb?Kassaflöde / Finans -> tabeller -> Postgres?Kundvagn -> k/v tillgänglig -> Riak?Analytics -> kolumner mkt skriv -> Cassandra?Analys -> M/R beräkningar -> Hadoop?Rekommendationer -> graf -> Neo4j?Rapporter -> mängd/stat tabeller -> SQLServer?FLER VERKTYG BEHÖVSMer system & modellerProduktivitet, naturlig representationMer data & datorerDistribuerat och prestanda
  • 14. VAR BÖRJA?Skaffa kunskapFråga "Varför relationsdatabas?"Diskutera lagringHUR KOMMA FRAMÅT?Teknikskifte kräver investeringStrategiska lösningarIntensiva datakravEffektiv utvecklingAnpassa arkitektur och arbetsättRÄTT VERKTYG?NäveVi borde alltid använda SQL / relationsdatabas.Ett fingerVi borde hitta en ny databas.Fem fingrarVi borde använda rätt verktyg för problemet.HYBRIDLAGRING"The era of Polyglot Persistence has begun"- Martin Fowler
  • 15. GLÖM INTE NYTTAN!"Om du har många bra verktyg tenderar duatt se alla möjligheter som ett behov."- Peter LundbergTACK!"Med rätt verktyg blir jobbet enkelt."