Skip to course content

Cassandra for Developers

Equip developers to design schemas, write CQL, and build high‑performance applications on Apache Cassandra clusters.

Get Course Info

Audience: Developers / Architects / Database admins

Duration: 3 days

Format: Lectures and hands‑on labs (50% lecture, 50% lab)

Overview

Modern, large-scale applications involve dealing with Big Data, which is often larger than what traditional databases (RDBMS) can handle. The Cassandra (C*) is a massively scalable NoSQL database that provides high availability and fault tolerance. This hands-on course will introduce Cassandra, concepts, data modeling, and CQL (Cassandra Query Language). The focus is practical aspects of working with C* effectively. We will also cover “anti-patterns” and best practices that will lead to optimal C* implementations in high-performance production systems.

Objective

Equip developers to design schemas, write CQL, and build high‑performance applications on Apache Cassandra clusters.

What You Will Learn

  • NoSQL concepts
  • Cassandra’s concepts and architecture
  • Setting up and running C*
  • Setting up C* and your IDE
  • CQL (Cassandra Query Language)
  • Data modeling in CQL
  • Using APIs to interact with Cassandra
  • Understand C* internals (read/write path)
  • Deletion and compaction
  • C* administration
  • C* case studies
  • C* data modeling
  • C* workshop (time permitting)

Course Details

Audience: Developers / Architects / Database admins

Duration: 3 days

Format: Lectures and hands‑on labs (50% lecture, 50% lab)

Prerequisites:

Comfortable with Java programming language • Comfortable in Linux environment (navigating command line, running commands)

Setup: Cloud-based lab environment • Modern laptop with unrestricted Internet • Chrome browser • SSH client

Detailed Outline

  • Big Data challenges vs RDBMS
  • NoSQL overview
  • CAP theorem
  • When is NoSQL appropriate
  • Columnar storage
  • NoSQL ecosystem
  • C* architecture overview
  • C* clusters, rings, nodes
  • Keyspaces, tables, rows and columns
  • Partitioning, replication, tokens
  • Quorum and consistency levels
  • Labs: installing Cassandra, interacting with Cassandra using CQLSH
  • Introduction to CQL
  • CQL Datatypes
  • Creating keyspaces and tables
  • Choosing columns and types
  • Choosing primary keys
  • Data layout for rows and columns
  • Time to live (TTL)
  • Querying with CQL
  • CQL updates
  • Collections (list, map, and set)
  • Labs: various data-modeling exercises using CQL; experimenting with queries and supported data types
  • 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; modeling time-series data
  • Introduction to Java driver
  • CRUD operations using Java client
  • Asynchronous queries
  • Labs: using Java API for Cassandra
  • Partitioners, gossip protocols, snitches
  • sstables, memtables, commit log
  • Read path, write path
  • Deletions, compactions, tombstones
  • Failure handling
  • Caching
  • Hardware selection
  • Software dependencies
  • Cassandra distributions
  • Lab: students install Cassandra, run benchmarks
  • Performance tuning
  • Troubleshooting tools and tips
  • “Anti-patterns” – how NOT to use C*
  • Real-world C* use cases, system architecture, best practices, and recommendations
  • Attendees work in teams on multiple domain use cases
  • Design and model discussion, decision analysis
  • Implement a real-world use case using C*
  • Team projects, testing, presentations
  • Sample ideas: Slack-like messaging, music service, stock-quotes tracker

Ready to Get Started?

Contact us to learn more about this course and schedule your training.