Overview
Relational databases have been the technology of choice for storing, retrieving and querying data. Relational databases allow users to organize their data using a structured, well-defined set of patterns (model). While this approach works well for storing data that is standardized and well-understood in advance (think of a hospital check-in application that holds patient records with the same consistent set of pre-defined fields…patient id, first name, last name, date of last visit, etc.), there are limitations to this model. For organizations whose incoming data is not well-defined (think of an online inquiry form for a startup whose still in the process of experimenting with different fields for collecting visitor data, removing and adding fields as they go to accommodate for the changing nature of the business), any established definitions for how the data should fit into an existing database would need to be re-defined regularly. This would require recreating the data model (schema) that dictates the structure of the data and its allowed data types to support different types of data inputs, etc., before any new data could be saved to the database.
Enter NoSQL (Not Only SQL) databases. NoSQL databases free users from having to predefine the structure of the incoming data, allowing them to insert and update new data on the fly. NoSQL databases are often faster than relational databases and can handle very large amounts of data with ease. NoSQL databases also scale better than relational databases, due to their ability to efficiently partition data across many servers (cluster) and load balance the access to this data. NoSQL databases integrate particularly well with applications that support real-time analytics, site personalization, IoT, and mobile apps
In this instructor-led, live training, participants will understand the architecture, design principles and functionality of the most popular NoSQL databases as they setup, operate and asses a number of NoSQL databases in a live lab environment. The goal of this training is to enable participants to intelligently evaluate, propose and implement a suitable NoSQL database solution within their organization.
By the end of this training, participants will be able to:
- Install and configure different types of NoSQL databases, including MongoDB, Cassandra, Redis and Neo4j
- Understand the benefits and disadvantages of NoSQL databases vs relational databases
- Understand the underlying data formats used by NoSQL databases and how these formats can be used to an advantage when developing modern applications (desktop, mobile, cloud, IoT)
- Perform create, insert, update, delete operations in a NoSQL database
- Setup a mixed environment with both a relational database and NoSQL working in tandem
- Configure a cluster of NoSQL database to distribute the processing of very large datasets
- Understand the security implications of using a NoSQL database
- Deploy and scale a NoSQL database in a production environment
Audience
- Database professionals
- Data architects
- Data strategists
- Project managers
- Application developers wishing to integrate a flexible database solution in their application
Format of the Course
- Part lecture, part discussion, exercises and heavy hands-on practice
Note
- To request a customized training for this course, please contact us to arrange.
Requirements
- An understanding of relational database concepts
- No programming experience is necessary
Course Outline
Introduction
Overview of the Most Popular NoSQL Databases
- MongoDB (document), Cassandra (columnar), Redis (key-value), Neo4J (graph)
Overview of MongoDB Features and Architecture
- Mapping between a relational database and MongoDB
- Indexing, replication, load balancing, ad hoc querying, etc.
MongoDB vs MySQL
Installing and Configuring MongoDB
Creating a Database
Reading, Writing and Querying MongoDB
Application Development with MongoDB
Security in MongoDB
Availability in MongoDB
Integrating relational and NoSQL (non-relational) data storage
Integrating MongoDB with Data Processing Frameworks
- Hadoop MapReduce, Apache Spark, etc.
When to use MongoDB
- Ideal workloads for NoSQL in an enterprise
When not to use MongoDB
- Disadvantages of NoSQL
Deploying MongoDB to Production
- On-premise or public cloud
Scaling MongoDB
Troubleshooting MongoDB
Closing Remarks
Introduction
- Columnar (tabular) vs document database
Overview of Cassandra Features and Architecture
Installing and Configuring Cassandra
Creating a Database
Reading, Writing and Querying Cassandra
Application Development with Cassandra
Security in Cassandra
Availability in Cassandra
Integrating relational and NoSQL (non-relational) data storage
Integrating Cassandra with Data Processing Frameworks
- Hadoop MapReduce, Apache Spark, etc.
When to use Cassandra
Deploying Cassandra to Production
- On-premise and public cloud
Scaling Cassandra
Troubleshooting Cassandra
Closing Remarks