Nosql databases
1 / 51

NoSQL Databases - PowerPoint PPT Presentation

  • Uploaded on

NoSQL Databases. Cloudant & Redis. Nikolay Tomitov Technical Trainer SoftAcad Training Center. Schema-free Databases. Documental Databases. Relational Databases. JSON Data Format. Meet Cloudant.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' NoSQL Databases' - hanley

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Nosql databases

NoSQL Databases

Cloudant & Redis

Nikolay Tomitov

Technical Trainer

SoftAcad Training Center

Schema free databases

Documental Databases

Relational Databases

Json data format
JSON Data Format

Meet cloudant
Meet Cloudant

Cloudant == managed installation of Apache CouchDB in the cloud

Global data network
Global Data Network

  • Cloudantscales within & between data centers

    • Global networks of servers

    • Built-in replication and sync

    • Push the data closer to the user & application

    • Disaster recovery

Nice features
Nice Features

  • Eliminates data layer-related complexity, delay, cost, and risk

  • Performance & scale with no worries

  • Build epic apps, easily

    • Enables advanced app features and analytics

    • Full-text search, off-line computing, replication, incremental MapReduce, code and data

    • distribution...

    • Accelerates release cycles (reduces time to value)

  • Start for free, pay as you grow

Developing with cloudant
Developingwith Cloudant

  • Provision Signup is free, and access is immediate

  • Define No schema, usually just JSON

  • Access RESTful API

  • View Define data views via Javascript

  • Search Integrated, Lucene-like full-text search

  • Analyze Incremental, chainable MapReduce

  • Operate Dashboards to monitor, compact, replicate

  • Grow Automatic

Couchdb inside
CouchDB Inside

  • Data is stored and returned in JSON format

  • Queried via HTTP RESTful API

  • Index building language: Javascript

  • Simple and intuitive interface

Rest interface demo
REST Interface – DEMO

  • Create:

    HTTP PUT /db/test

  • Read:

    HTTP GET /db/test

  • Update:

    HTTP PUT /db/test

  • Delete:

    HTTP DELETE /db/test

Querying the db
Querying the DB

  • Views: the way to arrange data to answer our questions

  • Method to build views:

    Incremental MapReduce using JavaScript

Demo simple mapreduce
DEMO – Simple MapReduce


How to find sum checkouts
How to Findsum(checkouts) ?

Simple map emit checkout
Simple Map: emit(checkout)

Simple reduce sum checkouts
Simple Reduce: sum(checkouts)

Simple reduce sum checkouts1
Simple Reduce: sum(checkouts)

Views can be distributed
Views can be Distributed


Practice Map Reduce at:

Meet redis
Meet Redis

“Redisis an open source, advancedkey-value store

It is often referred to as a data structure server

  • Since keys can contain strings, hashes, lists, sets and sorted sets

Features first
Features First

  • It’s really fast

    • Non-blocking I/O, single threaded

    • 100,000+ read/writes a second

  • It complements yourexisting storage layer

  • It is very feasible for small apps

  • performance for durability


  • Short keys perform better

  • Could not contain whitespaces

  • Common convention is : obj-type:id:field

    • user:77:pass = abcd

  • SHA1(data) makes a useful key too

Supported data types
Supported Data Types

  • strings (up to 1GB)

  • Lists of strings

  • Sets of strings

  • Sorted sets

  • Hashes

  • Pubsub channels

Commands on all keys
Commands on All Keys

  • EXISTS[key]

  • DEL[key]

  • TYPE[key]

  • RENAMENX[key]

  • EXPIRE [key]

  • EXPIREAT[key]

  • TTL[key]

Commands on strings
Commands on Strings

  • SET[key value]

  • MGET[key1 key2 key3..]

  • GET [key]

  • INCR/DECR [key]


Common uses
Common Uses

  • Store session data + creation time

  • Hit counts

    • key =MD5(url)

    • Incr hits-by-key:$key

  • APPEND can be used for logging

  • Redis as shared memory location

  • Progress bars, polling


  • More durability -> less performance

  • Default behaviour fork-and-save a snapshot to disk every…

    • 15 mins if one key has changed

    • 5 mins if 10 keys have changed

    • 60 secs if 10000 keys have changed

  • SAVE/BGSAVE commands trigger a save

