SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Polyglot Persistence
Lightning talk
NDCOslo
14.06.12
ArchitectureNeeds
One database
requirements = important
Let’s create an
application
NEED NUMBER 1
Read and write data
Need number 1
Key-Value Store
read and write data
Application
KV
NEED NUMBER 2
Search the data
Need number 2
Search Engine
search the data
Application
KV Search
NEED NUMBER 3
Relational search
Need number 3
Graph Database
relational search
Application
KV Search Graph
Application
KV Search
Graph
Application
KV Search
Graph
Application
KV SearchGraph
Events
NEED NUMBER 4
Generate reports
Need number 4
RDBMS
generate reports
Application
KV Search Graph
Events
RDBMS
Application
KV Search
Graph
Events
RDBMS
Polyglot Persistence
Thank you!
Ole-Martin Mørk
@olemartin
Bekk Consulting AS

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi DataPivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
 
Graphql
GraphqlGraphql
Graphql
 
Twitter analytics in Bluemix
Twitter analytics in BluemixTwitter analytics in Bluemix
Twitter analytics in Bluemix
 
SSRS Presentation
SSRS PresentationSSRS Presentation
SSRS Presentation
 
Esriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashedEsriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashed
 
Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining? Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining?
 
2016 conservation track: under the hood of an rea: what is within a rapid ec...
2016 conservation track: under the hood of an rea:  what is within a rapid ec...2016 conservation track: under the hood of an rea:  what is within a rapid ec...
2016 conservation track: under the hood of an rea: what is within a rapid ec...
 
Migrating from legacy Database to Postgres
Migrating from legacy Database to PostgresMigrating from legacy Database to Postgres
Migrating from legacy Database to Postgres
 
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
 
Hadoop Mapreduce Projects
Hadoop Mapreduce ProjectsHadoop Mapreduce Projects
Hadoop Mapreduce Projects
 
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT ForumKevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
 
TechEvent biGenius What's New
TechEvent biGenius What's NewTechEvent biGenius What's New
TechEvent biGenius What's New
 
Connect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris CommerceConnect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris Commerce
 
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan AmjadianTensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
 
Data Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile AppData Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile App
 
Airbyte - Seed deck
Airbyte  - Seed deckAirbyte  - Seed deck
Airbyte - Seed deck
 
SnapLogic Live: AWS Integration
SnapLogic Live: AWS IntegrationSnapLogic Live: AWS Integration
SnapLogic Live: AWS Integration
 
Create a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics APICreate a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics API
 
Using FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between SystemsUsing FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between Systems
 
Yodeck at Open Coffee #98
Yodeck at Open Coffee #98Yodeck at Open Coffee #98
Yodeck at Open Coffee #98
 

Andere mochten auch (8)

Eurocomm beyond brussels
Eurocomm beyond brusselsEurocomm beyond brussels
Eurocomm beyond brussels
 
Presentasjon om skyen
Presentasjon om skyenPresentasjon om skyen
Presentasjon om skyen
 
Presentation of Redis
Presentation of RedisPresentation of Redis
Presentation of Redis
 
Evolusjonen av PaaS
Evolusjonen av PaaSEvolusjonen av PaaS
Evolusjonen av PaaS
 
Hyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsHyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweets
 
IABC EMENA AGM 2013
IABC EMENA AGM 2013IABC EMENA AGM 2013
IABC EMENA AGM 2013
 
Finding a job is a journey not a destination
Finding a job is a journey not a destinationFinding a job is a journey not a destination
Finding a job is a journey not a destination
 
Europe Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euEurope Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.eu
 

Mehr von Ole-Martin Mørk (6)

Graph search with Neo4j
Graph search with Neo4jGraph search with Neo4j
Graph search with Neo4j
 
Patterns for key-value stores
Patterns for key-value storesPatterns for key-value stores
Patterns for key-value stores
 
Polyglot persistence
Polyglot persistencePolyglot persistence
Polyglot persistence
 
