SlideShare ist ein Scribd-Unternehmen logo
1 von 24
BBS tjueprosent – noSql i ny arkivløsning Bjørn Nordlund og Hans-Petter Vadseth
Hvorfor? Tekst endres i Topp- og Bunntekst 10/7/2009 s.2
Skjemafri database Tekst endres i Topp- og Bunntekst 10/7/2009 s.3
En databasetype til alle formål Tekst endres i Topp- og Bunntekst 10/7/2009 s.4
Skalering Tekst endres i Topp- og Bunntekst 10/7/2009 s.5
Vi har muligheten BBS 20% Tekst endres i Topp- og Bunntekst 10/7/2009 s.6
Vi ønsket oss en databaseløsning hvor vi enkelt kunne lagre det vi ville og lett finne det igjen.    Vi ønsket en løsning som var enkel å sette opp, som kunne kjøre hvor som helst   Vi ønsket en dynamisk løsning som kunne vokse med applikasjonen, endres og skaleres opp eller ned etter behov.
Litt teori Tekst endres i Topp- og Bunntekst 10/7/2009 s.2
Scale and Performance  s.9
Read slaves, caching, Partitioning, Shared everything and shared nothing Tekst endres i Topp- og Bunntekst 10/7/2009 s.11
Scaling vs functionality, performance and complexity Tekst endres i Topp- og Bunntekst 10/7/2009 s.22
SQL vs noSQL noSQL Ikke noe skjema, data som hører sammen lagres sammen. Ikke normalisert, ikke integritet. Referanser mellom data.   key/value, (tables, collections)   Spørringer, serverside funksjoner, map reduce finnes hos noen Indexer og profilering finnes hos noen   BASE Skalering er noe enklere - shared nothing    s.21 SQL Fast skjema, normaliserte data, integritet. Primærnøkler, fremmednøkler og indexer Transaksjoner   Spørringer og joins    Profiling (explain)     ACID Skalere er vanskelig - shared everything?
Skjemafri database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],s.26 Ett naturlig steg etter å ha flyttet logikk ut av databasen?
Key/value Project Voldemort Tokyo Cabinet Oracle BerkleyDB Tekst endres i Topp- og Bunntekst 10/7/2009 s.27 Operasjoner: Get (key) Put(key, value) Remove (key) Key Value hpv Navn:Hans-Petter, Email:hpv@bbs.no bjn Navn:Bjørn, Email:bjn@bbs.no, Tlf:22890000 Status:i pappaperm
Kolonnebaserte Tekst endres i Topp- og Bunntekst 10/7/2009 s.28 Hbase Cassandra Hypertable Operasjoner: Get (key, column:identifier) Put(key, column:identifier, value) Remove (key) Map/reduse for mer avanserte spørringer Key(rad) Kolonne:Value hpv Personalia:{    navn:Hans-Petter }, Kontakt:{    mail:hpv@bbs.no } bjn Personalia:{ navn:Bjørn }, Kontakt:{ mail:bjn@bbs.no Tlf:22890000 }
Dokumentorienterte Tekst endres i Topp- og Bunntekst 10/7/2009 s.29 Couchdb MongoDB Lotus Notes Operasjoner: get(name=value) Put(json) Remove (name=value) Find(><!= …) Count() Sum() .. .. Dokument {    id:hpv    navn:Hans-Petter    Kontaktinfo:{       mail:hpv@bbs.no    } } {    navn:Bjørn,    id:bjn    Kontaktinfo:{      mail:bjn@bbs.no      Tlf:22890000    } }
Noen grunn til ikke å bruke dette?  
Er det bra nok? ,[object Object],[object Object]
  ,[object Object],[object Object],[object Object]
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
  ,[object Object]
Applikasjonen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ny kul teknologi (I skyen:) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DEMO http://mongoarchive.heroku.com Tekst endres i Topp- og Bunntekst 10/7/2009 s.30

Weitere ähnliche Inhalte

Ähnlich wie Bbs Tjueprosent Nosql

Et datadrevet nav uninettdagene 20191112
Et datadrevet nav   uninettdagene 20191112Et datadrevet nav   uninettdagene 20191112
Et datadrevet nav uninettdagene 20191112Tommy Jocumsen
 
