SlideShare una empresa de Scribd logo
1 de 35
NOSQL Databases for the
.NET Developer
Jesus Rodriguez
CEO, Co-Founder Tellago, Inc
CEO, Co-Founder Tellago Studios, Inc
About me….
• Hackerpreneur
• Co-Founder Tellago, Tellago Studios, Inc
• Microsoft Architect Advisor
• Microsoft MVP
• Oracle ACE
• Speaker, Author
• http://moesion.com
• http://weblogs.asp.net/gsusx
• http://jrodthoughts.com
Agenda
• Why NOSQL DBs
• NOSQL DBs for the .NET Developer
• Types of NOSQL DBs: Document, Key-Value,
Graph, Objects
• NOSQL DBs in the Cloud
• Demo Demo Demo Demo
If You Are Here It Is Because You Are Different
NOSQL DBs?
NOSQL != NoSQL or
NOSQL != (!SQL)
The Data World is
Changing
Big Data
Concurrency
Unstructured Data
Fast Reads, Scalable Writes
CAP Theorem
NOSQL & .NET
NOSQL & .NET
• .NET is a primary platform supported by NOSQL
databases
• Native .NET clients
• Interoperable HTTP/REST APIs
• Native .NET NOSQL DBs: Trinity, RavenDB, AppFabric
Cache
Types of NOSQL DBs?
Key Value Stores
• Focus on scaling to huge amounts of data
• Designed to handle massive load
• Based on Amazon’s Dynamo paper
• Data model: (global) collection of Key-Value pairs
• Dynamo ring partitioning and replication
• Examples:
– Dynomite
– Voldemort
– Tokyo{Tyrant, Cabinet, etc...}
– Redis
Key Value Stores & .NET
• Native .NET Interfaces: Redis, MemcacheDB
• HTTP Interface: Riak
• Hard to interoperate with .NET: Voldemort, Tokyo
Cabinet
Demo: Using Redis from
.NET
Document Stores
• Similar to Key-Value stores, but the DB knows what the
Value is
• Inspired by Lotus Notes
• Data model: Collections of Key-Value collections
• Documents are often versioned
• Examples:
– CouchDB
– MongoDB
– RavenDB
– OrientDB
– JackRabitt
Document Stores & .NET
• Native .NET Interfaces: MongoDB, RavenDB
• HTTP Interface: CouchDB, OrientDB
• Hard to interoperate with .NET: JackRabbit
Demo: Using MongoDB
from .NET
Graph Databases
• Focus on modeling the structure of data - interconnectivity
• Scales to the complexity of the data
• Inspired by mathematical Graph Theory ( G=(E,V) )
• Data model: “Property Graph” ‣Nodes
– Relationships/Edges between Nodes (first class)
– Key-Value pairs on both
– Possibly Edge Labels and/or Node/Edge Types
• Examples:
– Trinity
– Neo4j
– AllegroGraph
– FlockDB
Graph Databases & .NET
• Native .NET Interfaces: Trinity
• HTTP Interface: Neo4J, AllegroDB
• Hard to interoperate with .NET: FlockDB
Demo: Using Neo4J
from .NET
Object Databases
• Neither gaining nor loosing traction
• •Not part of the NOSQL community
• •Still a good solution to a lot of problems
• •Focuses on matching object oriented programming
paradigm
– Simplicity to integrate
– Ease of use
• Examples:
– Db4O
– Versant
Object Databases & .NET
• Native .NET Interfaces: DB4O
• HTTP Interface: --
• Hard to interoperate with .NET: Versant
Demo: Using DB4O
from .NET
Big Data Clones
• Like column oriented Relational Databases, but with a twist
• Tables similarly to RDBMS, but handles semi-structured
• Based on Google’s BigTable paper
• Data model: ‣Columns → column families → ACL
– ‣Datums keyed by: row, column, time, index
– ‣Row-range → tablet → distribution
• Examples:
– HBase
– Hypertable
– Cassandra
– LINQ To HPC???
Object Databases & .NET
• Native .NET Interfaces: LINQ To HPC
• HTTP Interface: HBase
• Hard to interoperate with .NET: Cassandra
NOSQL & The Cloud
NOSQL Cloud Databases
• NOSQL is the predominant model for cloud databases
• Native NOSQL cloud databases
– Azure Table Service
– Amazon Simple DB
• NOSQL Databases in PaaS platforms
– DotCloud
– CloudFoundry
– Heroku
Demo: Using AWS
SimpleDB from .NET
Summary
• NOSQL Databases are becoming one of the predominant
data storage models in the enterprise
• There are different models of NOSQL Databases:
Document, Key-Value, Graph, BigTable
• NOSQL databases are the predominant data storage
model for cloud infrastructures
• There is a large variety of NOSQL interfaces available to a
.NET developer.
• Start small, iterate
Thanks
jesus.rodriguez@tellago.com
http://www.tellago.com
http://weblogs.asp.net/gsusx
http://jrodthoughts.com

