Example: dental hygienist

NoSQL Distilled - GOTO Conference

NoSQL DistilledA guide to polyglot persistence#NoSQLD istilled@pramodsadalageThoughtWorks , June 11, 13 Why RDBMS?Tuesday, June 11, 13 ACID TransactionsAtomicityConsistencyIsolatio nDurabilityTuesday, June 11, 13 Standard Quer y InterfaceTuesday, June 11, 13 Interact with many languagesTuesday, June 11, 13 Ever yone knows SQLT uesday, June 11, 13 Ever yone knows SQLT uesday, June 11, 13 Limit le ss inde xingTuesday, June 11, 13 Handle s many data modelsTuesday, June 11, 13 Why NoSQLT uesday, June 11, 13 Schema change s are hardTuesday, June 11, 13line items:customer: Ann$4820321293533$3910321601912$51101314 95054$96$39$51payment details:Card: AmexCC Number: 12345expiry: 04/2001ID: 1001orderscustomersorder linescredit cardsImpedance mismatchTuesday, June 11, 13 Application vs Integration databasesBillingInventoryBillingInventor yIntegration DatabaseApplication Databaseweb serviceTuesday, June 11, 13 Running on clustersTuesday, June 11, 13Un-St ructured DataTuesday, June 11, 13Un-Even rate of data growthTuesday, June 11, 13 Domain ModelsTuesday, June 11, 13 Domain dri ven data modelsTuesday, June 11, 13 RDBMS dataTuesday, June 11, 13 Aggregate model (Embedding objects)Tuesday, June 11, 13 Aggregate Data// in customers{ "customer": {}}

NoSQL Distilled A guide to polyglot persistence #NoSQLDistilled @pramodsadalage ThoughtWorks Inc. Tuesday, June 11, 13

Tags:

  Nosql, Distilled, Nosql distilled, Nosqldistilled

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of NoSQL Distilled - GOTO Conference

1 NoSQL DistilledA guide to polyglot persistence#NoSQLD istilled@pramodsadalageThoughtWorks , June 11, 13 Why RDBMS?Tuesday, June 11, 13 ACID TransactionsAtomicityConsistencyIsolatio nDurabilityTuesday, June 11, 13 Standard Quer y InterfaceTuesday, June 11, 13 Interact with many languagesTuesday, June 11, 13 Ever yone knows SQLT uesday, June 11, 13 Ever yone knows SQLT uesday, June 11, 13 Limit le ss inde xingTuesday, June 11, 13 Handle s many data modelsTuesday, June 11, 13 Why NoSQLT uesday, June 11, 13 Schema change s are hardTuesday, June 11, 13line items:customer: Ann$4820321293533$3910321601912$51101314 95054$96$39$51payment details:Card: AmexCC Number: 12345expiry: 04/2001ID: 1001orderscustomersorder linescredit cardsImpedance mismatchTuesday, June 11, 13 Application vs Integration databasesBillingInventoryBillingInventor yIntegration DatabaseApplication Databaseweb serviceTuesday, June 11, 13 Running on clustersTuesday, June 11, 13Un-St ructured DataTuesday, June 11, 13Un-Even rate of data growthTuesday, June 11, 13 Domain ModelsTuesday, June 11, 13 Domain dri ven data modelsTuesday, June 11, 13 RDBMS dataTuesday, June 11, 13 Aggregate model (Embedding objects)Tuesday, June 11, 13 Aggregate Data// in customers{ "customer": { "id": 1, "name": "Martin", "billingAddress": [{"city": "Chicago"}], "orders": [ { "id":99, "orderItems":[ { "productId":27, "price": , "productName".]]}}}}

2 " NoSQL Distilled " } ], "shippingAddress":[{"city":"Chicago"}] "orderPayment":[ { "ccinfo":"1000-1000-1000-1000", "txnId":"abelif879rft", "billingAddress": {"city": "Chicago"} } ], } ] }}Tuesday, June 11, 13 Aggregate model (Referencing Objects)Tuesday, June 11, 13 Aggregate data// in Customers{ "id":1, "name":"Martin", "billingAddress":[{"city":"Chicago"}]}// in Orders{ "id":99, "customerId":1, "orderItems":[ { "productId":27, "price": , "productName": " NoSQL Distilled " } ], "shippingAddress":[{"city":"Chicago"}] "orderPayment":[ { "ccinfo":"1000-1000-1000-1000", "txnId":"abelif879rft", "billingAddress": {"city": "Chicago"} } ],}Tuesday, June 11, 13 Aggregate OrientationTuesday, June 11, 13 RDBMS s have no concept of aggregate s Tuesday, June 11, 13 Aggregate s reduce the need for ACIDT uesday, June 11, 13Be t ter for clusters, can be dist ributed e asilyTuesday, June 11, 13 Key-ValueDocumentColumn-FamilyTuesday, June 11, 13 Key Value Database sTuesday, June 11, 13 Key-ValueDatabase One Key-One Value Value is opaque to database Like a Hash Some are dist ributedOracleRiakinstanceclustertablebuc ketrowkey-valuerow-idkeyTuesday, June 11, 13 key (VIN) value (car facts).

