1 / 25

NoSQL Databases

NoSQL Databases. http://schoolacademy.telerik.com. NoSQL Concepts, Redis, MongoDB, CouchDB. Svetlin Nakov. Telerik Software Academy. academy.telerik.com. Manager Technical Training. http://www.nakov.com. Table of Contents. NoSQL Databases Overview Redis Ultra-fast data structures server

august
Télécharger la présentation

NoSQL Databases

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NoSQL Databases http://schoolacademy.telerik.com NoSQL Concepts, Redis, MongoDB, CouchDB Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training http://www.nakov.com

  2. Table of Contents • NoSQL Databases Overview • Redis • Ultra-fast data structures server • Redis Cloud: managed Redis • MongoDB • Powerful and mature NoSQL database • MongoLab: managed MongoDB in the cloud • CouchDB • JSON-based document database with REST API • Cloudant: managed CouchDB in the cloud

  3. NoSQL Databases Overview, Models, Concepts, Examples

  4. What is NoSQL Database? • NoSQL (cloud) databases • Use document-based model (non-relational) • Schema-free document storage • Still support indexing and querying • Still support CRUD operations (create, read, update, delete) • Still supports concurrency and transactions • Highly optimized for append / retrieve • Great performance and scalability • NoSQL == “No SQL” or “Not Only SQL”?

  5. Relational vs. NoSQL Databases • Relational databases • Data stored as table rows • Relationships between related rows • Single entity spans multiple tables • RDBMS systems are very mature, rock solid • NoSQL databases • Data stored as documents • Single entity (document) is a single record • Documents do not have a fixed structure

  6. Relational vs. NoSQL Models Relational Model Document Model Name: Svetlin Nakov Gender: male Phone: +359333777555 Address: - Street: Al. Malinov 31 - Post Code: 1729 - Town: Sofia - Country: Bulgaria Email: nakov@abv.bg Site: www.nakov.com * * * 1 1 1

  7. Redis Ultra-Fast Data Structures Server

  8. What is Redis? • Redis is • Ultra-fast in-memory key-value data store • Powerful data structures server • Open-source software: http://redis.io • Redis stores data structures: • Strings • Lists • Hash tables • Sets / sorted sets

  9. Hosted Redis Providers • Redis Cloud • Fully managed Redis instance in the cloud • Highly scalable, highly available • Free 1 GB instance, stored in the Amazon cloud • Supports data persistence and replication • http://redis-cloud.com • Redis To Go • 5 MB free non-persistent Redis instance • http://redistogo.com

  10. C# API for Redis • ServiceStack.Redis API • github.com/ServiceStack/ServiceStack.Redis • Sample C# code: string redisHost = "redis.garantiadata.com"; int redisPort = 14233; string redisPass = "some@pass0rd"; using (var redisClient = new RedisClient(redisHost, redisPort, redisPass)) { string key = "username"; string value = "nakov"; redisClient.Set<string>(key, value); Console.WriteLine(redisClient.Get<string>(key)); }

  11. Redis Cloud Live Demo

  12. MongoDB Mature and Very Powerful NoSQL Database

  13. What is MongoDB? • MongoDB – http://mongodb.org • Very powerful and mature NoSQL database • Scalable, high-performance, open-source • JSON-style document storage, schemaless • Replication & high-availability support • Auto sharding – clustering & data partitioning • Indexing and powerful querying • Map-Reduce – parallel data processing • GridFS – store files of any size

  14. Hosted MongoDB Providers • MongoLab • Free 0.5 GB instance • https://mongolab.com • MongoHQ • Free 0.5 GB instance (sandbox) • https://www.mongohq.com • MongoOd • Free 100 MB instance • https://www.mongood.com

  15. C# API for MongoDB • The official MongoDB C# driver from 10gen • github.com/mongodb/mongo-csharp-driver • Sample C# code: var connectionStr = "mongodb://user:pass@server:part"; var client = new MongoClient(connectionSt); var server = client.GetServer(); var db = server.GetDatabase("mongodb-name"); var persons = db.GetCollection<Person>("Persons"); persons.Insert<Person>(new Person(…)); var resultPersons = from p in persons.AsQueryable<Person>() where p.Address.Town == "Sofia" select p;

  16. MongoLab Live Demo

  17. CouchDB JSON-based DocumentDatabase with RESTful API

  18. What is CouchDB? • Apache CouchDB • Open-source NoSQL database • Document-based: stored JSON documents • HTTP-based API • Query, combine, and transform documents with JavaScript • On-the-fly document transformation • Real-time change notifications • Highly available and partition tolerant

  19. Hosted CouchDB Providers • Cloudant • Managed CouchDB instances in the cloud • Free $5 account – unclear what this means • https://cloudant.com • Has nice web-based administration UI

  20. C# API for CouchDB • Many CouchDB C# APIs • github.com/soitgoes/LoveSeat • Sample C# code: var client = new CouchClient( dbHost, dbPort, dbUsername, dbPassword, false, AuthenticationType.Cookie); var db = client.GetDatabase("some-db"); db.CreateDocument(new Person() { Name = "Svetlin Nakov", Email = "nakov@abv.bg"} );

  21. Cloudant Live Demo

  22. NoSQL Databases http://academy.telerik.com

  23. Exercises • Register for a free Cloudant account at https://cloudant.com. • Write a simple "Dictionary" application in C# 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 http://wiki.apache.org/couchdb/Related_Projects

  24. Exercises (2) • Implement the previous task ("Dictionary") with Redis • Register for a free "Redis To Go" account at: https://redistogo.com • Download the client libraries for your favorite programming language from http://redis.io/clients • Implement the previous task ("Dictionary") with MongoDB (register at MongoLab or MongoHQ)

  25. Free Trainings @ Telerik Academy • Telerik School Academy • schoolacademy.telerik.com • Telerik Software Academy • academy.telerik.com • Telerik Academy @ Facebook • facebook.com/TelerikAcademy • Telerik Software Academy Forums • forums.academy.telerik.com

More Related