SlideShare a Scribd company logo
BuzzNumbers Presentation Moving From SQL Server to MongoDB
Todays Presentation Problems faced with Social Media Monitoring/Analytics Why choose NoSQL over SQL  Why choose MongoDB NOSQL Vs SQL Schema Design Infinite scalability with commodity hardware & .NET Why we still use .NET (why not Ruby/Java/Python) Lessons Learned
NOSQL at BuzzNumbers About BuzzNumbers
About BuzzNumbers SaaSWeb Product Company Web and Social Media Analytics  Collect “big data”web content Near-Realtime data capture News, Blogs, Social Mediaetc Scraping, API’s, Feeds Analytics & Business Intelligence BI, Text, Sentiment, Locations, NLP, Machine Learning
BuzzNumbers Project Team  Nick Holmes a Court - @nickhac Brett Anderson - @brehtt Steve Casey - @stevencasey Jacinto Santamaria Chris Fulstow - @chrisfulstow Josie Kidd - @jose9
NOSQL at BuzzNumbers Problems Faced at BuzzNumbers
Problems faced at BuzzNumbers  Large and fast growing DB Tables Lots of Read/Writes from data collection 24/7  Massive Table Scans for user reports (< 3 sec SLA)  Large Joins (10+ Tables) with Nested Views  Complex Queries (Aggregates, Where’s, FullText)  FullText Search Indexes needed real-time updates   Read/Write Contention    Rapid Index fragmentation, Slow rebuilds   DB Locks occurring (with no implicit Transactions)  Blocking Transactions (both small/large tables)
Outgrew SQL Server Enterprise 2008 “Free” Software from MSFT from BizSpark  Tried everything with SQL Enterprise Significant SQL Performance Tuning   Dirty Reads (nolock), Offline Index Rebuilds Replication / Clustering / Multi-Instance  Problems  Schema changes impossible with uptime requirements DBA tasks made system unavailable for hours/days Hardware / SQL DBA got very expensive  Web users experienced annoying / unnecessary waits on blocked queries that were non-complex because of joins
BuzzNumbers NOSQL Presentation Why NOSQL over SQL
What is NOSQL  New generation of “Databases”  “Not Only SQL”  - Mostly Open Source   NOSQL Distributed database designed to deliver  Distributed “Big Data” storage  Distributed processing of queries/calculations  NOSQL Examples include Google– BigTable Yahoo -Hadoop (30k+ Nodes) Facebook - Cassandra FourSquare - MongoDB
Why NoSQL over SQL SQL  Guaranteed consistency Transactions Schemas / DataTypes Joins / Foreign Keys TSQL/PL-SQL (Views, Procs) Scale Up (hardware) Many Benefits including Ease of use Many developers skilled in SQL Trusted for decades / Proven NoSQL Eventual Consistency No Transaction Support Key/Value Data (mostly) Flat Data (no joins) Key Lookups / MapReduce / Code Scale out (distributed) Many Benefits including Performance / Scale Lower license costs Solves Web2 problems
Why NoSQL over SQL CAP Theorem  Consistency Availability Partitioning Only 2 of 3 are Possible Consistency/Availability  RDBMS Availability / Partitioning  NOSQL Consistency / Partitioning  Availability Issues (No one wants this)
BuzzNumbers NOSQL Presentation  Why MongoDB for NOSQL?
NOSQL Providers
Who uses Mongo?
Why Mongo  Proven for multiple usage scenarios High performance (eventual consistency)   Data stored in JSON (not only Key/Value) Supports Multiple Indexes (Anywhere in JSON) Easy to Install, Easy to Use(Linux/Windows) Easy to Scale for High Volume Writes (Sharding) Easy to Scale for High Volume Reads (Replica Sets) Automatic Failover and Redundancy (Replica Sets) REST Interface and Drivers for Ruby/.NET/Java/Etc Easy to Query via multiple techniques Key/Value, Mongo Query, JavaScript, MapReduce
BuzzNumbers NOSQL Presentation  Moving from SQL Schema to No-Schema
BuzzNumbers NOSQL Presentation  RDMBS Schema (Tables) Mongo Collection (JSON)
BuzzNumbers NOSQL Presentation  RDMBS Schema Mongo JSON Document
BuzzNumbers NOSQL Presentation  RDMBS Schema Mongo JSON Document One Document Per Website Per Day
BuzzNumbers NOSQL Presentation  RDMBS Schema Mongo JSON Document Pre-Aggregate SUM/COUNT/AVG Calculations using UPSERT
BuzzNumbers NOSQL Presentation  RDMBS Schema Mongo JSON Document Store Line Items with rich data as Nested Arrays . Use JavaScript or MapReduce to Query
Basic SQL vs Mongo Syntax Select * from Clients db.clients.find() Select * from Clients where clientid = 1 db.clients.find({”ClientID” :1}) Insert into clients (ClientID, Name) Values (1, “ACME”) db.clients.ìnsert({”ClientID” :1,”Name”:”ACME” }) Create Table / Alter Table  Just start inserting db.client.insert({JSON HERE}) Create Index db.clients.ensureIndex({“ClientID”:1, “Name”:1})
Basic SQL vs Mongo Syntax Select * from Clients db.clients.find() Select * from Clients where clientid = 1 db.clients.find({”ClientID” :1}) Insert into clients (ClientID, Name) Values (“ACME”, 1) db.clients.ìnsert({”ClientID” :1,”Name”:”ACME” }) Create Table  Just start inserting Create Index db.clients.ensureIndex({“ClientID”:1, “Name”:1})
BuzzNumbers NOSQL Presentation  Infinite Scale with .NET and NOSQL
Infinite Scale with .NET  Use .NET for Rapid Product Development  Web Applications (IIS, ASP.NET, User Databases)  Server Applications (Scraping, Apps, Services, Data) Scheduled Tasks / Backend Jobs  Use Open Source for Infinite Scale on Linux MongoDB for Big Data Storage   SOLR (distributed Lucene) for Full Text Indexing .NET Drivers Available for Mongo/SOLR
Infinite Scale with .NET  Cloud Hosting for Low Cost Scale  Rackspace Cloud ($200 p/m per 4GB-RAM server)  Windows and Ubuntu – Image/Clone/API support Zabbix Monitoring – notify when near capacity  Amazon/Heroku/dotCloud alternates  Tips to deliver fantastic performance at scale  Indexes MUST fit in RAM (Disk Reads are Slow) SSD’s HardDisks are worth the extra price 4GB RAM / 160GB Disk seems to be optimum price/performance per node in distributed system
BuzzNumbers NOSQL Presentation  Why we stay with .NET?
Why we stay with .NET  Visual Studio best IDE!!! SQL Server great database for most Data  Proven Tech Stack (low corporate risk)    Lots of support (MSFT and Consultants)  Large online community with code samples  Many Open Source libraries   ASP.NET MVC RAZOR is RAD Non-Complex Sysadmin for Windows Servers  Drivers/Integration available for most OSS Projects  Lots of Agile/Scrum/TDD/CI/Project Management tools  Lots of smart .NET web developers & engineers
BuzzNumbers NOSQL Presentation  Lessons Learned
Lessons Learned “Big Data” is not 100M records: but 1BN+  Don’t scale until you need to (Premature optimisation costs - big time) SQL RBDMS solves most problems but Scale up costs are prohibitive for startups so plan in advance when you might need to switch Mixing SQL for SmallData and NOSQL for BigData delivers both ease/speed of development and performance Mongo/SOLR works well to solve specific performance problems  Not all problems are equal: optimiseeach solution per performance problem Don’t go NOSQL unless you absolutely need to Very early technology with lots of learning overhead, risks and production issues Skilled .NET/Mongo/SOLR engineers are very  hard to find If client/data segmentation is possible, multiple SQL instances can deliver Ensure Indexes fit in Memory Spend time planning your schema in advances based on query requirements
BuzzNumbers NOSQL Presentation  Interested to learn more?
Thanks for your time  Speak with one of the Buzz Team tonight  Join our Team? We’re Hiring! Web Developers Software Engineers UX / Web Designers Immediate and Future roles… Talk to us!

