SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
Ground Up
Syed Awase
0.NO SQL DATA STORES
SYED AWASE KHIRNI
© Syed Awase 2015-16 – MongoDB Ground Up 2
Outline
• Evolution and History of Database Management Systems
• Outline of various database types.
• Traditional Scalability
• Common Problems
• Non-traditional Databases
• Non-traditional DB characteristics
• Why NoSQL?
– Design Goals
• NoSQL vs RDBMS
• Choosing a NoSQL Solution
• Categories of NoSQL Database
© Syed Awase 2015-16 – MongoDB Ground Up 3
Database Design
© Syed Awase 2015-16 – MongoDB Ground Up 4
Database Management Systems
© Syed Awase 2015-16 – MongoDB Ground Up 5
Evolution and History
© Syed Awase 2015-16 – MongoDB Ground Up 6
NoSQL past and Present
© Syed Awase 2015-16 – MongoDB Ground Up 7
Hierarchical Databases
• Data organized in a tree
– A parent can have many children
– A child can have only one parent
• Records described by entity type
• 1:N (one-to-many) relationships
• Query by path navigation
• Examples
– File system
– LDAP
– Windows Registry and Active Directory
– XML documents and Xquery.
© Syed Awase 2015-16 – MongoDB Ground Up 8
Network Databases
• Data organized in graph(lattice0
– A parent can have many children
– A child can have many parents
• Bachmann diagrams
• Record types define properties
• Set types defined relationships
– Parent-child, (double) linked list..
• Query by graph navigation
• Examples
– CODASYL
© Syed Awase 2015-16 – MongoDB Ground Up 9
Relational Databases
• Data organized as tuples in relations
• Link between data tuples
– Primary and foreign keys
• Relational algebra
– Project, select, join
• Relational normal forms
• Declarative language
– Data definition, consistency, manipulation and querying
• Examples
– Oracle, Microsoft SQL Server, IBM DB2
– PostgreSQL, MySQL
© Syed Awase 2015-16 – MongoDB Ground Up 10
Relational Databases
• Relational model is very simple
– Only basic concepts – references need to be
simulated
– Restricted type system – no user-defined types
• Lack of semantic modeling
– Complex data, versioning, roles
• Little support of data and schema evolution
• Object-relational impedance mismatch.
© Syed Awase 2015-16 – MongoDB Ground Up 11
RDBMS Problem
• Design for ACID
– Atomicity, Consistency, Isolation and Durability
• Hard to Scale
• Availability?
• Flexibility
© Syed Awase 2015-16 – MongoDB Ground Up 12
Traditional Scalability
• Scale-up
– Memory and hardware has limitations
• Scale-out
– Scaling reads
• Cache is the King
– Query cache, Memcache, OLAP
• Prefetching
• Replication
• Scaling Writes
– Redundant disk arrays, RAID
– Sharding
© Syed Awase 2015-16 – MongoDB Ground Up 13
Common Problems
• Relation model is heavy
– Parsing
– Locking
– Logging
– Buffer pool and thread
• Not every case can work within a single node SMP
• Sharding does not solve all problems
– Cross shard or join between shards
– Need to update across multiple shards within a transaction.
– Shard failure
– Online Schema changes without taking the shard offiline
– Add or replace shards in-line.
© Syed Awase 2015-16 – MongoDB Ground Up 14
Lack of Semantic Modeling
• All advantages of the object-oriented paradigm
which enable to produce models of an application
domain that capture more of its aspects, e.g. using
– Inheritance
– Relationships
• Inheritance and relationships can be mapped to the
relational model, however, they result in a complex
database schema. Such complex schemata are
difficult to develop, maintain and decrease runtime
performance.
© Syed Awase 2015-16 – MongoDB Ground Up 15
Object-Relational Impedance
Mismatch
•Object-oriented application development and
relational data management results in clash of
two incompatible models.
•Code to map between models is considerable
overhead, costly and hard to maintain.
© Syed Awase 2015-16 – MongoDB Ground Up 16
Database Evolution
• Object-relational mapping (ORM) layers don’t really
help
– Writing manual code for ORM poses problem
– Evolution code can usually not be generated automatically
• Automatic evolution is not possible for complex
cases
– Semantic changes
– Certain type changes ( String to Person)
– Ambiguity of attribute add-remove vs. rename
– Class hierarchy changes
© Syed Awase 2015-16 – MongoDB Ground Up 17
Object-Oriented Databases
• Data represented as objects
– Object Identity
– Attributes and methods
– Reference, relationships, associations
• Extensible type hierarchy
– User-defined types, abstract data types
– single or multiple inheritance
– Overloading, overriding, late binding
• Declarative language for ad hoc purposes
• Binding for Object-oriented programming language
© Syed Awase 2015-16 – MongoDB Ground Up 18
Object-Relational Database
• Relational model extended
– Nested relations
– References
– Sets
– Row types, abstract types
– Functions
• Declarative language extended
– Computationally complete
• Fundamental impedance mismatch remains
© Syed Awase 2015-16 – MongoDB Ground Up 19
Non-traditional Databases
• XML Database
• Graph Databases
• Document Databases
• Key-value Stores
• Column Store
• Others
– Geospatial
– File System
NoSQL
Non-Relational, Web-
scale database
First used by Carlo Strozzi in 1998
Reintroduced by Eric Evan in 2009
© Syed Awase 2015-16 – MongoDB Ground Up 20
Non-traditional Database
Characteristics
• Non-relational in Nature
• Distributed
• Horizontal Scalability
• Schema-less/Schema-free
• Eventual Consistency
© Syed Awase 2015-16 – MongoDB Ground Up 21
Gartner Hype Cycle
NoSQL
© Syed Awase 2015-16 – MongoDB Ground Up 22
NO-SQL
Next Generation Databases mostly addressing some of the points: being
non-relational, distributed, open-source and horizontal scalable.. Schema-
free, easy replication support, simple API, eventually consistent”
© Syed Awase 2015-16 – MongoDB Ground Up
-nosql-database.org
• Non-Relational
• Distributed
• Open-Source
• Horizontally Scalable
• Schema-Free
• Replication Support
• Eventually Consistent
Classification
• Wide Column Store/Column Families
• Document Store
• Key value/Tuple Store
• Graph Database
• Multimodel Database
• Object Database
• Grid and Cloud Database Solutions
• XML Databases
• Multidimensional Databases
• Multivalue databases
• Time Series/Streaming Databases
•Scientific and Specialized DB
23
Why NoSQL?
© Syed Awase 2015-16 – MongoDB Ground Up 24
Why NoSQL?
© Syed Awase 2015-16 – MongoDB Ground Up 25
Why NoSQL?
Sharding: A database shard is a horizontal partition in a database or search
engine. Each individual partition is referred to as a shard or database shard.
© Syed Awase 2015-16 – MongoDB Ground Up 26
Why NoSQL?
DESIGN GOALS
• Semi Structured >>
• Big Data >>
• Real-time >>
• Ubiquity >>
• Schema-Free
• Scalable reads/writes
– Horizontal Scalability
• To increase the no-of
machines but maintaining
proportional performance.
– Vertical Scalability
• To add more resources to
your single machine to
optimize performance.
• High-performance
• High-availability
• Reliability, Fault tolerant.
© Syed Awase 2015-16 – MongoDB Ground Up 27
NoSQL vs RDBMS
NoSQL RDBMS
• Schema-free
• Scalable writes/reads
• Auto high-availability
• Limited queries
• Eventual Consistency –
applies to most NoSQL
systems
• BASE :
Basic Availability, Soft
state, Eventual consistency
• Relational Schema
• Scalable reads
• Custom high-availability
• Flexible
• Consistent
• ACID : Atomic, Consistent,
Isolated and Durable.
© Syed Awase 2015-16 – MongoDB Ground Up 28
RDBMS vs NoSQL
• Traditional distributed data management solutions focus on
ACID semantics
– Atomicity
– Consistency
– Isolation
– Durability
• Modern Web-scale data management focuses on
– Basic Availability
– Soft-state
– Eventual Consistent
– CAP (Consistency, Availability, Partition and Tolerance)
© Syed Awase 2015-16 – MongoDB Ground Up 29
ACID
• Atomicity : All of the operations in the transaction
will complete or none will
• Consistency: the database will be in a consistent
state when the transaction begins and ends.
• Isolation: the transaction will behave as if it is the
only operation being performed upon the database.
(No interference of transaction).
• Durability : Upon completion of the transaction, the
operation will not be reversed.
© Syed Awase 2015-16 – MongoDB Ground Up 30
CAP• Consistency: No
contradiction
b/w data.
• Availability: Every
operation must
terminate in an
intended
response.
• Partition
tolerance:
Operations will
complete, even If
individual
components are
unavailable.
• NoSQL are based
on CAP.
© Syed Awase 2015-16 – MongoDB Ground Up 31
ACID vs BASE
ACID BASE
• Strong consistency
• Isolation
• Focus on “commit”
• Nested Transactions
• Availability?
• Pessimistic/Conservative
• Difficult evolution (e.g.
schema)
• Weak consistency
• Availability first
• Best effort
• Approximate answers (OK)
• Optimistic (aggressive)
• Fast and simple
• Easier evolution
© Syed Awase 2015-16 – MongoDB Ground Up 32
Who’s using NoSQL?
© Syed Awase 2015-16 – MongoDB Ground Up 33
Who’s using NoSQL?
© Syed Awase 2015-16 – MongoDB Ground Up 34
Growth
© Syed Awase 2015-16 – MongoDB Ground Up 35
NoSQL Use Cases
• Consumer Use Cases
• Facebook
• Twitter
• NetFlix
• Enterprise Use Cases
• Rackspace
• TrendMicro
• NewsCred
Facebook
•Hbase – Facebook messages
•Scribe- Real-time click logs
•Hive- SQL Queries -> MapReduce jobs
•Hadoop
•Web analytics warehouse
•Distributed datastore
•MySQL backups
© Syed Awase 2015-16 – MongoDB Ground Up 36
Choosing a NoSQL Solution
© Syed Awase 2015-16 – MongoDB Ground Up 37
Consistent, Available (CA)
• CA- systems have trouble with partitions and
deal with it with replication
• Examples
– MySQL (relational)
– AsterData (relational)
– Greenplum(relational)
– Vertica (Column)
© Syed Awase 2015-16 – MongoDB Ground Up 38
Availability, Partition-Tolerant (AP)
• AP-systems have trouble with consistency, achieve
“eventual consistency” through replication.
• Examples
– Cassandra(column/tabular)
– Dynamo (Key-value)
– Voldemort (Key-value)
– Tokyo Cabinet (Key-value)
– CouchDB(document)
– SimpleDB(document)
– Riak(document)
© Syed Awase 2015-16 – MongoDB Ground Up 39
Consistent, Partition-Tolerant (CP)
• CP-systems have trouble with availability while keep
data consistent across partitioned nodes.
• Examples
– MongoDB(document)
– BigTable(Column/tabular)
– HyperTable(Column/tabular)
– Hbase (Column/tabular)
– Redis(key-value)
– Scalaris(key-value)
– MemcacheDB (Key-value)
© Syed Awase 2015-16 – MongoDB Ground Up 40
Categories of NoSQL databases
1) Key Value stores
 Don’t have any schema
 Fast lookups facility
 Can be use in a forum software where user’s statistic and
