CASSANDRA and NoSQL

About the Course

The Apache Cassandra course at Scalebyte starts with the fundamental concepts of using a highly-scalable, column-oriented database to implement appropriate use cases. It will cover topics like Cassandra Datamodels,Cassandra Architecture, Differences between RDBMS and Cassandra to name a few. There will be many challenging, practical and focused hands-on exercises for the learners during this course.

Course Objectives

After the completion of 'Apache Cassandra' course at Scalebyte, you should be able to:
1. Understand Cassandra and NoSQL domain.
2. Create Cassandra cluster for different kinds of applications.
3. Understand Apache Cassandra Architecture.
4. Design and model Applications for Cassandra.
5. Port existing application from RDBMS to Cassandra.
6. Learn to use Cassandra with various programming languages.

Who should go for this course?

1. A developer working with large-scale, high-volume websites.
2. An application architect or data architect who needs to understand the available options for high-performance, decentralized, elastic data stores.
3. A database administrator or database developer currently working with standard relational database systems who needs to understand how to implement a fault-tolerant, eventually consistent data store.
4. A manager who wants to understand the advantages (and disadvantages) of Cassandra and related columnar databases to help make decisions about technology strategy.
5. A student, analyst, or researcher who is designing a project related to Cassandra or other non-relational data store options.

Course Curriculum:

1. > Getting Started with Cassandra
Topics - Quick Review of RDBMS: Transactions, ACIDity, Schema, Two Phase Commit, Sharding and Share Nothing Architecture, Feature Based, Key Based, Lookup Table Based, NoSQL Databases, Brewers CAP Theorem, Cassandra Definition and Features, Distributed and Decentralised, Elastic Scalability, High Availability and Fault Tolerance, Tuneable Consistency, Strict Consistency, Casual Consistency, Weak (Eventual Consistency), Column Orientation, Schema Free, High Performance, USE Cases for Cassandra, Cassandra Installation.

2. > Understanding Cassandra Data Model
Topics - Installing Cassandra, Running the Command-Line Client Interface, Basic CLI Commands, Help, Connecting to a Server, Describing the Environment, Creating and Keyspace and Column Family, Writing and Reading Data, The Relational Data Model, Simple Introduction, Cluster, Keyspaces, Column Families, Column Family Options, Columns, Wide Rows, Skinny Rows, Column Sorting, Super Columns, Composite Keys, Design Differences between RDBMS and CASSANDRA, Query Language, Referential Integrity, Secondary Indexes, Sorting, DeNormalisation, Design Patterns, Materialized Views.

3. > Understanding Cassandra Architecture
Topics - System Keyspace, Peer-To-Peer, Gossip and Failure Detection, Anti-Entropy and Read Repair, Memtables, SSTables, and Commit Logs, Hinted Handoff, Compaction, Bloom Filters, Tombstones, Staged Event-Driven Architecture (SEDA), Read, Mutation, Gossip, Response, Anti-Entropy, Load Balance, Migration, Streaming, Managers and Services, Casssandra Daemon, Storage Service, Messaging Service, Hinted Handoff Manager.

4. > Creating Sample Application
Topics - Database Design, Sample Application RDBMS Design, Sample Application Cassandra Design, Application Code, Creating Database, Loading Schema, Data Structures, Setting Connections, Population of database, Application Features.

5. > Configuring, Reading and Writing Data in Cassandra
Topics - Keyspaces, Replicas, Replica Placement Strategy, Replication Factor, Partitioner, Snitches, Creating Clusters, Dynamic Ring Participation, Security, Miscellaneous Settings, Additional Tools, Query differences between RDBMS and Cassandra, Basic Write Properties, Consistency Level, Basic Read Properties, API's, Set Up and Inserting Data, Slice Predicate, Get Range Slices, Multiget Slice, Deleting, Programmatically Defining Keyspaces and Column Families.

6. > Integrating Cassandra with Hadoop
Topics - Hadoop, MapReduce, Cassandra Hadoop Source Package, Outputting Data to Cassandra, PIG, HIVE, Use Cases.

7. > CQL
Topics - Data Definition language(DDL) Statements, Data Manipulation Language (DML), Create and modify Users, User permission, Capture CQL output to a file, Import and export data, CQL scripts from within CQL, CQL Scripts from the command prompt.

8. > Clients and Live Project
Topics - Basic Client API, Thrift, Thrift Support for Java, Exceptions, Thrift Summary, Cassandra Web Console, Hector (Java), Features, Hector API, Live Project.