More Related Content

What's hot

MongoDB at Scale
MongoDB at ScaleMongoDB at Scale
MongoDB at Scale
MongoDB
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
MongoDB
 
Modern Enterprise integration Strategies
Modern Enterprise integration StrategiesModern Enterprise integration Strategies
Modern Enterprise integration Strategies
Jesus Rodriguez
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
James Serra
 
Azure Data Lake Intro (SQLBits 2016)
Azure Data Lake Intro (SQLBits 2016)Azure Data Lake Intro (SQLBits 2016)
Azure Data Lake Intro (SQLBits 2016)
Michael Rys
 
Build Data Lakes and Analytics on AWS: Patterns & Best Practices
Build Data Lakes and Analytics on AWS: Patterns & Best PracticesBuild Data Lakes and Analytics on AWS: Patterns & Best Practices
Build Data Lakes and Analytics on AWS: Patterns & Best Practices
Amazon Web Services
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overviewhonglee71
 
Intro To Mongo Db
Intro To Mongo DbIntro To Mongo Db
Intro To Mongo Dbchriskite
 
Introduction to azure cosmos db
Introduction to azure cosmos dbIntroduction to azure cosmos db
Introduction to azure cosmos db
Ratan Parai
 
Design Principles for a Modern Data Warehouse
Design Principles for a Modern Data WarehouseDesign Principles for a Modern Data Warehouse
Design Principles for a Modern Data Warehouse
Rob Winters
 