Du må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonDu må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjon
 
Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
Collaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceCollaborative Filtering in Map/Reduce
Collaborative Filtering in Map/Reduce
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Hinweis der Redaktion

  1. Jegskalsnakkeomarkitektur.Hvaer starting point for god arkitektur?Arkitektur-arbeid starter forhåpentligvis med åavdekkebehov. For åvitehvaoghvordan vi skallagenoesåmå vi kjennetil needs the application should fulfill
  2. Vi tegnerbokser, og vi tegner linesSystemenesnakkersammenpåforskjelligeprotokollerNoesynkront, noeasynkrontSome need to be up all the time, some need low responsetimewe keep on drawing, vi skaperdetsystemetsomsvarerpå needs bådetilfunksjonelleogikke-funksjonellebehov.Tilslutttegner vi inn et repository, en database.
  3. Challenge vi møtervedåtegne inn én database er at en database ofteikkevilværenoktilå meet the customers needsBruker du en relasjonsdatabasesåfår du utfordringer med performance, object relational impedance ogskaleringBruker du en key-value-database får du utfordringer med oppløsningenpådataeneogrelasjonerBruker du en grafdatabasefår du utfordringer med skaleringog lookupsUansetthvilken database du velgersåvil du fåutfordringer. Vi erklar over disseutfordringene, likevelvelger vi åikkegjørenoe med det
  4. Vi harsålett for åvelgesammedatabaseteknologihver gang, utenå se nøyepåbehovene.Hvis vi studererbehovenenøye, såvil vi se at valgavdatabasetechnologyikkeersåenkeltsom man skulletro..
  5. Dersom du ønskerpersistensiarkitekturen din såerdetfordi du ønskerålagreog lese data. Deterdetprimærebehovet.Do The Simplest Thing That Could Possibly Work. Nårbehoveterålagreog lese data, såerdetenkleste en ren key/value store. Detviktigstemålet med databasener at den erenkelog at domenet matcher de lagrededataene best mulig
  6. Detervelog bra åkunne lese ogskrive data. Men man måsom regel kunnesøkeidataeneogså. Vi ønskeråfinnepersonervhanavn. Vi ønskeråfinneallesomharadressei Oslo etc etc.. og en key-value store erikkeså god påfulltekstsøk.. forsåvidtikke en relasjonsdatabaseheller.. Så vi trenger en søkemotor. Detteer et behovjeghar sett oppståi mange forskjelligeprodukter. Microsoft kjøpte Fast så de kunnefå en søkemotoriSharepoint. De haddeallerede en relasjonsdatabaseibunn, men fantut at detvargreitåbrukelittpengerpå en søkemotor. Allecms-verktøyharbåde database ogsøkemotor, ogfleresaksbehandlingsapplikasjonerjegharværtborteihardettebehovet.Så.. for åkunnesøkegodtivåredataersåtenger vi en søkemotor..ogdeterjoikkenoe problem. Vi legger inn et kalltilsøkemotorenhver gang vi oppdatererdatabasen. Kanskje hiver opp en synkroniseringsjobbhvernatt for åværesikker.. men dettekomplisererikkearkitekturenvårveldig
  7. En ting søkemotorerikkeerså bra påerrelasjonssøk. Si for eksempeljegskallaget en ansattdatabase for et konsulenthus. Selgerenskriver et tilbud for en kunde, ogkundenhar stilt kravtilfagkunnskapogerfaring. Han ønsker kun konsulentersomharjobbet med F# hos minimum 2 kunder. Den spørringenerlitt lei åfåtili en relasjonsdatabase. I en grafdatabaseerdennespørringenveldigenkel, ogikkeminstlynrask.Så for dettebehovetvelger vi oss en grafdatabase.
  8. Her erdetmyesomkangågalt.. men detblirmyedupliseringavlogikk her.For detførste. Applikasjonenkanikkeforholdesegtilalledisseforskjelligedatabasene.. så vi fjernerrelasjonen.I tillegg. Databasenebørhellerikkekjennetilhverandre, så vi fjernerdem
  9. Ogsåreorganiserer vi litt..
  10. Så…Visnakker med en key value store, men vi snakkerikke med noenandre.For at de andreskalfånoe data åforholdesegtil, såinnfører vi en eventstore. Alleendringerav data ivårapplikasjon lager en event. Våredatabaserlytterpådennekøen, ogoppdatererdataene sine lokalt. Serpåeventen, oglagrer de dataenesomerinteressante for seg.Dettebørforøvrigvære en persistent eventstore. Hvisgrafdatabasengårned for en periode, såskal man kunnespilletilbake events somermistet, eller man fårbehov for en heltny database…
  11. Plutseligkommerdatavarehusfolkenepåbanene, ellerøkonomene, ellerstatistikkgutta.. De vilgenerererapporter. De vil ha statistikk..Hyggeligdet, ogviktig.. Detenesteproblemeter at vi harikkenoen database somtilfredstillerderesbehov. Detteerikkenoe problem. Vi hareventstoren, ogdeterikkeværreennåpluggepå en relasjonsdatabasesomlytterpåeventeneog vi er good to go..Tre store positive ting med dette. 1. Vi kjenteikketilbehovet for rapportertidligere, men pgaeventstoremodellensåkunne vi enkeltleggetil en ny database 2. Iom at alleeventene ligger lagretsåkan vi enkeltsetteopp en ny database med gamle data utenåmåttekjøre en styggkonverteringsjobb. 3. Rapporteringsdatabasenbrukes kun avdem, ikkeavoss. Så de kankjøresåtungerapporter de vil. Detpåvirkerikkevårapplikasjondetminste.
  12. Sådetteer polyglot persistence.Man vet at detikkefinnesnoen silver bullet. Programming language, libraries, operating systems.. and database!Så man velger den databasensomtilfredstiller de behovene man har der og da..Dettemåikkeimplementeres med en event drevetarkitektur, men dethjelper..Man girkundendet den vil ha først, ogkanenkeltutvidesdersomdetdukkeroppnyebehovetterhvert. For detgjør det..