Más contenido relacionado

La actualidad más candente

Migrating from MongoDB to Neo4j - Lessons Learned
Migrating from MongoDB to Neo4j - Lessons LearnedMigrating from MongoDB to Neo4j - Lessons Learned
Migrating from MongoDB to Neo4j - Lessons LearnedNick Manning
 
Graph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsGraph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsStéphane Fréchette
 
Collo -01 , en
Collo -01 , enCollo -01 , en
Collo -01 , en지현 이
 
Making Startups Work: Scaling Drupal for Thrillist.com
Making Startups Work: Scaling Drupal for Thrillist.comMaking Startups Work: Scaling Drupal for Thrillist.com
Making Startups Work: Scaling Drupal for Thrillist.comMichael Smith
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jCorie Pollock
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2Michael H. Oshita
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jPerformance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jArangoDB Database
 
JSON as a SQL Datatype
JSON as a SQL DatatypeJSON as a SQL Datatype
JSON as a SQL DatatypeRobert Sell
 
Scaling ELK Stack - DevOpsDays Singapore
Scaling ELK Stack - DevOpsDays SingaporeScaling ELK Stack - DevOpsDays Singapore
Scaling ELK Stack - DevOpsDays SingaporeAngad Singh
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxMichael Hackstein
 
Big Data Overview Part 1
Big Data Overview Part 1Big Data Overview Part 1
Big Data Overview Part 1William Simms
 
Sql no sql comparision
Sql no sql comparisionSql no sql comparision
Sql no sql comparisionzwak1234
 

La actualidad más candente (20)

Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDB
 
Why CouchDB
Why CouchDBWhy CouchDB
Why CouchDB
 
Find your data
Find your dataFind your data
Find your data
 
Drop acid
Drop acidDrop acid
Drop acid
 
NYT Web Archive
NYT Web ArchiveNYT Web Archive
NYT Web Archive
 
Migrating from MongoDB to Neo4j - Lessons Learned
Migrating from MongoDB to Neo4j - Lessons LearnedMigrating from MongoDB to Neo4j - Lessons Learned
Migrating from MongoDB to Neo4j - Lessons Learned
 
Graph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsGraph Databases for SQL Server Professionals
Graph Databases for SQL Server Professionals
 
Collo -01 , en
Collo -01 , enCollo -01 , en
Collo -01 , en
 
Making Startups Work: Scaling Drupal for Thrillist.com
Making Startups Work: Scaling Drupal for Thrillist.comMaking Startups Work: Scaling Drupal for Thrillist.com
Making Startups Work: Scaling Drupal for Thrillist.com
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jPerformance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4j
 
Practical Use of a NoSQL
Practical Use of a NoSQLPractical Use of a NoSQL
Practical Use of a NoSQL
 
JSON as a SQL Datatype
JSON as a SQL DatatypeJSON as a SQL Datatype
JSON as a SQL Datatype
 
