Course Outline
- Section 1: Introduction to Big Data / NoSQL
- Overview of NoSQL
- The CAP theorem
- When to use NoSQL
- Columnar storage
- The NoSQL ecosystem
- Section 2: Cassandra Basics
- Design and architecture
- Cassandra nodes, clusters, and data centres
- Keyspaces, tables, rows, and columns
- Partitioning, replication, and tokens
- Quorum and consistency levels
- Labs: Interacting with Cassandra using CQLSH
- Section 3: Data Modelling – Part 1
- Introduction to CQL
- CQL data types
- Creating keyspaces and tables
- Choosing columns and data types
- Choosing primary keys
- Data layout for rows and columns
- Time to live (TTL)
- Querying with CQL
- CQL updates
- Collections (list / map / set)
- Labs: Various data modelling exercises using CQL; experimenting with queries and supported data types
- Section 4: Data Modelling – Part 2
- Creating and using secondary indexes
- Composite keys (partition keys and clustering keys)
- Time series data
- Best practices for time series data
- Counters
- Lightweight transactions (LWT)
- Labs: Creating and using indexes; modelling time series data
- Section 5: Data Modelling Labs: Group Design Session
- Multiple use cases from various domains are presented
- Students work in groups to develop designs and models
- Discuss various designs and analyse decisions
- Lab: Implement one of the scenarios
- Section 6: Cassandra Drivers
- Introduction to the Java driver
- CRUD (Create / Read / Update / Delete) operations using the Java client
- Asynchronous queries
- Labs: Using the Java API for Cassandra
- Section 7: Cassandra Internals
- Understanding Cassandra design under the hood
- SSTables, memtables, and commit logs
- Read path / write path
- Caching
- Vnodes
- Section 8: Administration
- Hardware selection
- Cassandra distributions
- Cassandra best practices (compaction, garbage collection)
- Troubleshooting tools and tips
- Lab: Students install Cassandra and run benchmarks
- Section 9: Bonus Lab (time permitting)
- Implement a music service similar to Pandora or Spotify on Cassandra
Requirements
- Proficiency in the Java programming language
- Comfortable working in a Linux environment (navigating the command line, editing files with vi/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.