Oslo Software Architecture: Skatteetatens målarkitektur og PoC
Oslo Software Architecture: Skatteetatens målarkitektur og PoCOslo Software Architecture: Skatteetatens målarkitektur og PoC
Oslo Software Architecture: Skatteetatens målarkitektur og PoCTormod Varhaugvik
 
Intranett integrasjon for departemente - lars marius garshol
Intranett integrasjon for departemente - lars marius garsholIntranett integrasjon for departemente - lars marius garshol
Intranett integrasjon for departemente - lars marius garsholBouvet ASA
 
Revolusjon kamerater! Softwaredesign i "skyen"
Revolusjon kamerater! Softwaredesign i "skyen"Revolusjon kamerater! Softwaredesign i "skyen"
Revolusjon kamerater! Softwaredesign i "skyen"Tormod Varhaugvik
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Analysen 3-2015_Data Lake vs Datavarehus
Analysen 3-2015_Data Lake vs DatavarehusAnalysen 3-2015_Data Lake vs Datavarehus
Analysen 3-2015_Data Lake vs DatavarehusvindWRemme
 
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iksMellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iksAtle Frydenlund
 
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimHva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimEspen Johanson
 
Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Geodata AS
 
Kinderegget; enklere, billigere og mye raskere
Kinderegget; enklere, billigere og mye raskereKinderegget; enklere, billigere og mye raskere
Kinderegget; enklere, billigere og mye raskereTormod Varhaugvik
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterThor Henning Hetland
 
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?Steinar Skagemo
 
Koblingen objekter mot database
Koblingen objekter mot databaseKoblingen objekter mot database
Koblingen objekter mot databaseRune Sundling
 
Introduksjon til NServiceBus
Introduksjon til NServiceBusIntroduksjon til NServiceBus
Introduksjon til NServiceBusSverre Hundeide
 
Analysen 1-2015-Hadoop
Analysen 1-2015-HadoopAnalysen 1-2015-Hadoop
Analysen 1-2015-HadoopvindWRemme
 
BrilliantOffice
BrilliantOfficeBrilliantOffice
BrilliantOfficeSolv AS
 
Objektorientering og design av kode
Objektorientering og design av kodeObjektorientering og design av kode
Objektorientering og design av kodeRune Sundling
 
Forvaltning av raster
Forvaltning av rasterForvaltning av raster
Forvaltning av rasterGeodata AS
 

Ähnlich wie Bbs Tjueprosent Nosql (20)

Et datadrevet nav uninettdagene 20191112
Et datadrevet nav   uninettdagene 20191112Et datadrevet nav   uninettdagene 20191112
Et datadrevet nav uninettdagene 20191112
 
Oslo Software Architecture: Skatteetatens målarkitektur og PoC
Oslo Software Architecture: Skatteetatens målarkitektur og PoCOslo Software Architecture: Skatteetatens målarkitektur og PoC
Oslo Software Architecture: Skatteetatens målarkitektur og PoC
 
Intranett integrasjon for departemente - lars marius garshol
Intranett integrasjon for departemente - lars marius garsholIntranett integrasjon for departemente - lars marius garshol
Intranett integrasjon for departemente - lars marius garshol
 
Revolusjon kamerater! Softwaredesign i "skyen"
Revolusjon kamerater! Softwaredesign i "skyen"Revolusjon kamerater! Softwaredesign i "skyen"
Revolusjon kamerater! Softwaredesign i "skyen"
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Analysen 3-2015_Data Lake vs Datavarehus
Analysen 3-2015_Data Lake vs DatavarehusAnalysen 3-2015_Data Lake vs Datavarehus
Analysen 3-2015_Data Lake vs Datavarehus
 
Ta styringen!
Ta styringen!Ta styringen!
Ta styringen!
 
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iksMellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
 
Fra silo til micro services
Fra silo til micro servicesFra silo til micro services
Fra silo til micro services
 
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, TrondheimHva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
Hva Og Hvorfor Arkitektur - 11. mai 2010, Trondheim
 
Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014
 