Oracle Table Partitioning - Introduction
Oracle Table Partitioning  - IntroductionOracle Table Partitioning  - Introduction
Oracle Table Partitioning - Introduction
MyOnlineITCourses
 
ORC Deep Dive 2020
ORC Deep Dive 2020ORC Deep Dive 2020
ORC Deep Dive 2020
Owen O'Malley
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks
EDB
 
Modern SQL in Open Source and Commercial Databases
Modern SQL in Open Source and Commercial DatabasesModern SQL in Open Source and Commercial Databases
Modern SQL in Open Source and Commercial Databases
Markus Winand
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
Mike Willbanks
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Glen Hawkins
 
SQL & NoSQL
SQL & NoSQLSQL & NoSQL
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
James Serra
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
MongoDB
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio NakamuraInsight Technology, Inc.
 

What's hot (20)

MongoDB at Scale
MongoDB at ScaleMongoDB at Scale
MongoDB at Scale
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
 
Modern Enterprise integration Strategies
Modern Enterprise integration StrategiesModern Enterprise integration Strategies
Modern Enterprise integration Strategies
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
 
Azure Data Lake Intro (SQLBits 2016)
Azure Data Lake Intro (SQLBits 2016)Azure Data Lake Intro (SQLBits 2016)
Azure Data Lake Intro (SQLBits 2016)
 
Build Data Lakes and Analytics on AWS: Patterns & Best Practices
Build Data Lakes and Analytics on AWS: Patterns & Best PracticesBuild Data Lakes and Analytics on AWS: Patterns & Best Practices
Build Data Lakes and Analytics on AWS: Patterns & Best Practices
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overview
 
Intro To Mongo Db
Intro To Mongo DbIntro To Mongo Db
Intro To Mongo Db
 
Introduction to azure cosmos db
Introduction to azure cosmos dbIntroduction to azure cosmos db
Introduction to azure cosmos db
 
Design Principles for a Modern Data Warehouse
Design Principles for a Modern Data WarehouseDesign Principles for a Modern Data Warehouse
Design Principles for a Modern Data Warehouse
 
Oracle Table Partitioning - Introduction
Oracle Table Partitioning  - IntroductionOracle Table Partitioning  - Introduction
Oracle Table Partitioning - Introduction
 
