Course Outline
- Section 1: Introduction to Big Data and NoSQL
- Overview of NoSQL databases
- Understanding the CAP theorem
- Identifying appropriate use cases for NoSQL
- Columnar storage concepts
- The NoSQL ecosystem
- Section 2: Cassandra Fundamentals
- Design and architecture
- Nodes, clusters, and datacenters in Cassandra
- Understanding keyspaces, tables, rows, and columns
- Partitioning, replication, and token management
- Quorum and consistency levels
- Labs: Interacting with Cassandra via CQLSH
- Section 3: Data Modeling – Part 1
- Introduction to CQL
- CQL data types
- Creating keyspaces and tables
- Selecting columns and their types
- Defining primary keys
- Structuring data layout for rows and columns
- Time to live (TTL) configurations
- Executing queries with CQL
- Performing CQL updates
- Utilizing collections (list, map, set)
- Labs: Conducting data modeling exercises with 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)
- Handling time series data
- Best practices for time series data management
- Using counters
- Lightweight transactions (LWT)
- Labs: Creating and applying indexes; modeling time series data
- Section 5: Data Modeling Labs – Group Design Session
- Analysis of multiple use cases across various domains
- Collaborative group work to develop system designs and models
- Discussion of various design options and analysis of decision-making processes
- Lab: Implementation of one selected scenario
- Section 6: Cassandra Drivers
- Introduction to the Java driver
- Performing CRUD (Create, Read, Update, Delete) operations using the Java client
- Executing asynchronous queries
- Labs: Using the Java API for Cassandra
- Section 7: Cassandra Internals
- Understanding Cassandra's underlying design
- Components: SSTables, memtables, and commit log
- Read and write paths
- Caching mechanisms
- Vnodes (virtual nodes)
- Section 8: Administration
- Hardware selection guidelines
- Overview of Cassandra distributions
- Cassandra best practices (compaction, garbage collection)
- Troubleshooting tools and techniques
- Lab: Installing Cassandra and running benchmarks
- Section 9: Bonus Lab (if time permits)
- Implementing a music streaming service, such as Pandora or Spotify, on Cassandra
Requirements
- Proficiency in the Java programming language
- Familiarity with the Linux environment (command-line navigation, 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.