messages are recorded. User’s id will serve as a key and will
retrieve a string that represents all the relevant info of the
user. And a background process recalculates the information
and writes to the store independently after fixed interval of
time.
 Example
 Redis : Redis is an open source, advanced key-value store. It is
often referred to as a data structure server since keys (data
types) can contain strings, hashes, lists, sets and sorted sets.
© Syed Awase 2015-16 – MongoDB Ground Up 41
Categories (cont…)
 API: Tons of languages, Written in: C,
 Concurrency: in memory and saves asynchronous disk after a
defined time.
2) Document databases
 web application
 tolerance of incomplete data
 low query performance
 no standard query syntax
 Used when we don’t have complete data about all the entities
of database but we still need to create database.
Example
CouchDB: API: JSON, Protocol: REST, Query Method:
MapReduceR of JavaScript Funcs, Replication: Master Master,
Written in: Erlang.
© Syed Awase 2015-16 – MongoDB Ground Up 42
Categories (cont…)
 MongoDB: API: BSON, Protocol: lots of langs, Query Method:
dynamic object-based language, Replication: Master Slave, Written
in: C++.
3) Graph databases
 Social networking
 graph algorithms, connectedness, degree of relationships
 has to traverse the entire graph to get definitive answer.
 not easy to cluster.
 used in a situation where we want to analyze the on going
trends and take decision on the basis of those trends.
© Syed Awase 2015-16 – MongoDB Ground Up 43
Categories (cont…)
 Example:
Neo4J: API: lots of langs, Protocol: Java embedded / REST,
Query Method: SparQL, nativeJavaAPI, JRuby, Replication:
typical MySQL style master/slave, Written in: Java,
Concurrency: non-block reads, writes locks involved
nodes/relationships until commit, Misc: ACID possible
4) XML databases
 Publishing
 mature search technologies
 schema validation
 re-writing is easier than updating
© Syed Awase 2015-16 – MongoDB Ground Up 44
Categories (cont…)
 Used in a situation where one wants to produce documents
of articles etc from a huge amount of documents but the
format of those article doesn’t allow the publisher to perform
search on it. Those articles are converted into xml database
and wrap it in a readable-URL web service for the document
production systems.
5) Distributed Peer Stores
 distributed file systems
 Fast lookups
 Good distributed storage of data
 Very low level API
 Best for voting system. In such a situation one