ORC Deep Dive 2020
ORC Deep Dive 2020ORC Deep Dive 2020
ORC Deep Dive 2020
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks
 
Modern SQL in Open Source and Commercial Databases
Modern SQL in Open Source and Commercial DatabasesModern SQL in Open Source and Commercial Databases
Modern SQL in Open Source and Commercial Databases
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19c
 
SQL & NoSQL
SQL & NoSQLSQL & NoSQL
SQL & NoSQL
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
 

Viewers also liked

Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
MongoDB
 
Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com
MongoDB
 
Scala with mongodb
Scala with mongodbScala with mongodb
Scala with mongodb
Knoldus Inc.
 
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo  Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo dan_tamas
 
Speed up your apps by Dan Tamas TiConf 2013
Speed up your apps by Dan Tamas TiConf 2013Speed up your apps by Dan Tamas TiConf 2013
Speed up your apps by Dan Tamas TiConf 2013
dan_tamas
 
MongoDB
MongoDBMongoDB
Benefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSsBenefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSs
MongoDB
 
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB
 
İlişkisel Veritabanı Sistemleri ve NoSQL
İlişkisel Veritabanı Sistemleri ve NoSQLİlişkisel Veritabanı Sistemleri ve NoSQL
İlişkisel Veritabanı Sistemleri ve NoSQL
Murat Azimli
 
MongoDB Aggregations Indexing and Profiling
MongoDB Aggregations Indexing and ProfilingMongoDB Aggregations Indexing and Profiling
MongoDB Aggregations Indexing and Profiling
Manish Kapoor
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDB
MongoDB
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
Antoine Augusti
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
Diego López-de-Ipiña González-de-Artaza
 
Data visualization in python/Django
Data visualization in python/DjangoData visualization in python/Django
Data visualization in python/Django
kenluck2001
 
Indexing and Query Optimizer (Richard Kreuter)
Indexing and Query Optimizer (Richard Kreuter)Indexing and Query Optimizer (Richard Kreuter)
Indexing and Query Optimizer (Richard Kreuter)
MongoDB
 
MongoDB Workshop
MongoDB WorkshopMongoDB Workshop
MongoDB Workshop
eagerdeveloper
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
Amazon Web Services
 

Viewers also liked (20)

Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
 
Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com Migration from SQL to MongoDB - A Case Study at TheKnot.com
Migration from SQL to MongoDB - A Case Study at TheKnot.com
 
Scala with mongodb
Scala with mongodbScala with mongodb
Scala with mongodb
 
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo  Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo
Introduccion en Titanium Appcelerator - Dan Tamas Betabeers Oviedo
 
Speed up your apps by Dan Tamas TiConf 2013
Speed up your apps by Dan Tamas TiConf 2013Speed up your apps by Dan Tamas TiConf 2013
Speed up your apps by Dan Tamas TiConf 2013
 
MongoDB
MongoDBMongoDB
MongoDB
 
Gizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatternsGizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatterns
 
NoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı BakışıylaNoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı Bakışıyla
 
Benefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSsBenefits of Using MongoDB Over RDBMSs
Benefits of Using MongoDB Over RDBMSs
 
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
MongoDB Days UK: Using MongoDB and Python for Data Analysis Pipelines
 
İlişkisel Veritabanı Sistemleri ve NoSQL
İlişkisel Veritabanı Sistemleri ve NoSQLİlişkisel Veritabanı Sistemleri ve NoSQL
İlişkisel Veritabanı Sistemleri ve NoSQL
 
MongoDB Aggregations Indexing and Profiling
MongoDB Aggregations Indexing and ProfilingMongoDB Aggregations Indexing and Profiling
MongoDB Aggregations Indexing and Profiling
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDB
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Data visualization in python/Django
Data visualization in python/DjangoData visualization in python/Django
Data visualization in python/Django
 