Scaling ELK Stack - DevOpsDays Singapore
Scaling ELK Stack - DevOpsDays SingaporeScaling ELK Stack - DevOpsDays Singapore
Scaling ELK Stack - DevOpsDays Singapore
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB Foxx
 
Art of nodejs
Art of nodejsArt of nodejs
Art of nodejs
 
Big Data Overview Part 1
Big Data Overview Part 1Big Data Overview Part 1
Big Data Overview Part 1
 
Sql no sql comparision
Sql no sql comparisionSql no sql comparision
Sql no sql comparision
 

Similar a NOSQL Databases for the .NET Developer

Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQLMongoDB
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Lucas Jellema
 
Intro to Graphs for Fedict
Intro to Graphs for FedictIntro to Graphs for Fedict
Intro to Graphs for FedictRik Van Bruggen
 
Database Choices
Database ChoicesDatabase Choices
Database ChoicesLynn Langit
 
Solr cloud the 'search first' nosql database extended deep dive
Solr cloud the 'search first' nosql database   extended deep diveSolr cloud the 'search first' nosql database   extended deep dive
Solr cloud the 'search first' nosql database extended deep divelucenerevolution
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Don Demcsak
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesKyle Banerjee
 
No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageBethmi Gunasekara
 
NoSQL: An Analysis
NoSQL: An AnalysisNoSQL: An Analysis
NoSQL: An AnalysisAndrew Brust
 
Mongodb open data day 2014
Mongodb open data day 2014Mongodb open data day 2014
Mongodb open data day 2014David Green
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social WebBogdan Gaza
 
Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...DATAVERSITY
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxRahul Borate
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsGeorge Stathis
 
A rubyist's naive comparison of some database systems and toolkits
A rubyist's naive comparison of some database systems and toolkitsA rubyist's naive comparison of some database systems and toolkits
A rubyist's naive comparison of some database systems and toolkitsBelighted
 
NO SQL: What, Why, How
NO SQL: What, Why, HowNO SQL: What, Why, How
NO SQL: What, Why, HowIgor Moochnick
 

Similar a NOSQL Databases for the .NET Developer (20)

Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
Intro to Graphs for Fedict
Intro to Graphs for FedictIntro to Graphs for Fedict
Intro to Graphs for Fedict
 
Database Choices
Database ChoicesDatabase Choices
Database Choices
 
NOsql Presentation.pdf
NOsql Presentation.pdfNOsql Presentation.pdf
NOsql Presentation.pdf
 
Solr cloud the 'search first' nosql database extended deep dive
Solr cloud the 'search first' nosql database   extended deep diveSolr cloud the 'search first' nosql database   extended deep dive
Solr cloud the 'search first' nosql database extended deep dive
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 
No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data Storage
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
NoSQL: An Analysis
NoSQL: An AnalysisNoSQL: An Analysis
NoSQL: An Analysis
 
No sql Database
No sql DatabaseNo sql Database
No sql Database
 
Mongodb open data day 2014
Mongodb open data day 2014Mongodb open data day 2014
Mongodb open data day 2014
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social Web
 
Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptx
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data Lessons
 
A rubyist's naive comparison of some database systems and toolkits
A rubyist's naive comparison of some database systems and toolkitsA rubyist's naive comparison of some database systems and toolkits
A rubyist's naive comparison of some database systems and toolkits
 
NO SQL: What, Why, How
NO SQL: What, Why, HowNO SQL: What, Why, How
NO SQL: What, Why, How
 

Más de Jesus Rodriguez

The Emergence of DeFi Micro-Primitives
The Emergence of DeFi Micro-PrimitivesThe Emergence of DeFi Micro-Primitives
The Emergence of DeFi Micro-PrimitivesJesus Rodriguez
 
ChatGPT, Foundation Models and Web3.pptx
ChatGPT, Foundation Models and Web3.pptxChatGPT, Foundation Models and Web3.pptx
ChatGPT, Foundation Models and Web3.pptxJesus Rodriguez
 
