title
Please take a moment to fill out this form. We will get back to you as soon as possible.
All fields marked with an asterisk (*) are mandatory.
Cassandra 3 for Developers
Course Description
Overview
The Cassandra (C*) database is a massively scalable NoSQL database that provides high availability and fault tolerance, as well as linear scalability when adding new nodes to a cluster. It has many powerful capabilities, such as tunable and eventual consistency, that allow it to meet the needs of modern applications, but also introduce a new paradigm for data modeling that many organizations do not have the expertise to use in the best way.This course provides an in-depth introduction to using Cassandra and creating good data models with Cassandra. It is technical and comprehensive, with a focus on the practical aspects of working with C*. It introduces all the important concepts needed to understand Cassandra, including enough coverage of internal architecture to make good decisions. It is hands-on, with labs that provide experience in all the important areas. It covers CQL (Cassandra Query Language) in depth, as well as covering the Java API for writing Cassandra clients.
After taking this course, you will have learned what you need to productively work with Cassandra as well as guidelines for using it in an optimal manner. You’ll also understand some of the “anti-patterns” that lead to non-optimal C* data models. You’ll be familiar with CQL and with the Java client library and be ready to work on production systems involving Cassandra.
Objectives
- Discuss the needs that C* addresses
- Explain the operation and structure of C*
- Install and set up a C* database
- Use the C* tools, including cqlsh, nodetool, and ccm (Cassandra Cluster Manager)
- Describe the C* architecture, and how a C* cluster is structured
- Explain how data is distributed and replicated in a C* cluster
- Discuss core C* data modeling concepts, and use them to create well-structured data models
- Use data replication and eventual consistency intelligently
- Use CQL to create tables and query for data
- Know and use the CQL data types (numerical, textual, uuid, etc.)
- Describe the various kinds of primary keys available (simple, compound, and composite primary keys)
- Use more advanced capabilities like collections, counters, secondary indexes, CAS (Compare and Set), static columns, and batches
- Explain the Java client API and use it to write client programs that work with C*
- Build and use dynamic queries with QueryBuilder
- Create and use asynchronous queries with the Java API
Audience
- Java programmers wishing to expand their knowledge in the use of Big Data using Cassandra
Prerequisites
- Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions
Topics
- Why we need Cassandra
- High level Cassandra overview
- Cassandra features
- Basic Cassandra installation and configuration
- Cassandra Cassandra Architecture Overview
- Cassandra Clusters and Rings
- Data Replication in Cassandra
- Introduction to CQL
- Defining Tables with a Single Primary Key
- Using cqlsh for Interactive Querying
- Selecting and Inserting/Upserting Data with CQL
- Data Replication and Distribution
- Basic Data Types (including uuid, timeuuid)
- Defining a compound primary key
- CQL for compound primary keys
- Partition keys and data distribution
- Clustering columns
- Overview of internal data organization
- Additional querying capabilities
- Result ordering
- Update and delete queries
- Result filtering
- Batch queries
- Data modeling guidelines
- Denomalization
- Data modeling workflow
- Data modeling principles
- Primary key considerations
- Composite partition keys
- Defining with CQL
- Data distribution with composite partition key
- Overview of internal data organization
- Indexing
- Primary/partition keys and pagination with token()
- Secondary indexes and usage guidelines
- Cassandra counters
- Counter structure and definition
- Using counters
- Counter limitations
- Cassandra collections
- Collection structure and uses
- Defining collections
- Querying collections
- Limitations
- Overview of internal storage organization
- Static column: overview and usage
- Static column: guidelines
- Materialized view: overview and usage
- Materialized view: guidelines
- Overview of consistency in Cassandra
- CAP theorem
- Eventual (tunable) consistency in C*
- Choosing CL ONE
- Choosing CL QUORUM
- Achieving immediate consistency
- Using other consistency levels
- Internal repair mechanisms
- Overview of lightweight transactions
- Using LWT, the [applied] column
- If exists, if not exists, other if conditions
- Basic CAS internals
- Overhead and guidelines
- Dealing with write failure
- Unavailable nodes and node failure
- Requirements for write operations
- Key and row caches
- Cache overview
- Usage guidelines
- Multi-data center support
- Overview
- Replication factor configuration
- Additional consistency levels
- Deletes
- CQL for deletion
- Tombstones
- Usage guidelines
- API overview
- Introduction
- Architecture and features
- Connecting to a cluster
- Cluster and cluster builder
- Contact points, connection to a cluster
- Session overview and API
- Working with sessions
- The query API
- Overview
- Dynamic queries, statement, simpleStatement
- Processing query results, resultSet, row
- PreparedStatement, boundStatement
- Binding values and Querying with preparedStatements
- CQL to java type mapping
- Working with UUIDs
- Working with time/date values
- Working with batches of simpleStatement and preparedStatement
- Dynamic queries and queryBuilder
- QueryBuilder overview and API
- Building SELECT, DELETE, INSERT, and UPDATE queries
- Creating WHERE clauses
- Other query examples
- Configuring query behavior
- Setting LIMIT and TTL
- Working with consistency
- Using LWT
- Working with driver policies
- Load balancing policies
- Retry policies
- Reconnection policies
- Asynchronous querying overview
- Synchronous vs asynchronous querying
- Executing asynchronous queries
- Java.util.concurrent.Future
- Cassandra resultSetFuture
- Future result processing
Related Courses
-
Building Streaming Systems With Kafka + Spark + Cassandra
EJBD-115-TR- Duration: 5
- Delivery Format: Classroom Training, Online Training
- Price: 3,080.00 EUR
Self-Paced Training Info
Learn at your own pace with anytime, anywhere training
- Same in-demand topics as instructor-led public and private classes.
- Standalone learning or supplemental reinforcement.
- e-Learning content varies by course and technology.
- View the Self-Paced version of this outline and what is included in the SPVC course.
- Learn more about e-Learning
Course Added To Shopping Cart
bla
bla
bla
bla
bla
bla
Self-Paced Training Terms & Conditions
Sorry, there are no classes that meet your criteria.
Please contact us to schedule a class.
STOP! Before You Leave
Save 0% on this course!
Take advantage of our online-only offer & save 0% on any course !
Promo Code skip0 will be applied to your registration