Introduction to Cassandra 1.2, CQL 3, and the Datastax Java Driver Course ID: CASDEV1.2 Training

Answers to Popular Questions:

Yes, this class can be tailored to meet your specific training needs.
Yes, we provide Oracle, MySQL, Cassandra, Hadoop Database consulting services.
Yes, group discounts are provided.

Course Description

The Cassandra (C*) NoSQL database is one of the most powerful and widely used non-relational databases available today. It is a fault tolerant, highly scalable database with tunable consistency that meets the demanding requirements of the "can't fail, must scale" systems driving growth for many of the most successful enterprises of today. However, along with that capability comes a new data and programming model that many organizations lack the expertise to use in an optimal fashion. br/ This course provides a technical introduction to all the conceptual and practical areas needed to use Cassandra successfully. It is written expressly for the new capabilities in the recent versions of C*, including CQL3 and the new DataStax Java driver. The course provides a solid foundation in the architecture and data model of C* and how to work with it. It covers CQL3 in detail, as well as important data modeling techniques to optimize your usage of the database. It includes in-depth coverage of the new Java driver for C*, as well as a full-scale application based on a stock-trading system (StockWatcher) that uses the driver. br/ After taking this course, you will be ready to work with Cassandra in an informed and productive manner, including using CQL3 and the new Java driver. You will be aware of some common pitfalls as well as best practices for creating your data model and applications. You will gain a clear understanding of how C* works, and be fully prepared to use it in production systems.
Course Length: 3 Days
Course Tuition: $1090 (US)


Reasonable Java experience for the Java driver labs, some knowledge of databases

Course Outline

Session 1: Introduction to Cassandra
The motivation for non-relational data stores
Why relational databases don't support modern applications well
Cassandra at a high-level
Use cases
Features Strengths (Scalability, robustness, linear performance with scale-out), etc.
High Level Structure
Acquiring and Installing Cassandra
Configuring and Installation Structure
Configure, Start/Stop Cassandra
StockWatcher Demo
Session 2: Overview of Architecture and Data Model
Basic Cassandra Architecture
Cluster Structure - Nodes, Virtual Nodes, Ring Topology
Consistent Hashing, Tokens, Partitioners, and Data Distribution
Data Replication, the Replication Factor, Keyspaces
Consistency, the CAP theorem, Eventual Consistency
The C* Data Model
Data Model and CQL 3 Introduction
Using CQL and cqlsh
Single primary key tables and how to define them using CQL
Inserting Data (INSERT), Data Distribution in the Ring, Upsert
Querying for Data (SELECT)
CQL Data Types
Working with Primary Keys
Spin up the Lab Cluster
Create Simple Tables
Insert/Query Tables
Use copy to Populate a Table
Session 3: The Cassandra Data Model
Compound Primary Keys
CQL table definition
The partition key and clustering columns
CQL Mapping vs. Internal Storage View
Other Capabilities
Expiring Columns / Time To Live (TTL)
Clustering order, ORDER BY, and CLUSTERING ORDER BY
Filtering results and ALLOW FILTERING
Composite Partition Keys
Motivation and uses
CQL Definition
Effect on Partitioning and Internal Storage View
Indexes and Secondary Indexes
Partition Key Indexes, token()
Non-primary Key (Secondary) Indexes
Guidelines and Querying
Understand and Use Counters
Motivation and Uses
Structure, Characteristics, CQL, Usage
Understand and use collections
Motivation and uses
CQL definition (set, list, and map)
Inserting, Updating, Deleting with a Collection
Limitations and Internal Storage View
Introduce Compound Primary Keys
Refine Compound Primary Key
Work with Composite Partition Keys
Secondary Indexes
Using Collections
Session 4: Data Consistency
Data Consistency in Cassandra
Tunable Consistency
CAP Theorem
Coordinators and Client Requests
Consistency Levels in C* - ONE, QUORUM, ALL
Configuring Immediate Consistency
CL ONE is Your Friend
Other CL Levels
Repair Mechanisms
Read Repair
Hinted Handoff
Data Consistency
Session 5: How Things Work
Write Failures
Unavailability, Node Failure
Requirements for Writing
Key and Row Caches
Cache Overview
Multi-Data Center Support
Replication Factor Configuration
Consistency Levels - LOCAL/EACH QUORUM
Issues and Guidelines
Session 6: The Java Driver
Overview and Architecture
API Introduction
Cluster and Cluster.Builder
Creating the Cluster
Contact Points
Getting a Session
Working with Sessions
PreparedStatement, Query, BoundStatement
Using PreparedStatements, Binding Values
Executing the Query
Processing Query Results
CQL to Java Type Mapping
Working with UUIDs
Setting Consistency Level
QueryBuilder and Dynamic Queries
Dynamic Queries
QueryBuilder - Fluent API for Queries
Building SELECT, Select Type, Select.where(), Chaining WHERE Clauses
Building DELETE, Delete Type, Delete.where()
Building INSERT, Insert Type, Insert.insertInto(), Insert.value()
Building Update, Update Type, Insert.with(), Insert.value()
Other Queries
Asynchronous Querying
Normal vs Asynchronous Querying
Interface java.util.concurrent.Future
Querying Asynchronously and Processing Future Results
Listeners for Processing
Driver Policies
Load Balancing Policies - RoundRobinPolicy, DCAwareRoundRobinPolicy
Retry Policies - DefaultRetryPolicy, DowngradingConsistencyRetryPolicy
The Policies Class
Introducing StockWatcher (the Lab Domain)
Connect to a Cluster
Execute Queries
Use QueryBuilder for Select
Use QueryBuilder More Extensively
Use executeAsync() and ResultSetFuture
Use Driver Policies
StockWatcher Deep Dive - Examining a Full-fledged Application

Course Directory [training on all levels]

Upcoming Classes