This course will introduce Cassandra –a popular NoSQL database. It will cover Cassandra principles, architecture and data models. Students will learn data modeling in CQL (Cassandra Query Language) by participating in interactive, hands-on labs. This session also discusses Cassandra internals as well as some admin topics.

Audience: This course is designed for developers.
Course Duration: 3 Days
Prerequisites:

Class participants should be comfortable with Java programming language and comfortable in the Linux environment (i.e., navigating command line, editing files with vi / nano).

Hardware and Software Requirements:

A working Cassandra environment will be provided for students – there is no need to install Cassandra on students’ machines. However, class participants will need an SSH client and a browser to access the cluster.

Course Outline:
  • Introduction to Big Data / NoSQL
    • NoSQL overview
    • CAP Theorem
    • When is NoSQL Appropriate?
    • Columnar Storage
    • NoSQL Ecosystem
  • Cassandra Basics
    • Design and Architecture
    • Cassandra Nodes, Clusters, Datacenters
    • Keyspaces, Tables, Rows, Columns
    • Partitioning, Replication, Tokens
    • Quorum and Consistency Levels
    • Labs
  • Data Modeling (Part One)
    • 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 oCQL Updates
    • Collections (list / map / set)
    • Labs
  • Data Modeling (Part Two)
    • Creating and Using Secondary Indexes
    • Composite Keys – Partition and Clustering
    • Time Series Data
    • Best Practices for Time Series Data
    • Counters
    • Lightweight Transactions (LWT)
  • Data Modeling Labs – Group Design Session
    • Multiple Use Cases from Various Domains Are Presented
    • Students Work in Groups to Come Up with Designs and Models
    • Discuss Various Designs, Analyze Decisions
    • Lab: Implement One of the Scenarios
  • Cassandra Drivers
    • Introduction to Java Driver
    • CRUD (Create / Read / Update / Delete) Operations Using Java Client
    • Asynchronous Queries
    • Labs
  • Cassandra Internals
    • Cassandra Design Under the Hood
    • SSTables, Memtables, CommitLogoRead/Write Path
    • Caching
    • Vnodes
  • Administration
    • Hardware Selection
    • Cassandra Distributions
    • Cassandra Best Practices (Compaction, Garbage Collection)
    • Troubleshooting Tools and Tips
    • Lab: Install Cassandra, Run Benchmarks
  • Bonus Lab (If Time Permits)
    • Implement a Music Service like Pandora or Spotify on Cassandra