store/user and one store/piece of content is created. The
user store will hold all the votes they have ever casted
and the content will store a copy of the content on
which vote was casted.
© Syed Awase 2015-16 – MongoDB Ground Up 45
Categories (cont…)
Example
Cassandra: API: many Thrift languages, Query Method:
MapReduce, Written in: Java, Concurrency: eventually
consistent , Misc: like "Big-Table on Amazon Dynamo
alike", initiated by Facebook.
© Syed Awase 2015-16 – MongoDB Ground Up 46
Object Databases
• Versant
• Db40
• Objectivity
• Startcounter
• Perst
• VelocityDB
• HSS Database
• ZODB
• Magma
• NEO
• Ninja Database
• PicoLisp
• Acid-state
• ObjectDB
• Siaqodb
• Morantex
• EyeDB
• FrameD
© Syed Awase 2015-16 – MongoDB Ground Up 47
Key-Value Stores
• HASH
• Memcached
• DynamoDB
• Redis
• Riak
• Tokyo Cabinet
• Azure Table Storage
• Riak
• Aerospike
• FoundationDB
• LevelDB
• BerkeleyDB
• GenieDB
• BangDB
• Chordless
• Allegro-C
• nessDB
• HyperDex
• TokyoCabinet/Tyrant
• Scalien
• Voldemort
• Dynomite
• KAI
• MemcahcheDB
• Faircom C-Tree
• LSM
• KitaroDB
• HamsterDB
• STSdb
• Tarantool/Box
• MaxTable
• Quasardb
• Pincaster
• RaptorDB
• TIBCO Active Spaces
• Sophia
© Syed Awase 2015-16 – MongoDB Ground Up 48
XML Database
• EMC Documentum xDB
• eXist
• Sedna
• BaseX
• Qizx
• Berkeley DB XML
© Syed Awase 2015-16 – MongoDB Ground Up 49
Multidimensional databases
• Globals
• Intersystems Cache
• GT.M
• SciDB
• MiniM DB
• Rasdaman
© Syed Awase 2015-16 – MongoDB Ground Up 50
Document Store (Semi-Structured)
• IBM Lotus
• MongoDB
• CouchDB
• MongoDB
• ElasticSearch
• RethinkDB
• RavenDB
• MarkLogic Server
• Clusterpoint Server
• ThruDB
• Terrastore
• JasDB
• RaptorDB
• Djondb
• EJDB
• Amisa Server
• SisoDB
• SDB
• NoSQL embedded Db
• Document Stores
•Supports complex data model
than Key Value Pairs
•Good at handling content
management, session, profile
data
•Multi index support
•Dynamic schemas, Nested
schemas
•Auto distributed, eventual
consistency
•MVCC (CouchDB) or automic
(MongoDB)
• MongoDB, SimpleDB: widely
adopted in this space
• Use Case: Search by complex
patterns & CRUD apps
© Syed Awase 2015-16 – MongoDB Ground Up 51
Column-Oriented Stores
• Semi-Structured
• BigTable(inspiration
Source)
• Hbase
• Apache Cassandra
• Hypertable
• Accumulo
• Amazon Simple DB
• Cloudata
• Cloudera
• HPCC
• Stratosphere
Hbase (Apache), Cassanda (Facebook)
and HyperTable (Bidu)
Hbase – CA
Cassandra – AP
Model consists of rows and columns
Scalability: Splitting of both rows and
columns
Rows are split across nodes using
primary key, range
Columns are distributed using groups
Horizonal and vertical partitioning can
be used simultaneous
Extension of document store
HBase uses HDFS; Pig, Hive, Cascading
can help
Use case: Grouping of frequently used and
un-used over data centers / stream of
writes
© Syed Awase 2015-16 – MongoDB Ground Up 52
Graph Database
• InfoGrid
• Neo4j
• InfiniteGraph
• DEX
• Titan
• InforGrid
• HyperGraphDB
• GraphBase
• Trinity
• AllegroGraph
• BrightstarDB
• BigData
• Meronymy
• WhiteDB
• Openlink Virtuoso
• VertexDB
• FlockDB
Social Graph
Relationship between entities
Data modeling on social networks
Common Use Cases
List of friends
Recommendation system
Following
Followers
Common Connections
FAN IN/OUT
© Syed Awase 2015-16 – MongoDB Ground Up 53
Multimodel databases
• ArangoDB
• OrientDB
• Datanomic
• FatDB
• AlchemyDB
• CortexDB
© Syed Awase 2015-16 – MongoDB Ground Up 54
NoSQL (Not ONLY SQL)
• Fits very well for volatile data
• High read or write throughput.
• Automatic horizontal scalability (Consistent Hashing)
• Simple to implement, no investment for developers to design
and implement relational model
• Application logic defines object model
• Support of MVCC (MultiVersion Concurrency Control) in some
form
• Compaction and un-compaction happens at top tier
• In-memory or disk based or combination
© Syed Awase 2015-16 – MongoDB Ground Up 55
NoSQL - Disadvantages
• Packing and Un-packing of each key
• Lack of relation from one key to another
• Need whole value from the key; to read/write any practical
information.
• No Security or authentication
• Data store is merely a storage layer, can’t be used for
– Analytics
– Reporting
– Aggregation
– Ordered Values
© Syed Awase 2015-16 – MongoDB Ground Up 56
Some Popular NoSQL Databases
© Syed Awase 2015-16 – MongoDB Ground Up 57
MongoDB 3.2
• Written in: C++
• Main point: Retains some friendly properties
of SQL. (Query, index)
• License: AGPL (Drivers: Apache)
• Protocol: Custom, binary (BSON)
• Master/slave replication (auto failover with
replica sets)
• Sharding built-in
• Queries are javascript expressions
• Run arbitrary javascript functions server-side
• Better update-in-place than CouchDB
• Uses memory mapped files for data storage
• Performance over features
• Journaling (with --journal) is best turned on
• On 32bit systems, limited to ~2.5Gb
• An empty database takes up 192Mb
• GridFS to store big data + metadata (not
actually an FS)
• Has geospatial indexing
• Data center aware
Best used: If you need dynamic queries. If
you prefer to define indexes, not
map/reduce functions. If you need good
performance on a big DB. If you wanted
CouchDB, but your data changes too
much, filling up disks.
For example: For most things that you
would do with MySQL or PostgreSQL, but
having predefined columns really holds you
back.
© Syed Awase 2015-16 – MongoDB Ground Up 58
Riak 1.2v
• Written in: Erlang & C, some JavaScript
• Main point: Fault tolerance
• License: Apache
• Protocol: HTTP/REST or custom binary
• Stores blobs
• Tunable trade-offs for distribution and
replication
• Pre- and post-commit hooks in JavaScript or
Erlang, for validation and security.
• Map/reduce in JavaScript or Erlang
• Links & link walking: use it as a graph database
• Secondary indices: but only one at once
• Large object support (Luwak)
• Comes in "open source" and "enterprise"
editions
• Full-text search, indexing, querying with Riak
Search
• In the process of migrating the storing backend
from "Bitcask" to Google's "LevelDB"
• Masterless multi-site replication replication and
SNMP monitoring are commercially licensed
Best used: If you want something
Dynamo-like data storage, but no
way you're gonna deal with the bloat
and complexity. If you need very
good single-site scalability,
availability and fault-tolerance, but
you're ready to pay for multi-site
replication.
For example: Point-of-sales data
collection. Factory control systems.
Places where even seconds of
downtime hurt. Could be used as a
well-update-able web server.
© Syed Awase 2015-16 – MongoDB Ground Up 59
CouchDB 1.2v
• Written in: Erlang
• Main point: DB consistency, ease of use
• License: Apache
• Protocol: HTTP/REST
• Bi-directional (!) replication,
• continuous or ad-hoc,
• with conflict detection,
• thus, master-master replication. (!)
• MVCC - write operations do not block reads
• Previous versions of documents are available
• Crash-only (reliable) design
• Needs compacting from time to time
• Views: embedded map/reduce
• Formatting views: lists & shows
• Server-side document validation possible
• Authentication possible
• Real-time updates via '_changes' (!)
• Attachment handling
• thus, CouchApps (standalone js apps)
Best used: For accumulating,
occasionally changing data, on which
pre-defined queries are to be run.
Places where versioning is
important.
For example: CRM, CMS systems.
Master-master replication is an
especially interesting feature,
allowing easy multi-site deployments.
© Syed Awase 2015-16 – MongoDB Ground Up 60
Redis 2.8v
• Written in: C
• Main point: Blazing fast
• License: BSD
• Protocol: Telnet-like, binary safe
• Disk-backed in-memory database,
• Dataset size limited to computer RAM (but can span
multiple machines' RAM with clustering)
• Master-slave replication, automatic failover
• Simple values or data structures by keys
• but complex operations like ZREVRANGEBYSCORE.
• INCR & co (good for rate limiting or statistics)
• Bit operations (for example to implement bloom
filters)
• Has sets (also union/diff/inter)
• Has lists (also a queue; blocking pop)
• Has hashes (objects of multiple fields)
• Sorted sets (high score table, good for range queries)
• Lua scripting capabilities (!)
• Has transactions (!)
• Values can be set to expire (as in a cache)
• Pub/Sub lets one implement messaging
Best used: For rapidly
changing data with a
foreseeable database size
(should fit mostly in
memory).
For example: Stock
prices. Analytics. Real-
time data collection. Real-
time communication. And
wherever you used
memcached before
© Syed Awase 2015-16 – MongoDB Ground Up 61

Weitere ähnliche Inhalte

Was ist angesagt?

Sql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explainedSql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explainedSatya Pal
 
SQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data ArchitectureSQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data ArchitectureVenu Anuganti
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture PatternsMaynooth University
 
SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?Venu Anuganti
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesMaynooth University
 
Demystfying nosql databases
Demystfying nosql databasesDemystfying nosql databases
Demystfying nosql databasesMike King
 
NoSql - mayank singh
NoSql - mayank singhNoSql - mayank singh
NoSql - mayank singhMayank Singh
 
The Future of Distributed Databases
The Future of Distributed DatabasesThe Future of Distributed Databases
The Future of Distributed DatabasesNuoDB
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.Denis Reznik
 
Introduction to NuoDB
Introduction to NuoDBIntroduction to NuoDB
Introduction to NuoDBSandun Perera
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceWSO2
 
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseSQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseAnita Luthra
 
Lviv EDGE 2 - NoSQL
Lviv EDGE 2 - NoSQLLviv EDGE 2 - NoSQL
Lviv EDGE 2 - NoSQLzenyk
 
HPTS 2011: The NoSQL Ecosystem
HPTS 2011: The NoSQL EcosystemHPTS 2011: The NoSQL Ecosystem
HPTS 2011: The NoSQL EcosystemAdam Marcus
 
To SQL or NoSQL, that is the question
To SQL or NoSQL, that is the questionTo SQL or NoSQL, that is the question
To SQL or NoSQL, that is the questionKrishnakumar S
 
NoSQL-Database-Concepts
NoSQL-Database-ConceptsNoSQL-Database-Concepts
NoSQL-Database-ConceptsBhaskar Gunda
 
No sql landscape_nosqltips
No sql landscape_nosqltipsNo sql landscape_nosqltips
No sql landscape_nosqltipsimarcticblue
 

Was ist angesagt? (20)

Sql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explainedSql vs NO-SQL database differences explained
Sql vs NO-SQL database differences explained
 
Sql vs nosql
Sql vs nosqlSql vs nosql
Sql vs nosql
 
SQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data ArchitectureSQL, NoSQL, BigData in Data Architecture
SQL, NoSQL, BigData in Data Architecture
 
NoSQL Data Architecture Patterns
NoSQL Data ArchitecturePatternsNoSQL Data ArchitecturePatterns
NoSQL Data Architecture Patterns
 
SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?SQL/NoSQL How to choose ?
SQL/NoSQL How to choose ?
 
Chapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choicesChapter1: NoSQL: It’s about making intelligent choices
Chapter1: NoSQL: It’s about making intelligent choices
 
Demystfying nosql databases
Demystfying nosql databasesDemystfying nosql databases
Demystfying nosql databases
 
NoSql - mayank singh
NoSql - mayank singhNoSql - mayank singh
NoSql - mayank singh
 
The Future of Distributed Databases
The Future of Distributed DatabasesThe Future of Distributed Databases
The Future of Distributed Databases
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.
 
Introduction to NuoDB
Introduction to NuoDBIntroduction to NuoDB
Introduction to NuoDB
 
NoSQL Consepts
NoSQL ConseptsNoSQL Consepts
NoSQL Consepts
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a Service
 
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseSQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
 
Lviv EDGE 2 - NoSQL
Lviv EDGE 2 - NoSQLLviv EDGE 2 - NoSQL
Lviv EDGE 2 - NoSQL
 
HPTS 2011: The NoSQL Ecosystem
HPTS 2011: The NoSQL EcosystemHPTS 2011: The NoSQL Ecosystem
HPTS 2011: The NoSQL Ecosystem
 
To SQL or NoSQL, that is the question
To SQL or NoSQL, that is the questionTo SQL or NoSQL, that is the question
To SQL or NoSQL, that is the question
 
NoSQL-Database-Concepts
NoSQL-Database-ConceptsNoSQL-Database-Concepts
NoSQL-Database-Concepts
 
Nosql data models
Nosql data modelsNosql data models
Nosql data models
 
No sql landscape_nosqltips
No sql landscape_nosqltipsNo sql landscape_nosqltips
No sql landscape_nosqltips
 

Andere mochten auch

Geospatial Big Data - Foss4gNA
Geospatial Big Data - Foss4gNAGeospatial Big Data - Foss4gNA
Geospatial Big Data - Foss4gNAnormanbarker
 
MongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseMongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseRuben Inoto Soto
 
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...DataStax Academy
 
An Intro to NoSQL Databases
An Intro to NoSQL DatabasesAn Intro to NoSQL Databases
An Intro to NoSQL DatabasesRajith Pemabandu
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2Fabio Fumarola
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2Fabio Fumarola
 
Cassandra NoSQL Tutorial
Cassandra NoSQL TutorialCassandra NoSQL Tutorial
Cassandra NoSQL TutorialMichelle Darling
 

Andere mochten auch (7)

Geospatial Big Data - Foss4gNA
Geospatial Big Data - Foss4gNAGeospatial Big Data - Foss4gNA
Geospatial Big Data - Foss4gNA
 
MongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseMongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL Database
 
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...
C* Summit 2013: Real-time Analytics using Cassandra, Spark and Shark by Evan ...
 
An Intro to NoSQL Databases
An Intro to NoSQL DatabasesAn Intro to NoSQL Databases
An Intro to NoSQL Databases
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
 
Cassandra NoSQL Tutorial
Cassandra NoSQL TutorialCassandra NoSQL Tutorial
Cassandra NoSQL Tutorial
 

Ähnlich wie Mongo db groundup-0-nosql-intro-syedawasekhirni

introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Databasenehabsairam
 
Introduction to NoSQL and MongoDB
Introduction to NoSQL and MongoDBIntroduction to NoSQL and MongoDB
Introduction to NoSQL and MongoDBAhmed Farag
 
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
 
NoSql Brownbag
NoSql BrownbagNoSql Brownbag
NoSql BrownbagSandeep Kumar
 
Does it Mix? Cassandra and RDBMS working together!
Does it Mix? Cassandra and RDBMS working together!Does it Mix? Cassandra and RDBMS working together!
Does it Mix? Cassandra and RDBMS working together!Carlos Juzarte Rolo
 
Why you really want SQL in a Real-Time Enterprise Environment
Why you really want SQL in a Real-Time Enterprise EnvironmentWhy you really want SQL in a Real-Time Enterprise Environment
Why you really want SQL in a Real-Time Enterprise EnvironmentVoltDB
 
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 - introduction on nosql and sql vs nosql comparison
nosql - introduction on nosql and sql vs nosql comparisonnosql - introduction on nosql and sql vs nosql comparison
nosql - introduction on nosql and sql vs nosql comparisonanupavisathya2002
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLDimitar Danailov
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...Qian Lin
 
NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabasesAdi Challa
 
SQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxSQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxGarimaHasija1
 
NoSQL and MongoDB
NoSQL and MongoDBNoSQL and MongoDB
NoSQL and MongoDBRajesh Menon
 
Oracle Week 2016 - Modern Data Architecture
Oracle Week 2016 - Modern Data ArchitectureOracle Week 2016 - Modern Data Architecture
Oracle Week 2016 - Modern Data ArchitectureArthur Gimpel
 
NOsql Presentation.pdf
NOsql Presentation.pdfNOsql Presentation.pdf
NOsql Presentation.pdfAkshayDwivedi31
 
NoSQL - Not Only SQL
NoSQL - Not Only SQLNoSQL - Not Only SQL
NoSQL - Not Only SQLEasyData
 

Ähnlich wie Mongo db groundup-0-nosql-intro-syedawasekhirni (20)

introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Database
 
NoSQL
NoSQLNoSQL
NoSQL
 
Introduction to NoSQL and MongoDB
Introduction to NoSQL and MongoDBIntroduction to NoSQL and MongoDB
Introduction to NoSQL and MongoDB
 
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)
 