3 Make#Ford model#Mustang year#2011 .. Tuesday, June 11, 13 Document Database sTuesday, June 11, 13 Document Database One Key-One Value Value is visible to database Value can be querie s JSON/XML documentsOracleMongoDBinstancemongodsche madatabasetablecollectionrowdocumentrow_ id_idTuesday, June 11, 13 id (VIN) document (car facts) {.. make : Ford , model : Mustang , year : 2011, .. } Tuesday, June 11, 13 Column-Family Database sTuesday, June 11, 13 Column-Family Database Data organized as columns Each row has row key Columns have versioned data Row data is sorted by column nameOracleCassandrainstanceclusterdataba sekeyspacetablecolumn-familyrowrowcolumn s same for e ver y rowcolumns can be dif ferent for e ach rowTuesday, June 11, 13 id (VIN) column families (car facts) {.. car :{ make : Ford , model : focus.}}

4 } service :{..} } Tuesday, June 11, 13 Key-Points Aggregate Database sTuesday, June 11, 13 Inter-aggregate relations are hard to maintainTuesday, June 11, 13 Schema-le ss me ans implicit schemaTuesday, June 11, 13 Graph Database sTuesday, June 11, 13 Tuesday, June 11, 13 Graph Database s Is multi-relational graph Relationships are first-class citizens Traversal algorithms Node s and Edge s can have data (key-value pairs)Tuesday, June 11, 13 Graph database s work be st for data with comple x relationsTuesday, June 11, 13 Key-Value Database UsageTuesday, June 11, 13Se ssion StorageTuesday, June 11, 13 User Profile s/Preference sTuesday, June 11, 13 Shopping CartTuesday, June 11, 13 Single user analyticsTuesday, June 11, 13 Document Database UsageTuesday, June 11, 13 Event LoggingTuesday, June 11, 13 Protot ype de velopmentTuesday, June 11, 13eCommerce ApplicationTuesday, June 11, 13 Content Management ApplicationsTuesday, June 11, 13 Column-Family Database UsageTuesday, June 11, 13 Large write volumeTuesday, June 11, 13 Content ManagementTuesday, June 11, 13eCommerce ApplicationTuesday, June 11, 13 Graph Database UsageTuesday, June 11, 13 Connected DataTuesday, June 11, 13 Routing things/moneyTuesday, June 11.

5 13 Location Ser vice sTuesday, June 11, 13 Recommendation engine sTuesday, June 11, 13 Schema-le ss re ally?Tuesday, June 11, 13 Schema-f ree doe s not me an no schema-migrationTuesday, June 11, 13 Schema is implicit in codeTuesday, June 11, 13 Data must be migrated, when schema in code is changedTuesday, June 11, 13 All data need not be migrated at the same time (lazy migration)Tuesday, June 11, 13 Polyglot PersistenceTuesday, June 11, 13 Use dif ferent data storage technology for var ying needsTuesday, June 11, 13 Can be across the enterprise or in single applicationTuesday, June 11, 13 Encapsulate data acce ss through ser vice sTuesday, June 11, 13 Order persistence serviceDocument storee-commerce platformSession/Cart storage serviceKey-Value storeInventory and Price serviceRDBMS(Legacy DB)Nodes and Relations serviceGraph storeShopping cart and session dataCompleted OrdersInventoryandItem PriceCustomer social graphTuesday, June 11, 13 RDBMSe-commerce platformShopping cart dataCompleted OrdersSession dataSOLRS earchrequestsUpdate Indexed DataUpdate indexed data, batch or realtimeTuesday, June 11, ssion StorageFinancial DataShopping CartRecommendationengineProduct CatalogReportingAnalyticsUser Acti vit y LogsSpeculati ve Re tail Web ApplicationRedisRDBMSRiakNeo4 JMongoDBRDBMSC assandraCassandraTuesday, June 11, 13 ExperienceTuesday, June 11, 13e-le arning (before)Tuesday, June 11, 13e-le arning (af ter)Tuesday, June 11, 13e-commerce (before)Tuesday, June 11, 13e-commerce (af ter)Tuesday, June 11, 13 How do I choose?

6 Tuesday, June 11, 13 Choose for programmer productivityTuesday, June 11, 13 Choose for data acce ss performanceTuesday, June 11, 13 Choose to stick with the defaultTuesday, June 11, 13 Choose by te sting your expectationsTuesday, June 11, 13Tr y the database s, they are all open-sourceTuesday, June 11, June 11, 13


Related search queries