Indexing and Query Optimizer (Richard Kreuter)
Indexing and Query Optimizer (Richard Kreuter)Indexing and Query Optimizer (Richard Kreuter)
Indexing and Query Optimizer (Richard Kreuter)
 
Indexing
IndexingIndexing
Indexing
 
MongoDB Workshop
MongoDB WorkshopMongoDB Workshop
MongoDB Workshop
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
 

Similar to Moving from SQL Server to MongoDB

Introduction to PolyBase
Introduction to PolyBaseIntroduction to PolyBase
Introduction to PolyBase
James Serra
 
If NoSQL is your answer, you are probably asking the wrong question.
If NoSQL is your answer, you are probably asking the wrong question.If NoSQL is your answer, you are probably asking the wrong question.
If NoSQL is your answer, you are probably asking the wrong question.
Lukas Smith
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George Grammatikos
George Grammatikos
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
James Serra
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
Marco Segato
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
llangit
 
SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?
Venu Anuganti
 
Big Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI MobileBig Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI Mobile
Roy Kim
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
jaxconf
 
Introduction to NoSQL Database
Introduction to NoSQL DatabaseIntroduction to NoSQL Database
Introduction to NoSQL Database
Mohammad Alghanem
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
Bill Wilder
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
ukdpe
 
MinneBar 2013 - Scaling with Cassandra
MinneBar 2013 - Scaling with CassandraMinneBar 2013 - Scaling with Cassandra
MinneBar 2013 - Scaling with Cassandra
Jeff Smoley
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast!
VictorSzoltysek
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App Architecture
Corey Butler
 

Similar to Moving from SQL Server to MongoDB (20)

Introduction to PolyBase
Introduction to PolyBaseIntroduction to PolyBase
Introduction to PolyBase
 
If NoSQL is your answer, you are probably asking the wrong question.
If NoSQL is your answer, you are probably asking the wrong question.If NoSQL is your answer, you are probably asking the wrong question.
If NoSQL is your answer, you are probably asking the wrong question.
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
NoSQL
NoSQLNoSQL
NoSQL
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George Grammatikos
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
 
SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?
 
Big Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI MobileBig Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI Mobile
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
 
Introduction to NoSQL Database
Introduction to NoSQL DatabaseIntroduction to NoSQL Database
Introduction to NoSQL Database
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
MinneBar 2013 - Scaling with Cassandra
MinneBar 2013 - Scaling with CassandraMinneBar 2013 - Scaling with Cassandra
MinneBar 2013 - Scaling with Cassandra
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast!
 
It ready dw_day3_rev00
It ready dw_day3_rev00It ready dw_day3_rev00
It ready dw_day3_rev00
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App Architecture
 

More from Nick Court

GoodCall - Getting to your first 100k MRR with Outbound Sales
GoodCall - Getting to your first 100k MRR with Outbound SalesGoodCall - Getting to your first 100k MRR with Outbound Sales
GoodCall - Getting to your first 100k MRR with Outbound Sales
Nick Court
 
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
Nick Court
 
Web 3.0 and The Future of Social Media - BuzzNumbers Presentation
Web 3.0 and The Future of Social Media - BuzzNumbers PresentationWeb 3.0 and The Future of Social Media - BuzzNumbers Presentation
Web 3.0 and The Future of Social Media - BuzzNumbers Presentation
Nick Court
 
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)Nick Court
 
Why Social Media matters to Professional Services
Why Social Media matters to Professional ServicesWhy Social Media matters to Professional Services
Why Social Media matters to Professional Services
Nick Court
 
Buzz Numbers Actionable Business Intelligence From Online Conversations
Buzz Numbers   Actionable Business Intelligence From Online ConversationsBuzz Numbers   Actionable Business Intelligence From Online Conversations
Buzz Numbers Actionable Business Intelligence From Online ConversationsNick Court
 
Buzz Numbers Mumbrella Presentation
Buzz Numbers Mumbrella PresentationBuzz Numbers Mumbrella Presentation
Buzz Numbers Mumbrella PresentationNick Court
 