NoSql Brownbag
NoSql BrownbagNoSql Brownbag
NoSql Brownbag
 
Does it Mix? Cassandra and RDBMS working together!
Does it Mix? Cassandra and RDBMS working together!Does it Mix? Cassandra and RDBMS working together!
Does it Mix? Cassandra and RDBMS working together!
 
Why you really want SQL in a Real-Time Enterprise Environment
Why you really want SQL in a Real-Time Enterprise EnvironmentWhy you really want SQL in a Real-Time Enterprise Environment
Why you really want SQL in a Real-Time Enterprise Environment
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
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
 
Why nosql?
Why nosql?Why nosql?
Why nosql?
 
nosql - introduction on nosql and sql vs nosql comparison
nosql - introduction on nosql and sql vs nosql comparisonnosql - introduction on nosql and sql vs nosql comparison
nosql - introduction on nosql and sql vs nosql comparison
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
 
NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabases
 
SQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxSQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptx
 
Nosql primer
Nosql primerNosql primer
Nosql primer
 
NoSQL and MongoDB
NoSQL and MongoDBNoSQL and MongoDB
NoSQL and MongoDB
 
Oracle Week 2016 - Modern Data Architecture
Oracle Week 2016 - Modern Data ArchitectureOracle Week 2016 - Modern Data Architecture
Oracle Week 2016 - Modern Data Architecture
 
