Course Outline
- Section 1: Introduction to Big Data / NoSQL
- Overview of NoSQL databases
- Understanding the CAP theorem
- Identifying appropriate use cases for NoSQL
- Column-oriented storage
- Overview of the NoSQL ecosystem
- Section 2: Cassandra Basics
- Design and architectural overview
- Understanding Cassandra nodes, clusters, and datacenters
- Keyspaces, tables, rows, and columns
- Partitioning, replication, and tokens
- Quorum and consistency levels
- Labs: Interacting with Cassandra using CQLSH
- Section 3: Data Modeling – Part 1
- Introduction to CQL
- CQL data types
- Creating keyspaces and tables
- Selecting appropriate columns and data types
- Defining primary keys
- Data layout for rows and columns
- Time to Live (TTL)
- Executing queries with CQL
- Performing updates in CQL
- Utilizing collections (list, map, set)
- Labs: Various data modeling exercises using CQL; experimenting with queries and supported data types
- Section 4: Data Modeling – Part 2
- Creating and utilizing secondary indexes
- Composite keys (partition keys and clustering keys)
- Working with time series data
- Best practices for modeling time series data
- Using counters
- Lightweight transactions (LWT)
- Labs: Creating and using indexes; modeling time series data
- Section 5: Data Modeling Labs – Group Design Session
- Presentation of multiple use cases across various domains
- Collaborative group work to develop designs and models
- Discussion of various design approaches and analysis of key decisions
- Lab: Implementing one of the proposed scenarios
- Section 6: Cassandra Drivers
- Introduction to the Java driver
- Performing CRUD (Create, Read, Update, Delete) operations using the Java client
- Handling asynchronous queries
- Labs: Using the Java API for Cassandra
- Section 7: Cassandra Internals
- Understanding the underlying design of Cassandra
- Exploring sstables, memtables, and the commit log
- Examining the read and write paths
- Caching mechanisms
- vnodes (virtual nodes)
- Section 8: Administration
- Guidelines for hardware selection
- Overview of Cassandra distributions
- Cassandra best practices (including compaction and garbage collection)
- Tools and tips for troubleshooting
- Lab: Installing Cassandra and running benchmarks
- Section 9: Bonus Lab (time permitting)
- Implementing a music streaming service similar to Pandora or Spotify on Cassandra
Requirements
- Familiarity with the Java programming language
- Comfort working within a Linux environment (including navigating the command line and editing files using vi or nano)
Testimonials (7)
The practical exercises and examples of implementing examples of real models and contexts.
Leandro Gomes
Course - Cassandra for Developers
I enjoyed the very good explanations with in depth examples.
Rui Magalhaes
Course - Cassandra for Developers
I liked all technical explanation and theoretical introduction.
Andre Santos
Course - Cassandra for Developers
I liked the amount of exercises. We could immediately apply the knowledge shared and ensure the information was on point.
Joana Pereira
Course - Cassandra for Developers
There was a lot of knowledge and material shared that will help me to do my current tasks.
Miguel Fernandes
Course - Cassandra for Developers
I already using and have an application in production with Cassandra so mostly of the topics i already know but the data modeling and advanced topics are a lot interesting.
Tiago Costa
Course - Cassandra for Developers
The last exercise was very good.