Check it out
Check It Out

  • Try it :


  • Redis Admin UI


Amazon simpledb

Amazon SimpleDB

Simpledb overview
SimpleDB: Overview

  • Non–relational data store

  • Designed to be highly available and flexible

  • Available only on Amazon WS

Simpledb functionality
SimpleDB: Functionality

  • Low touch – almost no administration needed

  • Highly available – automatic replication and fail over

  • Flexible – not bound by a schema

  • Simple to use – supports only the most common operations

  • Designed for integration with other Amazon Web Services

  • Secure

  • RESTful interface

Simpledb pricing
SimpleDB: Pricing

  • Free tier – 1 GB/month, 25 SimpleDB machine hours

  • Only outgoing transfers are charged

  • Data transfers in the same region are free

  • Monthly rates between $0.12 and $0.05

Simpledb pros
SimpleDB: Pros

  • Optimized reads and writes

  • Easily integrated with other AWS

  • Uses the HTTP protocol for communication

  • Ideal for storing non – structured or semi – structured data

Simpledb cons
SimpleDB: Cons

  • Limited functionality compared to relational and other non – relational products

  • Complex queries need a lot of coding

  • No fulltext indexing

  • All queries have the N + 1 problem


Amazon Simple DB

Google datastore gds

Google Datastore (GDS)

Gds overview
GDS: Overview

  • Schemaless object datastore

  • Designed to scale

  • Hierarchical

  • Available only on Google App Engine

Gds functionality
GDS: Functionality

  • No administration needed

  • Flexible – not bound by a schema

  • Designed for no downtime

  • Automatic replication

  • Queries must run against predefined indexes

  • Rich query engine

  • Atomic transactions

  • APIs available for all the languages supported by GAE

Gds pricing
GDS: Pricing

  • Free quota: 1GB, 200 indexes

  • Monthly rates: $0.24/gigabyte; between $0.01 and $0.10 for 100k database operations

Gds pros
GDS: Pros

  • Fast

  • Hierarchical queries boost speed

  • Atomic transactions supported

  • Large and active community

  • The Java API include implementations of JDO and JPA

Gds cons
GDS: Cons

  • Limited functionality

    • Compared to relational databases and other non–relational data stores

  • Indexes require additional configuration


Google App Engine Datastore


  • Non – relational, schema free database

  • Highly scalable

  • Engineered for maximum speed

  • Available as a stand alone product

  • A number of hosted MongoDB solutions available

    • MongoLab

    • MongoHQ

    • Mongo Machine

Mongodb functionality
MongoDB: Functionality

  • Almost administration free

  • High availability – replication and sharding

  • A rich set of features

    • Complex queries

    • Aggregate functions

    • Map/Reduce operations

    • Indexes

    • Stored procedures

    • BLOB storage (GridFS)

  • Database drivers available for a large list of programming languages

Mongodb hosted solutions
MongoDB:Hosted Solutions

  • Easy setup (No billing info needed)

  • Intuitive interface

  • 240MB free

  • Deploy on Amazon EC2, Rackspace or Joynet

  • MongoDB Version 1.8

  • Easy setup (Credit card needed)

  • Intuitive interface

  • 16MB free

  • Deploy only on Amazon EC2

  • Different MongoDB Version according to price plan



Mongodb pros
MongoDB: Pros

  • Fast

  • Rich feature set

  • Mature product

  • Large and active community

Mongodb cons
MongoDB: Cons

  • No relational database style transactions

  • No data validation


MongoDB on MongoLab


  • Register for a free Cloudant account at

  • Write a simple "Dictionary" application in Java, C#, PHP, or JavaScript to perform the following in Cloudant:

    • Add a dictionary entry (word + translation)

    • List all words and their translations

    • Find the translation of given word

      The UI of the application is up to you (it could be Web-based, GUI or console-based).

      You may download a Cloudant client library from

Homework 2
Homework (2)

  • Implement the previous task ("Dictionary") with Redis

    • Register for a free "Redis To Go" account at:

    • Download the client libraries for your favorite programming language from

  • Implement the previous task ("Dictionary") with MongoDB (register at MongoLab or MongoHQ)

  • Optionally (if you want) implement the previous task ("Dictionary") with Google Datastore or Amazon SimpleDB