Course Outline
Domain 1 - Introduction to NoSQL
- Understanding the evolution of databases and why NoSQL is needed for modern applications.
- Exploring different types of NoSQL databases: Key-Value, Document, Column-Family, and Graph.
Domain 2 - NoSQL Basics
- Learning the key features of NoSQL databases such as scalability, flexibility, and high availability.
- Comparing NoSQL with traditional relational databases (SQL vs NoSQL).
Domain 3 - Cassandra Basics and Terminology
- Introduction to Apache Cassandra as a distributed NoSQL database.
- Understanding key Cassandra terms such as Keyspace, Tables, Partitions, Clusters, and Nodes.
Domain 4 - Cassandra Installation
- Prerequisites: Understanding system requirements like memory, CPU, and storage for running Cassandra and Installing required dependencies like Java and setting up the environment.
- Installation: Step-by-step guide to installing Cassandra on different operating systems (Windows, Linux, Mac) and Verifying installation and starting Cassandra services.
- Configuration: Setting up configuration files (cassandra.yaml) for tuning performance and security and Adjusting parameters for replication, consistency levels, and memory settings.
- Cluster Setup: Creating a multi-node cluster and configuring nodes for scalability and fault tolerance and Understanding seed nodes, data distribution, and replication strategies.
Domain 5 - Cassandra Architecture
- Architecture of Cassandra: Understanding Cassandra’s decentralized peer-to-peer architecture and Exploring how data is distributed across nodes and ensuring fault tolerance.
- Cassandra Data Model: Learning about column-family data models and how Cassandra organizes data and Understanding partition keys, clustering keys, and primary keys.
- Data Replication: Exploring Cassandra’s replication strategies and consistency levels and Configuring replication factor and choosing between SimpleStrategy and NetworkTopologyStrategy.
- Write Operation: Understanding Cassandra’s write path: Commit log, MemTable, SSTables, and Hinted Handoffs and Ensuring durability and consistency in write operations.
- Read Operation: Exploring how Cassandra retrieves data using partition keys and Bloom filters and Understanding read repair mechanisms for eventual consistency.
- Data Compaction: Learning about different compaction strategies: Size-Tiered, Leveled, and Time-Window Compaction and Optimizing disk space and improving read performance through compaction.
- Tunable Data Consistency: Exploring how Cassandra balances consistency and availability with tunable consistency levels and Choosing between ONE, QUORUM, and ALL consistency levels.
- Gossip Protocol: Understanding how Cassandra nodes communicate and exchange state information and Ensuring cluster stability through periodic gossip messages.
- Failure Detection: Exploring how Cassandra detects and handles node failures and Understanding how failed nodes are removed and replaced within a cluster.
- Hinted Handoffs: Ensuring data durability by temporarily storing writes for unavailable nodes and Understanding how hinted handoffs improve eventual consistency.
- Bloom Filters: Using Bloom filters to reduce disk I/O and improve read efficiency and Understanding the role of Bloom filters in checking if data exists in SSTables.
Domain 6 - Cassandra Data Modeling and CRUD
- Data Modeling Basics: Understanding the principles of designing an efficient Cassandra data model and Best practices for schema design to avoid performance bottlenecks.
- Cassandra Data Modeling: Designing scalable data models with partitions, clustering keys, and denormalization and Learning about wide-row storage for efficient querying.
- Cassandra Column Types: Exploring different column types and their impact on storage and retrieval and Understanding static, clustering, and regular columns.
- Cassandra Keyspace: Creating and managing keyspaces to define replication strategies and Configuring keyspace properties such as replication factor and strategy.
- Cassandra Tables: Defining tables in Cassandra and understanding their schema-less design and Understanding partitions and clustering for optimized querying.
- Cassandra Index: Using secondary indexes to optimize queries and improve read performance and Understanding when and how to use indexes effectively.
- Triggers: Automating database operations using triggers and Understanding how triggers work and when to use them.
- Materialized Views: Creating materialized views for optimized query performance and Understanding the pros and cons of using materialized views in Cassandra.
Domain 7 - CQL (Cassandra Query Language)
- CQL Basics: Understanding the basics of Cassandra Query Language (CQL) and how it differs from SQL and Writing simple queries to insert, update, and delete data.
- Identifiers and Keywords: Exploring CQL syntax rules, naming conventions, and reserved keywords and
- Shell Commands: Using cqlsh (Cassandra Query Language Shell) for database interactions and Executing queries, creating tables, and managing keyspaces.
- CQL Data Manipulation: Performing CRUD operations (Create, Read, Update, Delete) in Cassandra using CQL.
- CQL Datatypes: Exploring built-in Cassandra data types such as text, int, UUID, timestamp, and more.
- Functions: Using built-in CQL functions for data manipulation and aggregation and User Defined Functions (UDFs) and Creating custom user-defined functions to extend CQL capabilities.
- Collections: Working with collection data types such as lists, sets, and maps
- User-Defined Datatypes (UDTs): Defining and using custom data types for complex data structures.
- Security and Roles: Managing authentication, authorization, and access control in Cassandra and Setting up user roles and permissions.
Domain 8 - Cassandra Configuration
- Configuring Cassandra: Tweaking Cassandra settings for optimal performance and stability.
Domain 9 - Cassandra Performance Tuning
- Observation Tools: Using tools like nodetool and JMX monitoring for performance analysis.
- Compression: Understanding different compression techniques to optimize storage.
- JVM Tuning: Configuring Java Virtual Machine (JVM) settings for better Cassandra performance.
- System Tuning: Adjusting OS-level settings for Cassandra optimization.
- Tuning Guidelines: Best practices for fine-tuning Cassandra for different workloads.
Domain 10 - Cassandra Maintenance
- Snitch: Understanding how Snitches determine data distribution across nodes and Adding, Replacing, Moving, and Removing Nodes and Managing node operations in a Cassandra cluster.
- Compaction: Handling different compaction strategies for efficient data management.
- Change Data Capture: Tracking and capturing changes in Cassandra tables for real-time processing.
- Monitoring and Metrics: Using monitoring tools to track cluster health and performance.
- Security: Implementing encryption, authentication, and authorization mechanisms.
Apply for Certification: https://www.vskills.in/certification/Certified-Cassandra-Professional