DeFi Opportunities and Challenges in the Current Crypto Market
DeFi Opportunities and Challenges in the Current Crypto MarketDeFi Opportunities and Challenges in the Current Crypto Market
DeFi Opportunities and Challenges in the Current Crypto MarketJesus Rodriguez
 
The Polygon Blockchain by the Numbers
The Polygon Blockchain by the NumbersThe Polygon Blockchain by the Numbers
The Polygon Blockchain by the NumbersJesus Rodriguez
 
Social Analytics for Cryptocurrencies
Social Analytics for Cryptocurrencies Social Analytics for Cryptocurrencies
Social Analytics for Cryptocurrencies Jesus Rodriguez
 
DeFi Quant Yield-Generating Strategies
DeFi Quant Yield-Generating StrategiesDeFi Quant Yield-Generating Strategies
DeFi Quant Yield-Generating StrategiesJesus Rodriguez
 
High Frequency Trading and DeFi
High Frequency Trading and DeFiHigh Frequency Trading and DeFi
High Frequency Trading and DeFiJesus Rodriguez
 
Simple DeFi Analytics Any Crypto-Investor Should Know About
Simple DeFi Analytics Any Crypto-Investor Should Know About Simple DeFi Analytics Any Crypto-Investor Should Know About
Simple DeFi Analytics Any Crypto-Investor Should Know About Jesus Rodriguez
 
15 Minutes of DeFi Analytics
15 Minutes of DeFi Analytics15 Minutes of DeFi Analytics
15 Minutes of DeFi AnalyticsJesus Rodriguez
 
DeFi Trading Strategies: Opportunities and Challenges
DeFi Trading Strategies: Opportunities and ChallengesDeFi Trading Strategies: Opportunities and Challenges
DeFi Trading Strategies: Opportunities and ChallengesJesus Rodriguez
 
Practical Crypto Asset Predictions rev
Practical Crypto Asset Predictions revPractical Crypto Asset Predictions rev
Practical Crypto Asset Predictions revJesus Rodriguez
 
Better Technical Analysis with Blockchain Indicators
Better Technical Analysis with Blockchain IndicatorsBetter Technical Analysis with Blockchain Indicators
Better Technical Analysis with Blockchain IndicatorsJesus Rodriguez
 
Price Predictions for Cryptocurrencies
Price Predictions for CryptocurrenciesPrice Predictions for Cryptocurrencies
Price Predictions for CryptocurrenciesJesus Rodriguez
 
Fascinating Metrics and Analytics About Cryptocurrencies
Fascinating Metrics and Analytics About CryptocurrenciesFascinating Metrics and Analytics About Cryptocurrencies
Fascinating Metrics and Analytics About CryptocurrenciesJesus Rodriguez
 
Price PRedictions for Crypto-Assets Using Deep Learning
Price PRedictions for Crypto-Assets Using Deep LearningPrice PRedictions for Crypto-Assets Using Deep Learning
Price PRedictions for Crypto-Assets Using Deep LearningJesus Rodriguez
 
Demystifying Centralized Crypto Exchanges using Data Science
Demystifying Centralized Crypto Exchanges using Data ScienceDemystifying Centralized Crypto Exchanges using Data Science
Demystifying Centralized Crypto Exchanges using Data ScienceJesus Rodriguez
 
Crypto assets are a data science heaven rev
Crypto assets are a data science heaven revCrypto assets are a data science heaven rev
Crypto assets are a data science heaven revJesus Rodriguez
 
Implementing Machine Learning in the Real World
Implementing Machine Learning in the Real WorldImplementing Machine Learning in the Real World
Implementing Machine Learning in the Real WorldJesus Rodriguez
 

Más de Jesus Rodriguez (20)

The Emergence of DeFi Micro-Primitives
The Emergence of DeFi Micro-PrimitivesThe Emergence of DeFi Micro-Primitives
The Emergence of DeFi Micro-Primitives
 
ChatGPT, Foundation Models and Web3.pptx
ChatGPT, Foundation Models and Web3.pptxChatGPT, Foundation Models and Web3.pptx
ChatGPT, Foundation Models and Web3.pptx
 