How Social Networks are changing consumer behavior
How Social Networks are changing consumer behaviorHow Social Networks are changing consumer behavior
How Social Networks are changing consumer behavior
Nick Court
 

More from Nick Court (8)

GoodCall - Getting to your first 100k MRR with Outbound Sales
GoodCall - Getting to your first 100k MRR with Outbound SalesGoodCall - Getting to your first 100k MRR with Outbound Sales
GoodCall - Getting to your first 100k MRR with Outbound Sales
 
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
BuzzNumbers @ Accelerating Asia Summit (Singapore Dec 2010)
 
Web 3.0 and The Future of Social Media - BuzzNumbers Presentation
Web 3.0 and The Future of Social Media - BuzzNumbers PresentationWeb 3.0 and The Future of Social Media - BuzzNumbers Presentation
Web 3.0 and The Future of Social Media - BuzzNumbers Presentation
 
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)
BuzzNumbers - Where are the crowds online? (New Media Summit Presentation)
 
Why Social Media matters to Professional Services
Why Social Media matters to Professional ServicesWhy Social Media matters to Professional Services
Why Social Media matters to Professional Services
 
Buzz Numbers Actionable Business Intelligence From Online Conversations
Buzz Numbers   Actionable Business Intelligence From Online ConversationsBuzz Numbers   Actionable Business Intelligence From Online Conversations
Buzz Numbers Actionable Business Intelligence From Online Conversations
 
Buzz Numbers Mumbrella Presentation
Buzz Numbers Mumbrella PresentationBuzz Numbers Mumbrella Presentation
Buzz Numbers Mumbrella Presentation
 
How Social Networks are changing consumer behavior
How Social Networks are changing consumer behaviorHow Social Networks are changing consumer behavior
How Social Networks are changing consumer behavior
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