Kinderegget; enklere, billigere og mye raskere
Kinderegget; enklere, billigere og mye raskereKinderegget; enklere, billigere og mye raskere
Kinderegget; enklere, billigere og mye raskere
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?
Integrasjonsdagene 2014 - Lenkede data - automagisk integrasjon?
 
Koblingen objekter mot database
Koblingen objekter mot databaseKoblingen objekter mot database
Koblingen objekter mot database
 
Introduksjon til NServiceBus
Introduksjon til NServiceBusIntroduksjon til NServiceBus
Introduksjon til NServiceBus
 
Analysen 1-2015-Hadoop
Analysen 1-2015-HadoopAnalysen 1-2015-Hadoop
Analysen 1-2015-Hadoop
 
BrilliantOffice
BrilliantOfficeBrilliantOffice
BrilliantOffice
 
Objektorientering og design av kode
Objektorientering og design av kodeObjektorientering og design av kode
Objektorientering og design av kode
 
Forvaltning av raster
Forvaltning av rasterForvaltning av raster
Forvaltning av raster
 

Bbs Tjueprosent Nosql

  • 1. BBS tjueprosent – noSql i ny arkivløsning Bjørn Nordlund og Hans-Petter Vadseth
  • 2. Hvorfor? Tekst endres i Topp- og Bunntekst 10/7/2009 s.2
  • 3. Skjemafri database Tekst endres i Topp- og Bunntekst 10/7/2009 s.3
  • 4. En databasetype til alle formål Tekst endres i Topp- og Bunntekst 10/7/2009 s.4
  • 5. Skalering Tekst endres i Topp- og Bunntekst 10/7/2009 s.5
  • 6. Vi har muligheten BBS 20% Tekst endres i Topp- og Bunntekst 10/7/2009 s.6
  • 7. Vi ønsket oss en databaseløsning hvor vi enkelt kunne lagre det vi ville og lett finne det igjen.    Vi ønsket en løsning som var enkel å sette opp, som kunne kjøre hvor som helst   Vi ønsket en dynamisk løsning som kunne vokse med applikasjonen, endres og skaleres opp eller ned etter behov.
  • 8. Litt teori Tekst endres i Topp- og Bunntekst 10/7/2009 s.2
  • 10. Read slaves, caching, Partitioning, Shared everything and shared nothing Tekst endres i Topp- og Bunntekst 10/7/2009 s.11
  • 11. Scaling vs functionality, performance and complexity Tekst endres i Topp- og Bunntekst 10/7/2009 s.22
  • 12. SQL vs noSQL noSQL Ikke noe skjema, data som hører sammen lagres sammen. Ikke normalisert, ikke integritet. Referanser mellom data.   key/value, (tables, collections)   Spørringer, serverside funksjoner, map reduce finnes hos noen Indexer og profilering finnes hos noen   BASE Skalering er noe enklere - shared nothing   s.21 SQL Fast skjema, normaliserte data, integritet. Primærnøkler, fremmednøkler og indexer Transaksjoner   Spørringer og joins   Profiling (explain)     ACID Skalere er vanskelig - shared everything?
  • 13.
  • 14. Key/value Project Voldemort Tokyo Cabinet Oracle BerkleyDB Tekst endres i Topp- og Bunntekst 10/7/2009 s.27 Operasjoner: Get (key) Put(key, value) Remove (key) Key Value hpv Navn:Hans-Petter, Email:hpv@bbs.no bjn Navn:Bjørn, Email:bjn@bbs.no, Tlf:22890000 Status:i pappaperm
  • 15. Kolonnebaserte Tekst endres i Topp- og Bunntekst 10/7/2009 s.28 Hbase Cassandra Hypertable Operasjoner: Get (key, column:identifier) Put(key, column:identifier, value) Remove (key) Map/reduse for mer avanserte spørringer Key(rad) Kolonne:Value hpv Personalia:{   navn:Hans-Petter }, Kontakt:{   mail:hpv@bbs.no } bjn Personalia:{ navn:Bjørn }, Kontakt:{ mail:bjn@bbs.no Tlf:22890000 }
  • 16. Dokumentorienterte Tekst endres i Topp- og Bunntekst 10/7/2009 s.29 Couchdb MongoDB Lotus Notes Operasjoner: get(name=value) Put(json) Remove (name=value) Find(><!= …) Count() Sum() .. .. Dokument {   id:hpv   navn:Hans-Petter   Kontaktinfo:{      mail:hpv@bbs.no   } } {   navn:Bjørn,   id:bjn   Kontaktinfo:{     mail:bjn@bbs.no     Tlf:22890000   } }
  • 17. Noen grunn til ikke å bruke dette?  
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. DEMO http://mongoarchive.heroku.com Tekst endres i Topp- og Bunntekst 10/7/2009 s.30