DeFi Opportunities and Challenges in the Current Crypto Market
DeFi Opportunities and Challenges in the Current Crypto MarketDeFi Opportunities and Challenges in the Current Crypto Market
DeFi Opportunities and Challenges in the Current Crypto Market
 
MEV Deep Dive .pptx
MEV Deep Dive .pptxMEV Deep Dive .pptx
MEV Deep Dive .pptx
 
Quant in Crypto Land
Quant in Crypto LandQuant in Crypto Land
Quant in Crypto Land
 
The Polygon Blockchain by the Numbers
The Polygon Blockchain by the NumbersThe Polygon Blockchain by the Numbers
The Polygon Blockchain by the Numbers
 
Social Analytics for Cryptocurrencies
Social Analytics for Cryptocurrencies Social Analytics for Cryptocurrencies
Social Analytics for Cryptocurrencies
 
DeFi Quant Yield-Generating Strategies
DeFi Quant Yield-Generating StrategiesDeFi Quant Yield-Generating Strategies
DeFi Quant Yield-Generating Strategies
 
High Frequency Trading and DeFi
High Frequency Trading and DeFiHigh Frequency Trading and DeFi
High Frequency Trading and DeFi
 
Simple DeFi Analytics Any Crypto-Investor Should Know About
Simple DeFi Analytics Any Crypto-Investor Should Know About Simple DeFi Analytics Any Crypto-Investor Should Know About
Simple DeFi Analytics Any Crypto-Investor Should Know About
 
15 Minutes of DeFi Analytics
15 Minutes of DeFi Analytics15 Minutes of DeFi Analytics
15 Minutes of DeFi Analytics
 
DeFi Trading Strategies: Opportunities and Challenges
DeFi Trading Strategies: Opportunities and ChallengesDeFi Trading Strategies: Opportunities and Challenges
DeFi Trading Strategies: Opportunities and Challenges
 
Practical Crypto Asset Predictions rev
Practical Crypto Asset Predictions revPractical Crypto Asset Predictions rev
Practical Crypto Asset Predictions rev
 
Better Technical Analysis with Blockchain Indicators
Better Technical Analysis with Blockchain IndicatorsBetter Technical Analysis with Blockchain Indicators
Better Technical Analysis with Blockchain Indicators
 
Price Predictions for Cryptocurrencies
Price Predictions for CryptocurrenciesPrice Predictions for Cryptocurrencies
Price Predictions for Cryptocurrencies
 
Fascinating Metrics and Analytics About Cryptocurrencies
Fascinating Metrics and Analytics About CryptocurrenciesFascinating Metrics and Analytics About Cryptocurrencies
Fascinating Metrics and Analytics About Cryptocurrencies
 
Price PRedictions for Crypto-Assets Using Deep Learning
Price PRedictions for Crypto-Assets Using Deep LearningPrice PRedictions for Crypto-Assets Using Deep Learning
Price PRedictions for Crypto-Assets Using Deep Learning
 
Demystifying Centralized Crypto Exchanges using Data Science
Demystifying Centralized Crypto Exchanges using Data ScienceDemystifying Centralized Crypto Exchanges using Data Science
Demystifying Centralized Crypto Exchanges using Data Science
 
Crypto assets are a data science heaven rev
Crypto assets are a data science heaven revCrypto assets are a data science heaven rev
Crypto assets are a data science heaven rev
 
Implementing Machine Learning in the Real World
Implementing Machine Learning in the Real WorldImplementing Machine Learning in the Real World
Implementing Machine Learning in the Real World
 

