no limits with nosql - meetupfiles.meetup.com/20434293/dragonspears_nolimitswithnosql.pdf ·...
TRANSCRIPT
No Limits with NoSQL
Introduction to the Technology that Powers
Today's Industry Leaders
Patrick EmmonsPresident
Presenter
Current:• President of DragonSpears
• Microsoft Certified Solutions Developer (MCSD)
Previous:• 15 years as Co-Founder & COO of web development firm
• Developer/Consultant: Ameritech, Motorola and Baker Robbins
Tame Your Beasts
Eliminate Barriers to Growth With Web and Mobile Apps
• Create scalability
• Differentiate from competitors
• Improve time and cost efficiency
• Deepen business insights
QUICK POLL
1. Completed multiple applications
2. Completed an application
3. Working on our first application
4. Here to learn how
What experience do you have with NoSQL technologies?
Agenda
What NoSQL Is (and isn’t)?
To NoSQL or Not to NoSQL?
How Do I Get Started?
Challenges
Best Practices Product Overview
Case Study
What Is NoSQL? Where did it come from?
1980
Relational Databases
1990
Object Databases
2000
NoSQL Data Stores
2010
Types of NoSQL Databases
Column-FamilyDocumentKey-Value Graph Multi-Model
Stored on column familiesGroups of Related DataColumns Not Identical
Good for blogging platforms, heavy write volume
Not great for systems that are just getting started
ExamplesCassandra / DataStax
Hbase
JSON or XML DocumentsSelf-describing & Hierarchial
Great for content management system
Not great for complex transactional systems
ExamplesMongoDBCouchbase
Get or Put Value for a KeyBlob of data
Very fast
Great for storing session information
Cannot query by data
ExamplesRedis
MemCachedRiak KV
Store entitiesDefine relationships
Great for social networks and spatial data.
Too slow in most cases for anything else
ExamplesNeo4j
OrientDBTitan
One back end, multiple data models
Reduces operational complexity from “polyglot persistence”
ExamplesMarkLogic
FoundationDB
Types of NoSQL Databases
Key-Value
Get or Put Value for a KeyBlob of data
Very fastThink hashtable
Great for storing session information
Cannot query by data
ExamplesRedis
MemCachedRiak KV
10001
10002
{“id”: 10001,“customer_id”: 8324,
“line-items”: [
{“product-id”: 5432, “quantity”: 5, “item-price”: 3.0, “total-price”: 15.0}
{“product-id”: 342, “quantity”: 2, “item-price”: 40.0, “total-price”:
80.0}…
“order-total”: 435.45,“order-date”: 2016-06-22,
“discount-code”: 234-56-7890
}
{“id”: 10002,“customer_id”: 23432,
“line-items”: [
{“product-id”: 12323, “quantity”: 4, “item-price”: 3.0, “total-price”: 12.0}
{“product-id”: 45433, “quantity”: 5, “item-price”: 40.0, “total-
price”: 200.0}…
]
“order-total”: 635.0,“order-date”: 2016-06-22
}
Types of NoSQL Databases
Document
JSON or XML DocumentsSelf-describing & Hierarchial
Great for content management system
Not great for complex transactional systems
ExamplesMongoDBCouchbase
{“id”: 10001,
“customer_id”: 8324,
“line-items”: [
{“product-id”: 5432, “quantity”: 5, “item-price”: 3.0, “total-price”: 15.0}
{“product-id”: 342, “quantity”: 2, “item-price”: 40.0, “total-price”: 80.0}
…
]
“order-total”: 435.45,
“order-date”: 2016-06-22,
“discount-code”: 234-56-7890
}
{“id”: 10002,
“customer_id”: 23432,
“line-items”: [
{“product-id”: 12323, “quantity”: 4, “item-price”: 3.0, “total-price”: 12.0}
{“product-id”: 45433, “quantity”: 5, “item-price”: 40.0, “total-price”: 200.0}
…
]
“order-total”: 635.0,
“order-date”: 2016-06-22
}
Types of NoSQL Databases
Column-Family
Stored on column familiesGroups of Related DataColumns Not Identical
Good for blogging platforms, heavy write volume
Not great for systems that are just getting started
ExamplesCassandra / DataStax
Hbase
Row Key: 10001
CustomerColumn“customer_id”: 8324
LineItemColumn[LineItems]
OrderColumn“order-total”: 435.45
“order-date”: 2016-06-22
DiscountColumn“discount-code”: 234-56-
7890
Row Key: 10002
CustomerColumn“customer_id”: 23432
LineItemColumn[LineItems]
OrderColumn“order-total”: 635.0
“order-date”: 2016-06-22
Graph
Types of NoSQL Databases
Store entitiesDefine relationships
Great for social networks and spatial data.
Too slow in most cases for anything else
ExamplesNeo4j
OrientDBTitan
Acme, Inc
Maria
Max
Stephanie
Databases
Howard
NoSQL
Employee
Employee
Employee
Interest
Magic Quadrant
for Operational Database Management Systems
https://www.gartner.com/doc/reprints?id=1-3JFMOQ2&ct=161006&st=sb
To NoSQL or Not To NoSQL
YESVariety of Data
NOData Warehouses
All the data can fit into one machine well
Challenges
Challenge #1: Getting Your Head Around It
Challenge #2: Security Concerns
Challenge #3: ACID transaction support
Challenge #4: Do I have the right people?
Challenge #5: Do I want to start a land war in Asia?
Challenge #6: Will the NoSQL vendor survive? Is it supported?
How Do I Get Started?
Start New Migrate a
portion
Full Rip and
Replace
SQL NoSQL
Best Practices
Aggregate Versus Normalized
Consider the Data Model
Make Security Part of Your Decision Making Process
TCO - Free Puppy Syndrome
Product Overview
MarkLogic is an Enterprise NoSQL DBMS for JSON, XML, RDF and Geospatial Data
Document Store
Native XML DBMS
RDF Store
Search Engine
Application Server (RESTful Services)
Product Overview
Additional Features
Bitemporal
Semantics
Server Side JavaScript
ACID Transactions
Government Grade Security
Anne
Maureen
John
hasMother
hasFather
Case Study
Document Search and Retrieval Application
Database
Business Layer
Client Layer
Client #1
Database
Business Layer
Client Layer
Client #2
Database
Business Layer
Client Layer
Client #3
Database
Business Layer
Client Layer
Client N
Case Study
Document Search and Retrieval Application
Rich Query
Capability
Full-text
Search
Semantic
Search
Business Layer
Client Layer
Case Study
Industrial Internet of Things – Data Harmonization
Location 1
Database
Location N
…
Different LocationsIdentical Format
Acquired Company
Acquired Company
Acquired Company
Different CompaniesDifferent LocationsDifferent Formats
API
Flat Files
Summary
Resources
DB-Engineshttp://db-engines.com/en/ranking
NoSQL Databasehttp://nosql-database.org/
Take the 1-2-3 NoSQL Litmus Testhttp://www.dragonspears.com/blog/take-the-1-2-3-nosql-litmus-test
Get Better Data Integration, Security, and Manageability with MarkLogic 9http://www.dragonspears.com/blog/get-better-data-integration-security-and-manageability-with-marklogic-9
Q&A
Join Our Next Event!
Technology Executives Club Chicago
Agile Development & Business Process Management Roundtable Group
Upcoming Meeting
technologyexecutivesclub.com/sigs/events/agilechicago.php
09/28/2016
Developing an API Strategy: Increasing Efficiency & Engagement