Moving from SQL Server to MongoDB

  • 1. BuzzNumbers Presentation Moving From SQL Server to MongoDB
  • 2. Todays Presentation Problems faced with Social Media Monitoring/Analytics Why choose NoSQL over SQL Why choose MongoDB NOSQL Vs SQL Schema Design Infinite scalability with commodity hardware & .NET Why we still use .NET (why not Ruby/Java/Python) Lessons Learned
  • 3. NOSQL at BuzzNumbers About BuzzNumbers
  • 4. About BuzzNumbers SaaSWeb Product Company Web and Social Media Analytics Collect “big data”web content Near-Realtime data capture News, Blogs, Social Mediaetc Scraping, API’s, Feeds Analytics & Business Intelligence BI, Text, Sentiment, Locations, NLP, Machine Learning
  • 5. BuzzNumbers Project Team Nick Holmes a Court - @nickhac Brett Anderson - @brehtt Steve Casey - @stevencasey Jacinto Santamaria Chris Fulstow - @chrisfulstow Josie Kidd - @jose9
  • 6. NOSQL at BuzzNumbers Problems Faced at BuzzNumbers
  • 7. Problems faced at BuzzNumbers Large and fast growing DB Tables Lots of Read/Writes from data collection 24/7 Massive Table Scans for user reports (< 3 sec SLA) Large Joins (10+ Tables) with Nested Views Complex Queries (Aggregates, Where’s, FullText) FullText Search Indexes needed real-time updates Read/Write Contention Rapid Index fragmentation, Slow rebuilds DB Locks occurring (with no implicit Transactions) Blocking Transactions (both small/large tables)
  • 8. Outgrew SQL Server Enterprise 2008 “Free” Software from MSFT from BizSpark Tried everything with SQL Enterprise Significant SQL Performance Tuning Dirty Reads (nolock), Offline Index Rebuilds Replication / Clustering / Multi-Instance Problems Schema changes impossible with uptime requirements DBA tasks made system unavailable for hours/days Hardware / SQL DBA got very expensive Web users experienced annoying / unnecessary waits on blocked queries that were non-complex because of joins
  • 9. BuzzNumbers NOSQL Presentation Why NOSQL over SQL
  • 10. What is NOSQL New generation of “Databases” “Not Only SQL” - Mostly Open Source NOSQL Distributed database designed to deliver Distributed “Big Data” storage Distributed processing of queries/calculations NOSQL Examples include Google– BigTable Yahoo -Hadoop (30k+ Nodes) Facebook - Cassandra FourSquare - MongoDB
  • 11. Why NoSQL over SQL SQL Guaranteed consistency Transactions Schemas / DataTypes Joins / Foreign Keys TSQL/PL-SQL (Views, Procs) Scale Up (hardware) Many Benefits including Ease of use Many developers skilled in SQL Trusted for decades / Proven NoSQL Eventual Consistency No Transaction Support Key/Value Data (mostly) Flat Data (no joins) Key Lookups / MapReduce / Code Scale out (distributed) Many Benefits including Performance / Scale Lower license costs Solves Web2 problems
  • 12. Why NoSQL over SQL CAP Theorem Consistency Availability Partitioning Only 2 of 3 are Possible Consistency/Availability RDBMS Availability / Partitioning NOSQL Consistency / Partitioning Availability Issues (No one wants this)
  • 13. BuzzNumbers NOSQL Presentation Why MongoDB for NOSQL?
  • 16. Why Mongo Proven for multiple usage scenarios High performance (eventual consistency) Data stored in JSON (not only Key/Value) Supports Multiple Indexes (Anywhere in JSON) Easy to Install, Easy to Use(Linux/Windows) Easy to Scale for High Volume Writes (Sharding) Easy to Scale for High Volume Reads (Replica Sets) Automatic Failover and Redundancy (Replica Sets) REST Interface and Drivers for Ruby/.NET/Java/Etc Easy to Query via multiple techniques Key/Value, Mongo Query, JavaScript, MapReduce
  • 17. BuzzNumbers NOSQL Presentation Moving from SQL Schema to No-Schema
  • 18. BuzzNumbers NOSQL Presentation RDMBS Schema (Tables) Mongo Collection (JSON)
  • 19. BuzzNumbers NOSQL Presentation RDMBS Schema Mongo JSON Document
  • 20. BuzzNumbers NOSQL Presentation RDMBS Schema Mongo JSON Document One Document Per Website Per Day
  • 21. BuzzNumbers NOSQL Presentation RDMBS Schema Mongo JSON Document Pre-Aggregate SUM/COUNT/AVG Calculations using UPSERT
  • 22. BuzzNumbers NOSQL Presentation RDMBS Schema Mongo JSON Document Store Line Items with rich data as Nested Arrays . Use JavaScript or MapReduce to Query
  • 23. Basic SQL vs Mongo Syntax Select * from Clients db.clients.find() Select * from Clients where clientid = 1 db.clients.find({”ClientID” :1}) Insert into clients (ClientID, Name) Values (1, “ACME”) db.clients.ìnsert({”ClientID” :1,”Name”:”ACME” }) Create Table / Alter Table Just start inserting db.client.insert({JSON HERE}) Create Index db.clients.ensureIndex({“ClientID”:1, “Name”:1})
  • 24. Basic SQL vs Mongo Syntax Select * from Clients db.clients.find() Select * from Clients where clientid = 1 db.clients.find({”ClientID” :1}) Insert into clients (ClientID, Name) Values (“ACME”, 1) db.clients.ìnsert({”ClientID” :1,”Name”:”ACME” }) Create Table Just start inserting Create Index db.clients.ensureIndex({“ClientID”:1, “Name”:1})
  • 25. BuzzNumbers NOSQL Presentation Infinite Scale with .NET and NOSQL
  • 26. Infinite Scale with .NET Use .NET for Rapid Product Development Web Applications (IIS, ASP.NET, User Databases) Server Applications (Scraping, Apps, Services, Data) Scheduled Tasks / Backend Jobs Use Open Source for Infinite Scale on Linux MongoDB for Big Data Storage SOLR (distributed Lucene) for Full Text Indexing .NET Drivers Available for Mongo/SOLR
  • 27. Infinite Scale with .NET Cloud Hosting for Low Cost Scale Rackspace Cloud ($200 p/m per 4GB-RAM server) Windows and Ubuntu – Image/Clone/API support Zabbix Monitoring – notify when near capacity Amazon/Heroku/dotCloud alternates Tips to deliver fantastic performance at scale Indexes MUST fit in RAM (Disk Reads are Slow) SSD’s HardDisks are worth the extra price 4GB RAM / 160GB Disk seems to be optimum price/performance per node in distributed system
  • 28. BuzzNumbers NOSQL Presentation Why we stay with .NET?
  • 29. Why we stay with .NET Visual Studio best IDE!!! SQL Server great database for most Data Proven Tech Stack (low corporate risk) Lots of support (MSFT and Consultants) Large online community with code samples Many Open Source libraries ASP.NET MVC RAZOR is RAD Non-Complex Sysadmin for Windows Servers Drivers/Integration available for most OSS Projects Lots of Agile/Scrum/TDD/CI/Project Management tools Lots of smart .NET web developers & engineers
  • 31. Lessons Learned “Big Data” is not 100M records: but 1BN+ Don’t scale until you need to (Premature optimisation costs - big time) SQL RBDMS solves most problems but Scale up costs are prohibitive for startups so plan in advance when you might need to switch Mixing SQL for SmallData and NOSQL for BigData delivers both ease/speed of development and performance Mongo/SOLR works well to solve specific performance problems Not all problems are equal: optimiseeach solution per performance problem Don’t go NOSQL unless you absolutely need to Very early technology with lots of learning overhead, risks and production issues Skilled .NET/Mongo/SOLR engineers are very hard to find If client/data segmentation is possible, multiple SQL instances can deliver Ensure Indexes fit in Memory Spend time planning your schema in advances based on query requirements
  • 32. BuzzNumbers NOSQL Presentation Interested to learn more?
  • 33. Thanks for your time Speak with one of the Buzz Team tonight Join our Team? We’re Hiring! Web Developers Software Engineers UX / Web Designers Immediate and Future roles… Talk to us!

