NoSQL and MongoDB Partner Technical Solutions, MongoDB Inc. Sandeep Parikh #mongodb.

Slides:



Advertisements
Similar presentations
Data Management in the Cloud Paul Szerlip. The rise of data Think about this o For the past two decades, the largest generator of data was humans -- now.
Advertisements

Jennifer Widom NoSQL Systems Overview (as of November 2011 )
In 10 minutes Mohannad El Dafrawy Sara Rodriguez Lino Valdivia Jr.
Google Bigtable A Distributed Storage System for Structured Data Hadi Salimi, Distributed Systems Laboratory, School of Computer Engineering, Iran University.
NoSQL and NewSQL Justin DeBrabant CIS Advanced Systems - Fall 2013.
MongoDB Introduction © Zoran Maksimovic
NoSQL Database.
CS 405G: Introduction to Database Systems 24 NoSQL Reuse some slides of Jennifer Widom Chen Qian University of Kentucky.
An introduction to MongoDB Rácz Gábor ELTE IK, febr. 10.
Building applications with MongoDB – An introduction Roger
Jeff Lemmerman Matt Chimento Medtronic Confidential 1 9th Annual CodeFreeze Symposium Medtronic Energy and Component Center.
Platform as a Service (PaaS)
Massively Parallel Cloud Data Storage Systems S. Sudarshan IIT Bombay.
A Study in NoSQL & Distributed Database Systems John Hawkins.
1 Yasin N. Silva Arizona State University This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Distributed Data Stores and No SQL Databases S. Sudarshan IIT Bombay.
AN INTRODUCTION TO NOSQL DATABASES Karol Rástočný, Eduard Kuric.
:: Conférence :: NoSQL / Scalabilite Etat de l’art Samuel BERTHE10 Mars 2014Epitech Nantes.
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
NoSQL continued CMSC 461 Michael Wilson. MongoDB  MongoDB is another NoSQL solution  Provides a bit more structure than a solution like Accumulo  Data.
Panagiotis Antonopoulos Microsoft Corp Ioannis Konstantinou National Technical University of Athens Dimitrios Tsoumakos.
Getting Biologists off ACID Ryan Verdon 3/13/12. Outline Thesis Idea Specific database Effects of losing ACID What is a NoSQL database Types of NoSQL.
WTT Workshop de Tendências Tecnológicas 2014
Distributed Indexing of Web Scale Datasets for the Cloud {ikons, eangelou, Computing Systems Laboratory School of Electrical.
Modern Databases NoSQL and NewSQL Willem Visser RW334.
NoSQL Databases NoSQL Concepts SoftUni Team Technical Trainers Software University
Methodological Foundations of Biomedical Informatics (BMSC-GA 4449) Himanshu Grover.
© Copyright 2013 STI INNSBRUCK
1 Dennis Kafura – CS5204 – Operating Systems Big Table: Distributed Storage System For Structured Data Sergejs Melderis 1.
When bet365 met Riak and discovered a true, “always on” database.
Iran Hutchinson.  I work for InterSystems who drives the new NoSQL project. 
Cloudant & Redis Nikolay Tomitov Technical Trainer SoftAcad Training Center.
CSE 3330 Database Concepts MongoDB. Big Data Surge in “big data” Larger datasets frequently need to be stored in dbs Traditional relational db were not.
Introduction to Hbase. Agenda  What is Hbase  About RDBMS  Overview of Hbase  Why Hbase instead of RDBMS  Architecture of Hbase  Hbase interface.
MongoDB First Light. Mongo DB Basics Mongo is a document based NoSQL. –A document is just a JSON object. –A collection is just a (large) set of documents.
NoSQL Or Peles. What is NoSQL A collection of various technologies meant to work around RDBMS limitations (mostly performance) Not much of a definition...
NoSQL Systems Motivation. NoSQL: The Name  “SQL” = Traditional relational DBMS  Recognition over past decade or so: Not every data management/analysis.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT IT Monitoring WG Technology for Storage/Analysis 28 November 2011.
SUPPLY CHAIN OF BIG DATA. WHAT IS BIG DATA?  A lot of data  Too much data for traditional methods  The 3Vs  Volume  Velocity  Variety.
Introduction to MongoDB. Database compared.
Data and Information Systems Laboratory University of Illinois Urbana-Champaign Data Mining Meeting Mar, From SQL to NoSQL Xiao Yu Mar 2012.
SINGLE PLATFORM. COMPLETE SCALABILITY. The NoSQL and NewSQL.
CS422 Principles of Database Systems Introduction to NoSQL Chengyu Sun California State University, Los Angeles.
Group members: Phạm Hoàng Long Nguyễn Huy Hùng Lê Minh Hiếu Phan Thị Thanh Thảo Nguyễn Đức Trí 1 BIG DATA & NoSQL Topic 1:
Abstract MarkLogic Database – Only Enterprise NoSQL DB Aashi Rastogi, Sanket V. Patel Department of Computer Science University of Bridgeport, Bridgeport,
COMP 430 Intro. to Database Systems MongoDB. What is MongoDB? “Humongous” DB NoSQL, no schemas DB Lots of similarities with SQL RDBMs, but with more flexibility.
Dive into NoSQL with Azure Niels Naglé Hylke Peek.
1 Gaurav Kohli Xebia Breaking with DBMS and Dating with Relational Hbase.
Google App Engine. Contents Overview Getting Started Databases Inter-app Communications Modes.
Neo4j: GRAPH DATABASE 27 March, 2017
CS 405G: Introduction to Database Systems
and Big Data Storage Systems
An Open Source Project Commonly Used for Processing Big Data Sets
CS122B: Projects in Databases and Web Applications Winter 2017
MongoDB Er. Shiva K. Shrestha ME Computer, NCIT
Modern Databases NoSQL and NewSQL
NOSQL.
Christian Stark and Odbayar Badamjav
javascript for your data
NOSQL databases and Big Data Storage Systems
NoSQL Systems Overview (as of November 2011).
Massively Parallel Cloud Data Storage Systems
1 Demand of your DB is changing Presented By: Ashwani Kumar
NoSQL Databases Antonino Virgillito.
relational thoughts on NoSql
Building applications with MongoDB – An introduction
Introduction to NoSQL Database Systems
NoSQL databases An introduction and comparison between Mongodb and Mysql document store.
Polyglot Persistence: Document Databases
Working with GEOLocation Data
Presentation transcript:

NoSQL and MongoDB Partner Technical Solutions, MongoDB Inc. Sandeep Parikh #mongodb

What is NoSQL?

The Basics Non-relational structure Beyond rows/columns Horizontal scalability Highly distributed Started out as “No SQL” – Lately that’s changed to “Not Only SQL”

“A NoSQL database provides a mechanism for storage and retrieval of data that use looser consistency models than traditional relational databases in order to achieve horizontal scaling and higher availability.”

Why is NoSQL popular?

What’s Driving Popularity? Data model flexibility – Matching the data to your applications Scale across many smaller systems – “Commodity hardware” Falling storage prices Better virtualization Increase in cloud computing

Why Do Big Companies Care? Transparency from open source Development practices are out in the open Licensing fees keep rising Adoption of more agile techniques – For development and deployment

Data Has Changed Over The Years Volume – Data generated and collected has grown drastically – Applications can generate 1GB of logs per day Variety – Evolving data and varying formats – Not always known at design time Velocity – Inbound data speed – Fast reads/writes across much larger datasets

What’s Wrong with NoSQL?

The Downsides No universal query language like SQL – Each technology does things differently SQL is very powerful and expressive Relational databases are very mature – 40+ years vs. 4+ years Relational databases are part of a vast ecosystem – Tools – Libraries – Integrations

NoSQL Products/Technologies

Lineages BigTable Cassandra HBase DynamoDB Dynamo Riak CouchDB Memecached Memebase Couchbase

NoSQL Overview Casssandra: – Key to multiple values, grouped in ColumnFamilies – Each key can have different columns – Dynamo operational model, BigTable data model HBase – Tightly integrated with Hadoop – BigTable implementation

NoSQL Overview Riak – Distributed key-value store – Dynamo implementation Couchbase – Memebase (memcached) plus some CouchDB features – Key-value store; values can be JSON objects – Create pre-computed views to query inside JSON objects

MongoDB

Goals Scale horizontally over commodity systems Incorporate what works for RDBMSs – Rich data models, ad-hoc queries, full indexes Move away from what doesn’t scale easily – Multi-row transactions, complex joins Use idomatic development APIs Match agile development and deployment workflows

Key Features Data stored as documents (JSON) – Dynamic-schema Full CRUD support (Create, Read, Update, Delete) – Ad-hoc queries: Equality, RegEx, Ranges, Geospatial – Atomic in-place updates Full secondary indexes – Unique, sparse, TTL Replication – redundancy, failover Sharding – partitioning for read/write scalability

MongoDB Drivers and Shell Shell Command-line shell for interacting directly with database Drivers Drivers for most popular programming languages and frameworks > db.collection.insert({product:“MongoDB”, type:“Document Database”}) > > db.collection.findOne() { “_id”: ObjectId(“5106c1c2fc629bfe52792e86”), “product”: “MongoDB” “type”: “Document Database” } Java Python Perl Ruby Haskell JavaScript

Document Oriented, Dynamic Schema { first_name: ‘Paul’, surname: ‘Miller’ city: ‘London’, location: [45.123,47.232], cars: [ { model: ‘Bentley’, year: 1973, value: , … }, { model: ‘Rolls Royce’, year: 1965, value: , … } ] } RelationalMongoDB

Working With MongoDB

Documents > var new_entry = { firstname: “John”, lastname: “Smith”, age: 25, address: { street: “21 2nd Street”, city: “New York”, state: “NY”, zipcode: } > db.addressBook.save(new_entry)

Querying > db.addressBook.find() { _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”), firstname: “John”, lastname: “Smith”, age: 25, address: { street: “21 2nd Street”, city: “New York”, state: “NY”, zipcode: } // _id is unique but can be anything you like

Indexes // create an ascending index on “state” > db.addressBook.ensureIndex({state:1}) > db.addressBook.find({state:”NY”}) { _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”), firstname: “John”, … } > db.addressBook.find({state:”NY”, zip: 10021})

Queries // Query Operators: // $all, $exists, $mod, $ne, $in, $nin, $nor, $or, // $size, $type, $lt, $lte, $gt, $gte // find contacts with any age > db.addressBook.find({age: {$exists: true}}) // find entries matching a regular expression > db.addressBook.find( {lastname: /^smi*/i } ) // count entries with “John” > db.addressBook.find( {firstname: ‘John’} ).count()

Updates // Update operators // $set, $unset, $inc, $push, $pushAll, $pull, // $pullAll, $bit > var new_phonenumber = { type: “mobile”, number: “ ” } > db.addressBook.update({ _id: “...” }, { $push: {phonenumbers: new_phonenumber} });

Nested Documents { _id: ObjectId("4c4ba5c0672c685e5e8aabf3"), firstname: “John”, lastname: “Smith”, age: 25, address: { street: “21 2nd Street”, city: “New York”, state: “NY”, zipcode: } phonenumbers : [ { type: “mobile”, number: “ ” } ] }

Secondary Indexes // Index nested documents > db.addressBook.ensureIndex({“phonenumbers.type”:1}) // Geospatial indexes, 2d or 2dsphere > db.addressBook.ensureIndex({location: “2d”}) > db.addressBook.find({location: {$near: [22,42]}}) // Unique and Sparse indexes > db.addressBook.ensureIndex({field:1}, {unique:true}) > db.addressBook.ensureIndex({field:1}, {sparse:true})

Additional Features Geospatial queries – Simple 2D plane – Or accounting for the surface of the earth (ellipsoid) Full Text Search Aggregation Framework – Similar to SQL GROUP BY operator Javascript MapReduce – Complex aggregation tasks

MongoDB Development

Open Source MongoDB source code is on Github – Issue tracking for MongoDB and drivers –

Support Tickets are created by – Customer support – Community support (Google Groups, StackOverflow) – Community members – MongoDB employees Tickets can be voted on and watched to track progress Follow-the-Sun support All technical folks spend time doing community and customer support

Development Issues are triaged by CTO and engineering managers Then assigned into buckets, like – Specific version (ex ) – Desired version (ex. 2.7 desired) – Planning buckets – Unscheduled Engineers assign themselves tickets Once code is committed, a code review is needed

QA and Testing Code reviewer nominates for QA Unit tests are done by engineer Integration tests are done by QA team Support/Consulting/Architect teams do – Internal feature reviews/presentations – Beta testing with community and customers Documentation updates are linked to QA tickets

Questions? Sandeep Parikh – MongoDB – MongoDB, drivers, documentation – Free online training, presentations, whitepapers