Kill the DBA

684 views
641 views

Published on

Lightning talk from javabin summer meeting 2010 on effects of choosing NoSQL (in Norwegian)

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
684
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kill the DBA

  1. 1. NoSQL Hang the (fritt etter The Smiths) Knut Haugen, JavaBin, 2010-06-10 DBA RDBMS
  2. 2. <meg> Knut Haugen (Økokrim, snart Objectware) Programmerer og total NoSQL fanboy </meg>
  3. 3. NoSQL != NoSQL
  4. 4. 1. tese
  5. 5. Valgmuligheter
  6. 6. 2. tese
  7. 7. Tradeoffs
  8. 8. 3. tese
  9. 9. Datamodellen
  10. 10. Win
  11. 11. Smidighet
  12. 12. Domenet i fokus
  13. 13. Direkte aksess til data
  14. 14. Mindre friksjon
  15. 15. Impedance mismatch
  16. 16. Skalerbarhet
  17. 17. Distribusjon
  18. 18. Lose
  19. 19. Uoversiktlig landskap
  20. 20. http://nosql-database.org/ http://nosql.mypopescu.com/
  21. 21. Ny tech
  22. 22. Umodne frameworks
  23. 23. HDD
  24. 24. Direkte aksess til data
  25. 25. OWS
  26. 26. Kobler domenet til persistensen
  27. 27. Uvant territorium
  28. 28. Glem rapporteringen
  29. 29. DBAens skjebne
  30. 30. Ukjent produkt
  31. 31. Umodne mgt. tools
  32. 32. Hvordan modellere?
  33. 33. ER-modell Noe annet
  34. 34. PL/SQL?
  35. 35. map/reduce i Javascript :-)
  36. 36. Ikke heng DBA'en
  37. 37. Dressurkurs
  38. 38. NoSQL Hang the DBA @knuthaug http://blog.knuthaugen.no/ http://github.com/knuthaug [email_address]
  39. 39. @Test public void retrievePersonFromDatabase (){ Person testPerson = new Person ( &quot;Knut Haugen&quot; , new Address ( &quot;Josefines gate&quot; , &quot;0401&quot; , &quot;oslo&quot; , &quot;Norge&quot; )); persons. insert (testPerson); Person dbPerson = (Person) persons. findOne (); assertEquals (testPerson. get ( &quot;name&quot; ), dbPerson. get ( &quot;name&quot; )); assertEquals ( ((Address) dbPerson. get ( &quot;address&quot; )). place (), &quot;oslo&quot; ); }
  40. 40. //Imports and package snipped public class Person implements DBObject { Map map = new LinkedHashMap (); public Person () { // for the driver to be able to instantiate! } public Person ( String fullName, Address newAddress) { put ( &quot;name&quot; , fullName); put ( &quot;address&quot; , newAddress); } public Object put ( String s, Object o) { return map. put (s, o);} public void putAll (DBObject dbObject) { } public void putAll ( Map map) {} public Object get ( String s) { return map. get (s); } public Map toMap () { return map; } public Object removeField ( String s) { return null; } public boolean containsKey ( String s) { return false;} public boolean containsField ( String s) { return false;} public Set < String > keySet () { return map. keySet (); } public void markAsPartialObject () {} public boolean isPartialObject () { return false; } }
  41. 41. import org.neo4j.graphdb. Node ; public class Person extends NetworkNode implements Person { private final String PERSON_BIRTHDATE = &quot;birthDate&quot; ; private final String NAME_PROPERTY = &quot;name&quot; ; private final Node node; public Person ( Node underlyingNode) { Node = underlyingNode; } public String birthDate ( String BirthDate) { underlyingNode. setProperty (PERSON_BIRTHDATE, birthDate ); return ( String ) node. getProperty (PERSON_BIRTHDATE); } public String birthDate () { return ( String ) node. getProperty (PERSON_BIRTHDATE); } public String name ( String name) { underlyingNode. setProperty (NAME_PROPERTY, name); return ( String ) node. getProperty (NAME_PROPERTY); } public String name () { return ( String ) node. getProperty (NAME_PROPERTY); } public Node getUnderLyingNode () { return node; } }
  42. 42. Spørsmålene
  43. 43. Aksessmønstre?
  44. 44. ACID?
  45. 45. Vil skjemaet endre seg?
  46. 46. Hva er datamodellen?
  47. 47. Brede eller smale datasett?
  48. 48. Constraints og relasjoner?
  49. 49. Hvor høyt må du skalere?
  50. 50. Drift
  51. 51. Umodent
  52. 52. Ukjent
  53. 53. Ny infrastuktur
  54. 54. Tynn doc

×