NOSQL Databases for the .NET Developer

  • 1. NOSQL Databases for the .NET Developer Jesus Rodriguez CEO, Co-Founder Tellago, Inc CEO, Co-Founder Tellago Studios, Inc
  • 2. About me…. • Hackerpreneur • Co-Founder Tellago, Tellago Studios, Inc • Microsoft Architect Advisor • Microsoft MVP • Oracle ACE • Speaker, Author • http://moesion.com • http://weblogs.asp.net/gsusx • http://jrodthoughts.com
  • 3. Agenda • Why NOSQL DBs • NOSQL DBs for the .NET Developer • Types of NOSQL DBs: Document, Key-Value, Graph, Objects • NOSQL DBs in the Cloud • Demo Demo Demo Demo
  • 4. If You Are Here It Is Because You Are Different
  • 6. NOSQL != NoSQL or NOSQL != (!SQL)
  • 7.
  • 8. The Data World is Changing
  • 15. NOSQL & .NET • .NET is a primary platform supported by NOSQL databases • Native .NET clients • Interoperable HTTP/REST APIs • Native .NET NOSQL DBs: Trinity, RavenDB, AppFabric Cache
  • 17. Key Value Stores • Focus on scaling to huge amounts of data • Designed to handle massive load • Based on Amazon’s Dynamo paper • Data model: (global) collection of Key-Value pairs • Dynamo ring partitioning and replication • Examples: – Dynomite – Voldemort – Tokyo{Tyrant, Cabinet, etc...} – Redis
  • 18. Key Value Stores & .NET • Native .NET Interfaces: Redis, MemcacheDB • HTTP Interface: Riak • Hard to interoperate with .NET: Voldemort, Tokyo Cabinet
  • 19. Demo: Using Redis from .NET
  • 20. Document Stores • Similar to Key-Value stores, but the DB knows what the Value is • Inspired by Lotus Notes • Data model: Collections of Key-Value collections • Documents are often versioned • Examples: – CouchDB – MongoDB – RavenDB – OrientDB – JackRabitt
  • 21. Document Stores & .NET • Native .NET Interfaces: MongoDB, RavenDB • HTTP Interface: CouchDB, OrientDB • Hard to interoperate with .NET: JackRabbit
  • 23. Graph Databases • Focus on modeling the structure of data - interconnectivity • Scales to the complexity of the data • Inspired by mathematical Graph Theory ( G=(E,V) ) • Data model: “Property Graph” ‣Nodes – Relationships/Edges between Nodes (first class) – Key-Value pairs on both – Possibly Edge Labels and/or Node/Edge Types • Examples: – Trinity – Neo4j – AllegroGraph – FlockDB
  • 24. Graph Databases & .NET • Native .NET Interfaces: Trinity • HTTP Interface: Neo4J, AllegroDB • Hard to interoperate with .NET: FlockDB
  • 26. Object Databases • Neither gaining nor loosing traction • •Not part of the NOSQL community • •Still a good solution to a lot of problems • •Focuses on matching object oriented programming paradigm – Simplicity to integrate – Ease of use • Examples: – Db4O – Versant
  • 27. Object Databases & .NET • Native .NET Interfaces: DB4O • HTTP Interface: -- • Hard to interoperate with .NET: Versant
  • 29. Big Data Clones • Like column oriented Relational Databases, but with a twist • Tables similarly to RDBMS, but handles semi-structured • Based on Google’s BigTable paper • Data model: ‣Columns → column families → ACL – ‣Datums keyed by: row, column, time, index – ‣Row-range → tablet → distribution • Examples: – HBase – Hypertable – Cassandra – LINQ To HPC???
  • 30. Object Databases & .NET • Native .NET Interfaces: LINQ To HPC • HTTP Interface: HBase • Hard to interoperate with .NET: Cassandra
  • 31. NOSQL & The Cloud
  • 32. NOSQL Cloud Databases • NOSQL is the predominant model for cloud databases • Native NOSQL cloud databases – Azure Table Service – Amazon Simple DB • NOSQL Databases in PaaS platforms – DotCloud – CloudFoundry – Heroku
  • 34. Summary • NOSQL Databases are becoming one of the predominant data storage models in the enterprise • There are different models of NOSQL Databases: Document, Key-Value, Graph, BigTable • NOSQL databases are the predominant data storage model for cloud infrastructures • There is a large variety of NOSQL interfaces available to a .NET developer. • Start small, iterate