Presentation is loading. Please wait.

Presentation is loading. Please wait.

NoSQL Databases Cloudant & Redis Nikolay Tomitov

Similar presentations


Presentation on theme: "NoSQL Databases Cloudant & Redis Nikolay Tomitov"— Presentation transcript:

1 NoSQL Databases Cloudant & Redis Nikolay Tomitov www.softacad.bg
Technical Trainer SoftAcad Training Center

2 Schema-free Databases
Documental Databases Relational Databases

3 JSON Data Format

4 Meet Cloudant Cloudant == managed installation of Apache CouchDB in the cloud

5 Global Data Network Cloudant scales within & between data centers
Global networks of servers Built-in replication and sync Push the data closer to the user & application Disaster recovery

6 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

7 Developing with 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

8 CouchDB Inside Data is stored and returned in JSON format
Queried via HTTP RESTful API Index building language: Javascript Simple and intuitive interface

9 REST Interface – DEMO Create: Read: Update: Delete: HTTP PUT /db/test
HTTP GET /db/test Update: Delete: HTTP DELETE /db/test

10 Querying the DB Views: the way to arrange data to answer our questions
Method to build views: Incremental MapReduce using JavaScript

11 DEMO – Simple MapReduce

12 Example

13 How to Find sum(checkouts) ?

14 Simple Map: emit(checkout)

15 Simple Reduce: sum(checkouts)

16 Simple Reduce: sum(checkouts)

17 Views can be Distributed

18 Practice Practice Map Reduce at:
content/uploads/2009/04/icouch.html

19 Meet Redis “Redis is an open source, advanced key-value store
It is often referred to as a data structure server Since keys can contain strings, hashes, lists, sets and sorted sets

20 Features First It’s really fast
Non-blocking I/O, single threaded 100,000+ read/writes a second It complements your existing storage layer It is very feasible for small apps But..trade performance for durability

21 Keys 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

22 Supported Data Types strings (up to 1GB) Lists of strings
Sets of strings Sorted sets Hashes Pubsub channels

23 Commands on All Keys EXISTS[key] DEL[key] TYPE[key] RENAMENX[key]
EXPIRE [key] EXPIREAT[key] TTL[key]

24 Commands on Strings SET[key value] MGET[key1 key2 key3..] GET [key]
INCR/DECR [key] INCRBY/DECRBY[key]

25 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

26 Durability 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 keys have changed SAVE/BGSAVE commands trigger a save

27 DEMO (JAVA)

28 Check It Out Try it : Redis Admin UI http://try.redis-db.com

29 Amazon SimpleDB

30 SimpleDB: Overview Non–relational data store
Designed to be highly available and flexible Available only on Amazon WS

31 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

32 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

33 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

34 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

35 Demo Amazon Simple DB

36 Google Datastore (GDS)

37 GDS: Overview Schemaless object datastore Designed to scale
Hierarchical Available only on Google App Engine

38 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

39 GDS: Pricing Free quota: 1GB, 200 indexes
Monthly rates: $0.24/gigabyte; between $0.01 and $0.10 for 100k database operations

40 GDS: Pros Fast Hierarchical queries boost speed
Atomic transactions supported Large and active community The Java API include implementations of JDO and JPA

41 GDS: Cons Limited functionality
Compared to relational databases and other non–relational data stores Indexes require additional configuration

42 Google App Engine Datastore
Demo Google App Engine Datastore

43 MongoDB

44 Overview 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

45 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

46 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 MongoLab MongoHQ

47 MongoDB: Pros Fast Rich feature set Mature product
Large and active community

48 MongoDB: Cons No relational database style transactions
No data validation

49 Demo MongoDB on MongoLab

50 Homework Register for a free Cloudant account at https://cloudant.com.
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

51 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


Download ppt "NoSQL Databases Cloudant & Redis Nikolay Tomitov"

Similar presentations


Ads by Google