CALL NOW 713-568-9753
Cassandra For Developers

Looking for team training?

We offer excellent trainer-led courses.

contact-us

Cassandra for Developers

Overview:

This course will introduce Cassandra –  a popular NoSQL database.  It will cover Cassandra principles, architecture, and data modeling.

Objectives

How to create effective data models in Cassandra.  Use APIs to interact with C*

What You Will Learn:

  • Cassandra architecture and internals
  • CQL (Cassandra Query Language)
  • Data modeling in CQL
  • Using APIs to interact with Cassandra

Duration:

3 days

Audience:

Developers, architects, administrators

Prerequisites :

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

Lab environment:

A working Cassandra environment will be provided for students.  Students would need an SSH client and a browser to access the cluster.

Zero Install: There is no need to install Cassandra on students’ machines!

 

Detailed Outline:

  • Section 1: Introduction to Big Data and NoSQL
    • NoSQL overview
    • CAP theorem
    • When is NoSQL appropriate
    • Columnar storage
    • NoSQL Ecosystem
  • Section 2: Cassandra Basics
    • Design and architecture
    • Cassandra nodes, clusters, datacenters
    • Keyspaces, tables, rows, and columns
    • Partitioning, replication, tokens
    • Quorum and consistency levels
    • Labs: installing Cassandra, interacting with Cassandra using CQLSH
  • Section 3: Data Modeling – part 1
    • Introduction to CQL
    • CQL Datatypes
    • creating keyspaces & 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, set)
    • Labs: various data modeling exercises using CQL; experimenting with queries and supported data types
  • Section 4: Data Modeling – 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;  modeling time series data
  • Section 5: Data Modeling Labs, team 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
  • Section 6: Cassandra drivers
    • Introduction to Java driver
    • CRUD (Create / Read / Update, Delete) operations using Java client
    • Asynchronous queries
    • Labs: using Java API for Cassandra
  • Section 7: Cassandra Internals
    • Understand Cassandra design under the hood
    • sstables, memtables, commit log
    • Read and write paths
    • Caching
    • Vnodes
  • Section 8: Administration
    • Hardware selection
    • Cassandra distributions
    • Cassandra best practices (compaction, garbage collection)
    • Troubleshooting tools and tips
    • Lab: students install Cassandra, run benchmarks
  • Section 9:  Bonus Lab (time permitting)
    • Implement a music service like Pandora or Spotify on Cassandra