Date post: | 12-May-2015 |
Category: |
Technology |
Upload: | brianlangbecker |
View: | 326 times |
Download: | 2 times |
WEBINARWhy does Microsoft care about SQL + NoSQL and Polyglot Persistence?
• Microsoft published a book on 10/15/13 on the benefits of combining SQL data and unstructured data
• This webinar explores the practical implementation of this strategy
SQL, NOSQL, AND POLYGLOT PERSISTENCE
QUESTIONS TO ANSWER
• What is NoSQL?• What is Polyglot Persistence (aka hybrid)?• How do you integrate SQL and NoSQL?• Why is it important?• How does a hybrid .NET, SQL and NoSQL Database
benefit your applications?• What are the steps to enable your apps to use a
hybrid solution?
WHAT IS NOSQL?A NoSQL (Not Only SQL) database provides a mechanism for storage and retrieval of data that employs less constrained consistency models than traditional relational databases. Motivations for this approach include simplicity of design, horizontal scaling and finer control over availability. (Source: Wikipedia)
• Distributed computing – scale out versus scale up• Fault tolerance through mirroring/replication• Ability to be schema-less and handle unstructured data• Eventually consistent as opposed to fully consistent• Several approaches – Key Value, Document, Graph etc
NOSQL EXAMPLES
COMPARISON OF SQL AND NOSQLA NoSQL database, as the name implies, provides a different storage and processing model than a traditional SQL based relational database.
RELATIONAL DOCUMENT KEY-VALUE
NOSQL STRENGTHS AND WEAKNESSES
StrengthMulti-node scalability
WeaknessGuaranteed data consistency
Source: Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence
COMPARISON OF SQL AND NOSQLSQL Server NoSQL
Consistency Model
Fully consistent Eventually Consistent
Scalability Single Server (Scale up) Multiple Servers (Scale out)
Fault ToleranceHA through Secondary fail over Server
Fault tolerance through Mirroring/Replication
Data Design DBA does data design firstStart schema-less and implement data structure as you code
Data types SQL/Relational Data Table and/or unstructured data
StrengthsTransactions/data consistency/Robust BI/Reporting and tooling
Scale/performance/ease of development and adaptation
So, which is best? BOTH!
WHAT IS POLYGLOT PERSISTENCE?
Polyglot Persistence, like polyglot programming, is all about choosing the right persistence option for the task at hand. Scott Leberknight
Different databases are designed to solve different problems. Using a single database engine for all of the requirements usually leads to non- performant solutions.Martin Fowler
Polyglot Persistence is about using hybrid storage approach (RDBMS, NOSQL,BLOB,FILE) that allows you to use the best tool for the job versus being locked into one approach.FatCloud
WHAT DOES POLYGLOT PERSISTENCE LOOK LIKE?
Source: Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence
METHOD 1: HOW TO INTEGRATE SQL WITH NOSQL
SQL Server
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
NoSQL Server Cluster
Invoice832
Invoice492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595Invoice
832Invoice
492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595Invoice
832Invoice
492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595
Web / Mobile or other Client appCalls for relational and
transactional dataCalls for unstructuredand scale sensitive data
Data Driven Request Routing
SQL Server FatDB Server Cluster
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
Invoice832
Invoice492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595Invoice
832Invoice
492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595Invoice
832Invoice
492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
Automate routine synchronization tasks for effortless data consistency.
1. Changes to SQL Server automatically sent to FatDB
2. Changes to FatDB automatically sent to SQL Server
SQL Write Back
Automatic Synchronization
METHOD 2: HOW TO INTEGRATE SQL WITH NOSQL
EXAMPLE OF A POLYGLOT DATA STORE
SQL Server
FatDB Server Cluster (In house or In cloud)
Invoice832
Invoice492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595
Invoice832
Invoice492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595
Invoice832
Invoice492
Invoice751
Invoice275
Invoice037
Invoice175
Invoice024
Invoice936
Invoice595
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
Invoice024
Invoice175
Invoice832
Invoice936
Invoice492
Invoice751
Invoice595
Invoice037
Invoice275
New Web AppMobile Clients
Legacy Apps BI & Reporting1 5
2 4
31.Legacy apps continue
unchanged updating SQL Server
2.Changes in SQL Server are transmitted to FatDB
3.FatDB is accessed by mobile, web, cloud clients delivering scale and fault tolerance
4.Updates to FatDB are transmitted back to SQL Server
5.BI and Reporting tools can continue accessing SQL Server as an accurate data repository
WHY IS POLYGLOT (a.k.a HYBRID) IMPORTANT?
“…the advent of NoSQL databases has meant that many application developers, designers, and architects are now looking to apply the most appropriate means of data storage to each specific aspect of their systems, and this may involve implementing multiple types of database and integrating them into a single solution.”Microsoft, “Data Access for Highly Scalable Solutions”, 2013
• One size may not fit all that well• We can now use the best tools or toolset for the job
HOW DOES A HYBRID SOLUTION BENEFIT YOU
1. More scalable, less cost2. Preserve legacy apps3. Accelerate time to market4. New application functionality5. Preserve proven BI and reporting tools6. Improved data mining7. Superior elasticity
10 TIPS FOR CREATING A HYBRID SOLUTION
1. Think holistically, do your traffic and data analysis2. Test and meter3. Minimize architectural complexity, “Missions” trump “Services”4. Minimize “glue” code and impedance mismatches, standardize5. Don’t paint yourself into a corner, be “Agile”6. Minimize maintenance and configuration overhead7. Look for portability and flexibility8. Look for strong RDBMS integration9. Look for an integrated extensible framework10.Look for good support and resources
QUESTIONSChander Dhall, Microsoft [email protected]@csdhall
Justin Weiler, [email protected]@fatcloudllc