In this Apache Cassandra tutorial, you will learn Cassandra from the basics to get a fair idea of why Cassandra is such a robust NoSQL database system. Cassandra is basically a high performance, high availability and highly scalable distributed database that works well with structured, semi-structured and unstructured data. For structured data we have the RDBMS, so a database like Cassandra is essentially used for collecting and handling unstructured data.
Apache Cassandra is a very scalable, high-performance distributed database designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. It is a type of NoSQL database. Let us first understand what a NoSQL database does.
This Cassandra tutorial can be beneficial to anybody who wants to learn NoSQL databases. Software developers, database administrators, architects, managers can take this Cassandra tutorial as a first step to learn Cassandra and excel in their careers.
There are no prerequisites to learn Cassandra from this Cassandra tutorial. If you have a basic knowledge of databases, then it is good.
What is Apache Cassandra?
Before we learn Cassandra, let us first understand the difference between a NoSQL database and a relational database through this table:
|Comparison criteria||NoSQL database||Relational database|
|Type of data handled||Mainly unstructured data||Only structured data|
|Volume of data||High Volume||Low Volume|
|Type of transactions handled||Simple||Complex|
|Single point of failure||No||Yes|
|Data arriving from||Many locations||A few locations|
Apache Cassandra is on open source powerful, distributed NoSQL database that does not have a single point of failure and is extremely scalable and highly available. Cassandra was originally developed at Facebook and later open sourced and is currently part of the Apache Software Foundation.
What is a NoSQL database?
A NoSQL or Not Only SQL is a set of databases that provide a way to store and retrieve data that is not in the standard tabular format followed by relational databases. The NoSQL databases of which Cassandra is a very popular database share some common features and attributes. The NoSQL databases do not have any schema, they support easy replication of data, they have a simple API, they do not exhibit the ACID properties but are eventually consistent and finally last but not the least, they can handle huge volumes of data.
Some of the properties of a NoSQL database include:
- It has a simple design
- It is scalable horizontally
- It has finer control over availability.
Why is Apache Cassandra so widely used?
In this section of the Cassandra tutorial we list some of the major points why Cassandra is such a widely used NoSQL database.
- It is a high-performance, high availability database
- It is extremely fault-tolerant, scalable and consistent
- It is high-speed thanks to it being a column-oriented database
- Its architecture is based on Google’s Bigtable & Amazon’s Dynamo.
Features of Cassandra
Here in this section of the Cassandra tutorial, we will discuss some of the top features of Cassandra
- Cassandra is highly scalable meaning you can have additional hardware for accommodating more customers and data
- Cassandra does not have a single point of failure and it has an always-on architecture
- It has a fast linear performance which means you can increase the throughput by increasing the number of nodes in the cluster
- It has a highly flexible data storage meaning all formats of data can be stored including structured, semi-structured and unstructured
- It allows for easy data distribution by providing the flexibility to distribute data by replicating it across multiple data centers
- Cassandra supports the ACID compliance which stands for Atomicity, Consistency, Isolation, Durability
- It performs blazing fast writes without sacrificing the read efficiency.
Applications of Apache Cassandra
Apache Cassandra is one of the most widely used NoSQL databases. Here we list some of the top applications of Cassandra.
- It is extensively used for monitoring and tracking of applications
- It is used in web analytics which is heavy write systems
- It is deployed for social media analysis for providing suggestions to customers
It is used in retail applications for product catalog lookups and inputs
- It is extensively used as the database for mobile messaging services
Why should you learn Cassandra?
Cassandra is a top NoSQL database and it is finding more and more users with each passing day. Since we are living in a world of big data, Cassandra is finding huge acceptance since it was built for big data. Also, a lot of the organizations are moving from the traditional relational database systems to NoSQL databases and thus Cassandra is their natural choice. All this means that the job market for Cassandra is just heating up and the salaries for Cassandra professionals are among the best in the big data domain. All these are compelling reasons for you to learn Cassandra and excel in your career.
Table of Contents
: Welcome to big data SQL: No Sql Big data is among the most buzzing words in past few years. Actually Big data technologies are set of tools specially designed and architect to store, process and analyze big data (i.e. data in the order of 1000’s of GB). These tools are specially curved to handle variety of data (i.e. audio Read More
Brief Architecture of Cassandra
What is Cassandra architecture: Cassandra architecture is based on the understanding that system and hardware failures occurs eventually. Before talking about Cassandra lets first talk about terminologies used in architecture design. Node: Is computer (server) where you store your data. It is the basic infrastructure component of Cassandra. Data center :A collection of related nodes. A data center can be Read More
Installing Cassandra on Single Node
Environment Setup: Cassandra is available for download from the Web at http://cassandra.apache.org . The simplest way to get started is to download the prebuilt binary. please refer to steps below for linux: 1.) Download Cassandra in any directory mkdir -p /root/nosql cd /root/nosql #Please download latest version available wget http://www.us.apache.org/dist/cassandra/1.2.16/apache-cassandra-1.2.16-bin.tar.gz tar -xvzf apache-cassandra-1.2.16-bin.tar.gz mv apache-cassandra-1.2.16 /root/nosql/cassandra. 2.) Next, Read More
Non Relational Cassandra Data Model
Cassandra Data Model: In relational data model we have outer most containers which is call as data base. Each Data base will correspond to a real application for example in an online library application data base name could be library . Data base contains table which could be mapped to real world entity example books in library corresponds to book Read More
Introduction to Cassandra Query Language (CQL)
What is CQL?: CQL is simple api mean for accessing Cassandra.CQL adds an abstraction layer that hides implementation details of this structure and provides native syntaxes for collections and other common encodings. Common ways to access CQL are: • Start cqlsh, the Python-based command-line client, on the command line of a Cassandra node. • For developing applications, use one of Read More
Cassandra Client API
Cassandra Client API: There are multiple client api available for Cassandra Training. However the preferred interface to Cassandra 1.2 and 2.0 is CQL. Earlier it used to be thrift. List of all available Cassandra clients can be found at https://wiki.apache.org/cassandra/ClientOptions#CQL Briefly we would talk about Java cql. Source code is self explanatory package com.intellipaad; import com.datastax.driver.core.BoundStatement; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.PreparedStatement; Read More
Tuning Cassandra Performance
Cassandra Performance Tuning: Methodologies: There are multiple dimensions where Cassandra performance can be tuned. Some of them are described below: Write Operations: Commit log and data dirs (sstables) should be on different disks. Commit log uses sequential write however, if SSTables share the same drive with commit log , I/O contention between commit log & SSTables may deteriorate commit log Read More