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)
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.