Editor's Notes

  1. {&quot;WebsiteID&quot;: 12345,&quot;DomainName&quot;:&quot;buzznumbershq.com&quot;,&quot;DateSummary&quot;: &quot;2011-09-22&quot;,&quot;UserIDSummary&quot;:[1,2,3,4,5,6,7,8]&quot;PageVisitSummary&quot;:{ &quot;Home&quot;: [&quot;VisitCount&quot;: 20000, &quot;Uniques&quot;:55], &quot;About&quot;: [&quot;VisitCount&quot;: 1667, &quot;Uniques&quot;:44], &quot;Products&quot;: [&quot;VisitCount&quot;: 1223, &quot;Uniques&quot;:33], &quot;Contact&quot;: [&quot;VisitCount&quot;: 50, &quot;Uniques&quot;:22]},&quot;PageVisits&quot;:{ &quot;PageVisit&quot;: [&quot;UserID&quot;:1, &quot;PageName&quot;:&quot;Home&quot;], &quot;PageVisit&quot;: [&quot;UserID&quot;:2, &quot;PageName&quot;:&quot;About&quot;], &quot;PageVisit&quot;: [&quot;UserID&quot;:3, &quot;PageName&quot;:&quot;Products&quot;], &quot;PageVisit&quot;: [&quot;UserID&quot;:4, &quot;PageName&quot;:&quot;Contact&quot;],etcetc } } Proven Tech Stack (low risk) Lots of smart web developers/engineers Visual Studio best IDE by Miles Lots of support (MSFT and Consultants) Large online community with code samples Many Open Source libraries ASP.NET MVC RAZOR is RAD Low levels of SysAdmin Drivers/Integration available for most OSS Lots of Agile/Scrum/TDD/CI/Project Management tools