NOsql Presentation.pdf
NOsql Presentation.pdfNOsql Presentation.pdf
NOsql Presentation.pdf
 
NoSQL - Not Only SQL
NoSQL - Not Only SQLNoSQL - Not Only SQL
NoSQL - Not Only SQL
 

Mehr von Dr. Awase Khirni Syed

Mehr von Dr. Awase Khirni Syed (7)

Require js training
Require js trainingRequire js training
Require js training
 
Powershell training material
Powershell training materialPowershell training material
Powershell training material
 
Es2015 training material-syedawase
Es2015 training material-syedawaseEs2015 training material-syedawase
Es2015 training material-syedawase
 
R programming groundup-basic-section-i
R programming groundup-basic-section-iR programming groundup-basic-section-i
R programming groundup-basic-section-i
 
Knockout js
Knockout jsKnockout js
Knockout js
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENT
 
SycliQ-AgribusinessInfographik001
SycliQ-AgribusinessInfographik001SycliQ-AgribusinessInfographik001
SycliQ-AgribusinessInfographik001
 

KĂźrzlich hochgeladen

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

KĂźrzlich hochgeladen (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

Mongo db groundup-0-nosql-intro-syedawasekhirni

  • 2. 0.NO SQL DATA STORES SYED AWASE KHIRNI Š Syed Awase 2015-16 – MongoDB Ground Up 2
  • 3. Outline • Evolution and History of Database Management Systems • Outline of various database types. • Traditional Scalability • Common Problems • Non-traditional Databases • Non-traditional DB characteristics • Why NoSQL? – Design Goals • NoSQL vs RDBMS • Choosing a NoSQL Solution • Categories of NoSQL Database Š Syed Awase 2015-16 – MongoDB Ground Up 3
  • 4. Database Design Š Syed Awase 2015-16 – MongoDB Ground Up 4
  • 5. Database Management Systems Š Syed Awase 2015-16 – MongoDB Ground Up 5
  • 6. Evolution and History Š Syed Awase 2015-16 – MongoDB Ground Up 6
  • 7. NoSQL past and Present Š Syed Awase 2015-16 – MongoDB Ground Up 7
  • 8. Hierarchical Databases • Data organized in a tree – A parent can have many children – A child can have only one parent • Records described by entity type • 1:N (one-to-many) relationships • Query by path navigation • Examples – File system – LDAP – Windows Registry and Active Directory – XML documents and Xquery. Š Syed Awase 2015-16 – MongoDB Ground Up 8
  • 9. Network Databases • Data organized in graph(lattice0 – A parent can have many children – A child can have many parents • Bachmann diagrams • Record types define properties • Set types defined relationships – Parent-child, (double) linked list.. • Query by graph navigation • Examples – CODASYL Š Syed Awase 2015-16 – MongoDB Ground Up 9
  • 10. Relational Databases • Data organized as tuples in relations • Link between data tuples – Primary and foreign keys • Relational algebra – Project, select, join • Relational normal forms • Declarative language – Data definition, consistency, manipulation and querying • Examples – Oracle, Microsoft SQL Server, IBM DB2 – PostgreSQL, MySQL Š Syed Awase 2015-16 – MongoDB Ground Up 10
  • 11. Relational Databases • Relational model is very simple – Only basic concepts – references need to be simulated – Restricted type system – no user-defined types • Lack of semantic modeling – Complex data, versioning, roles • Little support of data and schema evolution • Object-relational impedance mismatch. Š Syed Awase 2015-16 – MongoDB Ground Up 11
  • 12. RDBMS Problem • Design for ACID – Atomicity, Consistency, Isolation and Durability • Hard to Scale • Availability? • Flexibility Š Syed Awase 2015-16 – MongoDB Ground Up 12
  • 13. Traditional Scalability • Scale-up – Memory and hardware has limitations • Scale-out – Scaling reads • Cache is the King – Query cache, Memcache, OLAP • Prefetching • Replication • Scaling Writes – Redundant disk arrays, RAID – Sharding Š Syed Awase 2015-16 – MongoDB Ground Up 13
  • 14. Common Problems • Relation model is heavy – Parsing – Locking – Logging – Buffer pool and thread • Not every case can work within a single node SMP • Sharding does not solve all problems – Cross shard or join between shards – Need to update across multiple shards within a transaction. – Shard failure – Online Schema changes without taking the shard offiline – Add or replace shards in-line. Š Syed Awase 2015-16 – MongoDB Ground Up 14
  • 15. Lack of Semantic Modeling • All advantages of the object-oriented paradigm which enable to produce models of an application domain that capture more of its aspects, e.g. using – Inheritance – Relationships • Inheritance and relationships can be mapped to the relational model, however, they result in a complex database schema. Such complex schemata are difficult to develop, maintain and decrease runtime performance. Š Syed Awase 2015-16 – MongoDB Ground Up 15
  • 16. Object-Relational Impedance Mismatch •Object-oriented application development and relational data management results in clash of two incompatible models. •Code to map between models is considerable overhead, costly and hard to maintain. Š Syed Awase 2015-16 – MongoDB Ground Up 16
  • 17. Database Evolution • Object-relational mapping (ORM) layers don’t really help – Writing manual code for ORM poses problem – Evolution code can usually not be generated automatically • Automatic evolution is not possible for complex cases – Semantic changes – Certain type changes ( String to Person) – Ambiguity of attribute add-remove vs. rename – Class hierarchy changes Š Syed Awase 2015-16 – MongoDB Ground Up 17
  • 18. Object-Oriented Databases • Data represented as objects – Object Identity – Attributes and methods – Reference, relationships, associations • Extensible type hierarchy – User-defined types, abstract data types – single or multiple inheritance – Overloading, overriding, late binding • Declarative language for ad hoc purposes • Binding for Object-oriented programming language Š Syed Awase 2015-16 – MongoDB Ground Up 18
  • 19. Object-Relational Database • Relational model extended – Nested relations – References – Sets – Row types, abstract types – Functions • Declarative language extended – Computationally complete • Fundamental impedance mismatch remains Š Syed Awase 2015-16 – MongoDB Ground Up 19
  • 20. Non-traditional Databases • XML Database • Graph Databases • Document Databases • Key-value Stores • Column Store • Others – Geospatial – File System NoSQL Non-Relational, Web- scale database First used by Carlo Strozzi in 1998 Reintroduced by Eric Evan in 2009 Š Syed Awase 2015-16 – MongoDB Ground Up 20
  • 21. Non-traditional Database Characteristics • Non-relational in Nature • Distributed • Horizontal Scalability • Schema-less/Schema-free • Eventual Consistency Š Syed Awase 2015-16 – MongoDB Ground Up 21
  • 22. Gartner Hype Cycle NoSQL Š Syed Awase 2015-16 – MongoDB Ground Up 22
  • 23. NO-SQL Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable.. Schema- free, easy replication support, simple API, eventually consistent” Š Syed Awase 2015-16 – MongoDB Ground Up -nosql-database.org • Non-Relational • Distributed • Open-Source • Horizontally Scalable • Schema-Free • Replication Support • Eventually Consistent Classification • Wide Column Store/Column Families • Document Store • Key value/Tuple Store • Graph Database • Multimodel Database • Object Database • Grid and Cloud Database Solutions • XML Databases • Multidimensional Databases • Multivalue databases • Time Series/Streaming Databases •Scientific and Specialized DB 23
  • 24. Why NoSQL? Š Syed Awase 2015-16 – MongoDB Ground Up 24
  • 25. Why NoSQL? Š Syed Awase 2015-16 – MongoDB Ground Up 25
  • 26. Why NoSQL? Sharding: A database shard is a horizontal partition in a database or search engine. Each individual partition is referred to as a shard or database shard. Š Syed Awase 2015-16 – MongoDB Ground Up 26
  • 27. Why NoSQL? DESIGN GOALS • Semi Structured >> • Big Data >> • Real-time >> • Ubiquity >> • Schema-Free • Scalable reads/writes – Horizontal Scalability • To increase the no-of machines but maintaining proportional performance. – Vertical Scalability • To add more resources to your single machine to optimize performance. • High-performance • High-availability • Reliability, Fault tolerant. Š Syed Awase 2015-16 – MongoDB Ground Up 27
  • 28. NoSQL vs RDBMS NoSQL RDBMS • Schema-free • Scalable writes/reads • Auto high-availability • Limited queries • Eventual Consistency – applies to most NoSQL systems • BASE : Basic Availability, Soft state, Eventual consistency • Relational Schema • Scalable reads • Custom high-availability • Flexible • Consistent • ACID : Atomic, Consistent, Isolated and Durable. Š Syed Awase 2015-16 – MongoDB Ground Up 28
  • 29. RDBMS vs NoSQL • Traditional distributed data management solutions focus on ACID semantics – Atomicity – Consistency – Isolation – Durability • Modern Web-scale data management focuses on – Basic Availability – Soft-state – Eventual Consistent – CAP (Consistency, Availability, Partition and Tolerance) Š Syed Awase 2015-16 – MongoDB Ground Up 29
  • 30. ACID • Atomicity : All of the operations in the transaction will complete or none will • Consistency: the database will be in a consistent state when the transaction begins and ends. • Isolation: the transaction will behave as if it is the only operation being performed upon the database. (No interference of transaction). • Durability : Upon completion of the transaction, the operation will not be reversed. Š Syed Awase 2015-16 – MongoDB Ground Up 30
  • 31. CAP• Consistency: No contradiction b/w data. • Availability: Every operation must terminate in an intended response. • Partition tolerance: Operations will complete, even If individual components are unavailable. • NoSQL are based on CAP. Š Syed Awase 2015-16 – MongoDB Ground Up 31
  • 32. ACID vs BASE ACID BASE • Strong consistency • Isolation • Focus on “commit” • Nested Transactions • Availability? • Pessimistic/Conservative • Difficult evolution (e.g. schema) • Weak consistency • Availability first • Best effort • Approximate answers (OK) • Optimistic (aggressive) • Fast and simple • Easier evolution Š Syed Awase 2015-16 – MongoDB Ground Up 32
  • 33. Who’s using NoSQL? Š Syed Awase 2015-16 – MongoDB Ground Up 33
  • 34. Who’s using NoSQL? Š Syed Awase 2015-16 – MongoDB Ground Up 34
  • 35. Growth Š Syed Awase 2015-16 – MongoDB Ground Up 35
  • 36. NoSQL Use Cases • Consumer Use Cases • Facebook • Twitter • NetFlix • Enterprise Use Cases • Rackspace • TrendMicro • NewsCred Facebook •Hbase – Facebook messages •Scribe- Real-time click logs •Hive- SQL Queries -> MapReduce jobs •Hadoop •Web analytics warehouse •Distributed datastore •MySQL backups Š Syed Awase 2015-16 – MongoDB Ground Up 36
  • 37. Choosing a NoSQL Solution Š Syed Awase 2015-16 – MongoDB Ground Up 37
  • 38. Consistent, Available (CA) • CA- systems have trouble with partitions and deal with it with replication • Examples – MySQL (relational) – AsterData (relational) – Greenplum(relational) – Vertica (Column) Š Syed Awase 2015-16 – MongoDB Ground Up 38
  • 39. Availability, Partition-Tolerant (AP) • AP-systems have trouble with consistency, achieve “eventual consistency” through replication. • Examples – Cassandra(column/tabular) – Dynamo (Key-value) – Voldemort (Key-value) – Tokyo Cabinet (Key-value) – CouchDB(document) – SimpleDB(document) – Riak(document) Š Syed Awase 2015-16 – MongoDB Ground Up 39
  • 40. Consistent, Partition-Tolerant (CP) • CP-systems have trouble with availability while keep data consistent across partitioned nodes. • Examples – MongoDB(document) – BigTable(Column/tabular) – HyperTable(Column/tabular) – Hbase (Column/tabular) – Redis(key-value) – Scalaris(key-value) – MemcacheDB (Key-value) Š Syed Awase 2015-16 – MongoDB Ground Up 40
  • 41. Categories of NoSQL databases 1) Key Value stores  Don’t have any schema  Fast lookups facility  Can be use in a forum software where user’s statistic and messages are recorded. User’s id will serve as a key and will retrieve a string that represents all the relevant info of the user. And a background process recalculates the information and writes to the store independently after fixed interval of time.  Example  Redis : Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys (data types) can contain strings, hashes, lists, sets and sorted sets. Š Syed Awase 2015-16 – MongoDB Ground Up 41
  • 42. Categories (cont…)  API: Tons of languages, Written in: C,  Concurrency: in memory and saves asynchronous disk after a defined time. 2) Document databases  web application  tolerance of incomplete data  low query performance  no standard query syntax  Used when we don’t have complete data about all the entities of database but we still need to create database. Example CouchDB: API: JSON, Protocol: REST, Query Method: MapReduceR of JavaScript Funcs, Replication: Master Master, Written in: Erlang. Š Syed Awase 2015-16 – MongoDB Ground Up 42
  • 43. Categories (cont…)  MongoDB: API: BSON, Protocol: lots of langs, Query Method: dynamic object-based language, Replication: Master Slave, Written in: C++. 3) Graph databases  Social networking  graph algorithms, connectedness, degree of relationships  has to traverse the entire graph to get definitive answer.  not easy to cluster.  used in a situation where we want to analyze the on going trends and take decision on the basis of those trends. Š Syed Awase 2015-16 – MongoDB Ground Up 43
  • 44. Categories (cont…)  Example: Neo4J: API: lots of langs, Protocol: Java embedded / REST, Query Method: SparQL, nativeJavaAPI, JRuby, Replication: typical MySQL style master/slave, Written in: Java, Concurrency: non-block reads, writes locks involved nodes/relationships until commit, Misc: ACID possible 4) XML databases  Publishing  mature search technologies  schema validation  re-writing is easier than updating Š Syed Awase 2015-16 – MongoDB Ground Up 44
  • 45. Categories (cont…)  Used in a situation where one wants to produce documents of articles etc from a huge amount of documents but the format of those article doesn’t allow the publisher to perform search on it. Those articles are converted into xml database and wrap it in a readable-URL web service for the document production systems. 5) Distributed Peer Stores  distributed file systems  Fast lookups  Good distributed storage of data  Very low level API  Best for voting system. In such a situation one store/user and one store/piece of content is created. The user store will hold all the votes they have ever casted and the content will store a copy of the content on which vote was casted. Š Syed Awase 2015-16 – MongoDB Ground Up 45
  • 46. Categories (cont…) Example Cassandra: API: many Thrift languages, Query Method: MapReduce, Written in: Java, Concurrency: eventually consistent , Misc: like "Big-Table on Amazon Dynamo alike", initiated by Facebook. Š Syed Awase 2015-16 – MongoDB Ground Up 46
  • 47. Object Databases • Versant • Db40 • Objectivity • Startcounter • Perst • VelocityDB • HSS Database • ZODB • Magma • NEO • Ninja Database • PicoLisp • Acid-state • ObjectDB • Siaqodb • Morantex • EyeDB • FrameD Š Syed Awase 2015-16 – MongoDB Ground Up 47
  • 48. Key-Value Stores • HASH • Memcached • DynamoDB • Redis • Riak • Tokyo Cabinet • Azure Table Storage • Riak • Aerospike • FoundationDB • LevelDB • BerkeleyDB • GenieDB • BangDB • Chordless • Allegro-C • nessDB • HyperDex • TokyoCabinet/Tyrant • Scalien • Voldemort • Dynomite • KAI • MemcahcheDB • Faircom C-Tree • LSM • KitaroDB • HamsterDB • STSdb • Tarantool/Box • MaxTable • Quasardb • Pincaster • RaptorDB • TIBCO Active Spaces • Sophia Š Syed Awase 2015-16 – MongoDB Ground Up 48
  • 49. XML Database • EMC Documentum xDB • eXist • Sedna • BaseX • Qizx • Berkeley DB XML Š Syed Awase 2015-16 – MongoDB Ground Up 49
  • 50. Multidimensional databases • Globals • Intersystems Cache • GT.M • SciDB • MiniM DB • Rasdaman Š Syed Awase 2015-16 – MongoDB Ground Up 50
  • 51. Document Store (Semi-Structured) • IBM Lotus • MongoDB • CouchDB • MongoDB • ElasticSearch • RethinkDB • RavenDB • MarkLogic Server • Clusterpoint Server • ThruDB • Terrastore • JasDB • RaptorDB • Djondb • EJDB • Amisa Server • SisoDB • SDB • NoSQL embedded Db • Document Stores •Supports complex data model than Key Value Pairs •Good at handling content management, session, profile data •Multi index support •Dynamic schemas, Nested schemas •Auto distributed, eventual consistency •MVCC (CouchDB) or automic (MongoDB) • MongoDB, SimpleDB: widely adopted in this space • Use Case: Search by complex patterns & CRUD apps Š Syed Awase 2015-16 – MongoDB Ground Up 51
  • 52. Column-Oriented Stores • Semi-Structured • BigTable(inspiration Source) • Hbase • Apache Cassandra • Hypertable • Accumulo • Amazon Simple DB • Cloudata • Cloudera • HPCC • Stratosphere Hbase (Apache), Cassanda (Facebook) and HyperTable (Bidu) Hbase – CA Cassandra – AP Model consists of rows and columns Scalability: Splitting of both rows and columns Rows are split across nodes using primary key, range Columns are distributed using groups Horizonal and vertical partitioning can be used simultaneous Extension of document store HBase uses HDFS; Pig, Hive, Cascading can help Use case: Grouping of frequently used and un-used over data centers / stream of writes Š Syed Awase 2015-16 – MongoDB Ground Up 52
  • 53. Graph Database • InfoGrid • Neo4j • InfiniteGraph • DEX • Titan • InforGrid • HyperGraphDB • GraphBase • Trinity • AllegroGraph • BrightstarDB • BigData • Meronymy • WhiteDB • Openlink Virtuoso • VertexDB • FlockDB Social Graph Relationship between entities Data modeling on social networks Common Use Cases List of friends Recommendation system Following Followers Common Connections FAN IN/OUT Š Syed Awase 2015-16 – MongoDB Ground Up 53
  • 54. Multimodel databases • ArangoDB • OrientDB • Datanomic • FatDB • AlchemyDB • CortexDB Š Syed Awase 2015-16 – MongoDB Ground Up 54
  • 55. NoSQL (Not ONLY SQL) • Fits very well for volatile data • High read or write throughput. • Automatic horizontal scalability (Consistent Hashing) • Simple to implement, no investment for developers to design and implement relational model • Application logic defines object model • Support of MVCC (MultiVersion Concurrency Control) in some form • Compaction and un-compaction happens at top tier • In-memory or disk based or combination Š Syed Awase 2015-16 – MongoDB Ground Up 55
  • 56. NoSQL - Disadvantages • Packing and Un-packing of each key • Lack of relation from one key to another • Need whole value from the key; to read/write any practical information. • No Security or authentication • Data store is merely a storage layer, can’t be used for – Analytics – Reporting – Aggregation – Ordered Values Š Syed Awase 2015-16 – MongoDB Ground Up 56
  • 57. Some Popular NoSQL Databases Š Syed Awase 2015-16 – MongoDB Ground Up 57
  • 58. MongoDB 3.2 • Written in: C++ • Main point: Retains some friendly properties of SQL. (Query, index) • License: AGPL (Drivers: Apache) • Protocol: Custom, binary (BSON) • Master/slave replication (auto failover with replica sets) • Sharding built-in • Queries are javascript expressions • Run arbitrary javascript functions server-side • Better update-in-place than CouchDB • Uses memory mapped files for data storage • Performance over features • Journaling (with --journal) is best turned on • On 32bit systems, limited to ~2.5Gb • An empty database takes up 192Mb • GridFS to store big data + metadata (not actually an FS) • Has geospatial indexing • Data center aware Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks. For example: For most things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back. Š Syed Awase 2015-16 – MongoDB Ground Up 58
  • 59. Riak 1.2v • Written in: Erlang & C, some JavaScript • Main point: Fault tolerance • License: Apache • Protocol: HTTP/REST or custom binary • Stores blobs • Tunable trade-offs for distribution and replication • Pre- and post-commit hooks in JavaScript or Erlang, for validation and security. • Map/reduce in JavaScript or Erlang • Links & link walking: use it as a graph database • Secondary indices: but only one at once • Large object support (Luwak) • Comes in "open source" and "enterprise" editions • Full-text search, indexing, querying with Riak Search • In the process of migrating the storing backend from "Bitcask" to Google's "LevelDB" • Masterless multi-site replication replication and SNMP monitoring are commercially licensed Best used: If you want something Dynamo-like data storage, but no way you're gonna deal with the bloat and complexity. If you need very good single-site scalability, availability and fault-tolerance, but you're ready to pay for multi-site replication. For example: Point-of-sales data collection. Factory control systems. Places where even seconds of downtime hurt. Could be used as a well-update-able web server. Š Syed Awase 2015-16 – MongoDB Ground Up 59
  • 60. CouchDB 1.2v • Written in: Erlang • Main point: DB consistency, ease of use • License: Apache • Protocol: HTTP/REST • Bi-directional (!) replication, • continuous or ad-hoc, • with conflict detection, • thus, master-master replication. (!) • MVCC - write operations do not block reads • Previous versions of documents are available • Crash-only (reliable) design • Needs compacting from time to time • Views: embedded map/reduce • Formatting views: lists & shows • Server-side document validation possible • Authentication possible • Real-time updates via '_changes' (!) • Attachment handling • thus, CouchApps (standalone js apps) Best used: For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important. For example: CRM, CMS systems. Master-master replication is an especially interesting feature, allowing easy multi-site deployments. Š Syed Awase 2015-16 – MongoDB Ground Up 60
  • 61. Redis 2.8v • Written in: C • Main point: Blazing fast • License: BSD • Protocol: Telnet-like, binary safe • Disk-backed in-memory database, • Dataset size limited to computer RAM (but can span multiple machines' RAM with clustering) • Master-slave replication, automatic failover • Simple values or data structures by keys • but complex operations like ZREVRANGEBYSCORE. • INCR & co (good for rate limiting or statistics) • Bit operations (for example to implement bloom filters) • Has sets (also union/diff/inter) • Has lists (also a queue; blocking pop) • Has hashes (objects of multiple fields) • Sorted sets (high score table, good for range queries) • Lua scripting capabilities (!) • Has transactions (!) • Values can be set to expire (as in a cache) • Pub/Sub lets one implement messaging Best used: For rapidly changing data with a foreseeable database size (should fit mostly in memory). For example: Stock prices. Analytics. Real- time data collection. Real- time communication. And wherever you used memcached before Š Syed Awase 2015-16 – MongoDB Ground Up 61