Hinweis der Redaktion

  1. Tanken på å slippe databaseskjema var forlokkende.
  2. One size fits all? Er det en naturlov at alle data må lagres i en relasjonsdatabase. For ikke så lenge siden var det ikke mulig å lage en applikasjon uten mange lag, appserver, ejb osv..
  3. Arkivcase der vi har har problemer med skaleringer og utviding av funksjonalitet Store datamengder 10Tb, 350 mill elementer i enkelte tabeller.
  4. Inspirert av Google med fler Vi kan søke om å få ca 20% av tiden vår til noe vi selv ønsker å drive med.
  5. Det er i dette landskapet du skal bevege deg. Vil du ha funksjonalitet, joind, konsistens i basen, eller skalere enkelt og billig?
  6. Atomicy Consistency Isolation Durability Basically Available Soft-state Eventual consistency noSql har typisk valgt vekk tradisjonell databasefunksjonalitet og overlatt det til klienten samtidig som de har kunnet styrke ting som skalering og tilgjengelighet. Dette er ting som relasjoner, skjema, spørringer, joins og transaksjoner. Noen er heller ikke ACID compliant. Men som regel er de i allefall atomicy (ikke transaksjoner), ofte konsistent, men ikke nødvendigvis, durability er ikke altid like garantert (forsinkelse på transaksjonslogger etc) Mye varianter, men de fleste har til felles å kunne lagre vilkårlige data, slå opp på nøkkel og flere har fokus på sharding løsninger – som er ekte skalerbart.
  7. Større fleksibilitet Flytter skjema opp i applikasjonen. ” Tabeller” og ”kolonner” opprettes dynamisk ved behov. Enklere migrering. Versjonering av skjema sammen med koden. Enklere i en distribuert verden siden man slipper oppdatering Man trenger noe skjema greier indekser..
  8. Enkle raske og skalerbare Litt enkle for mange problemer? Typisk kun key som er indeksert Det finnes varianter med unike/ multiple keys Mange varianter av hva som kan legges inn som value
  9. Inspirert av Google Bigtable   Det man kaller en multidimensjonal key value db   Key/value med ett skjema (kolonner må predefineres)   Muligheter for å behandle kolonner på forskjellig måte, for eksempel komprimering   Key er typisk indeksert map reduse for å gjøre søk og operasjoner i data. Bedre egnet som en dataanalyse enn onlinedatabase? Vanskelig å forstå konseptet.
  10. Data lagret som en struktur (typisk json eller xml)   Felter inne i dokumentet kan indekseres individuelt.   Mye funksjonalitet   Enkle å forstå
  11. Det er ikke noen grunn til at noSql baser skal være dårligere eller mindre sikre enn sql baser, dette kommer helt ann på modenheten til produktene og tilgangen på verktøy. I dag er ikke dette like bra, men tiden vil vise, vil de store stille seg bak initiativene, hvem vil overleve etc...
  12. et argument for sql baser er ofte at data varer lengre enn applikasjoner og det er rett, men som regel ender du likevel opp med en eller annen eksport/import strategi fordi integrasjon rett mot en denormalisert base er vanskelig, og påtvinger deg legacy datamodell. Dokumenter er mer representative og enklere å gjenbruke. uansett, lag en export all/import all strategi!
  13. Vis koden  - modellen - noen rest verb Vis deploy til heroku - se startmeldingene Legg inn et dokument - finn dokumentet - Legg til et nytt dokument med nytt felt - finn basert på nytt felt Last opp noen bilder - Søk på metadata Slett med poster appen   Vis mongoHq grensesnitt  Se filer Se index Kjør en db.images.find({&amp;quot;tags&amp;quot;:&amp;quot;oslo&amp;quot;).explain()