Cassandra Tutorial| Data Types | Why Cassandra for Big Data?


Cassandra Tutorial| Data Types | Why Cassandra for Big Data?

What is Apache Cassandra?

Apache Cassandra is an open-source, NoSQL, wide column data store that can quickly take and process huge amounts of data.
It is decentralized, distributed, scalable, highly available, and fault-tolerant, , with identical nodes that are clustered together for eliminating  single points of failure.

Evolution of Cassandra? 
                               

Why is it so special ?
1.      Decentralized
2.      Distributed
3.      Scalable
4.      Highly Available


Why Cassandra for Big data?

1.     Handles high velocity data with ease
2.     Uses schema that support broad varieties of data
3.     Is designed for continuous availability
4.     Offers quick installation and configuration for multi-node clusters.
5.     It is open source and reduces cost as compared to RDBMS.

Apache Cassandra Data Types?
1.It supports the most common data types including  ASCII, Bigint , BLOB, Boolean counter, decimal, double, float, int , text, timestamp, UUID, varchar etc
2. Its data model offers the convenient of the column indexes with the performance of log structured updates, strong support for denormalization and materialized views and built in caching.
3. Data access is performed using CQL (Cassandra Query Language) which is resembled to SQL (Structured Query Language).

Data Distribution in Apache Cassandra

Cassandra uses a peer-to-peer model for distributing the data, which enables it to fully distribute data in the form of variable-length rows, stored by partition keys.  Cassandra is built for its scalability, continuous availability, and has having no single point of failure.
Many Different databases, such as Postgre SQL, use a master-slave replication model, in which the writes go to a master node and reads are executed on slaves. To provide high availability, fault tolerance, and scalability, Cassandra’s peer-to-peer distribution model  provides nodes with open channels of communication. Cassandra uses Tokens ( a 64 bit integer) for determining which node holds what data.

How to Add data ?

You can insert data into the columns of a row in a table using the command INSERT.
 Syntax for creating data in a table is shown below.
INSERT INTO <tablename>
(<column1 name>, <column2 name>....)
VALUES (<value1>, <value2>....)
USING <option>
Let us assume there is a table called std with columns (std_id, std_name, std_city, std_phone, std_fee) and you have to insert the following data into the std table.
     std_id
 std_name
   std_city
   std_phone
     std_fee
        1
Ramesh
Hyderabad
 9191234566
       55000
        2
Pavan
Visakhapatnam
 9191234567
      45000
        3
Gayatri
Vizainagaram
 9191234568
       47000

Use the commands given below to fill the table with required data.
cqlsh: project1> INSERT INTO std (std_id, std_name, std_city,
   std_phone, std_fee) VALUES (1,'Ramesh', 'Hyderabad', 9191234567, 55000);

cqlsh:project1> INSERT INTO std (std_id, std_name, std_city,
   std_phone, std_fee) VALUES (2,'Pavan', 'Visakhapatnam', 9191234567, 45000);

cqlsh:project1> INSERT INTO std (std_id, std_name, std_city,
   std_phone, std_fee) VALUES (3,'Gayatri', 'Vizainagaram', 9191234567, 47000);

Data reading in Cassandra?

SELECT clause is used to read data from a table in Cassandra. By Using this clause, you can read a whole table, a single column, or a particular cell.
 The syntax of SELECT clause is given below
SELECT FROM <tablename>
Assume there is a table in the key space named std with the following details –
     std_id
 std_name
   std_city
   std_phone
     std_fee
        1
Ramesh
Hyderabad
 9191234566
       55000
        2
Pavan
Visakhapatnam
 9191234567
      45000
       3
Gayatri
Vizainagaram
 9191234568
       47000
 
cqlsh:project1> select * from std;
cqlsh:project1> SELECT std_name, std_fee from std;
 


How to delete data from Cassandra ?

You can delete data from a table using the command DELETE.
The syntax  is given below
DELETE FROM <identifier> WHERE <condition>;

     std_id
 std_name
   std_city
   std_phone
     std_fee
         1
Ramesh
Hyderabad
 9191234566
       55000
         2
 Pavan
Visakhapatnam
 9191234567
      45000
        3
Gayatri
Vizainagaram
 9191234568
       47000

The following statement deletes the std_fee column of last row –
cqlsh:project1> DELETE std_fee FROM std WHERE emp_id=3;
 
Deletion of Entire row:-
 
The following command deletes an entire row from a table.
cqlsh:project1> DELETE FROM std WHERE emp_id=3;

Use cases of Cassandra
1.     Mobility
2.     Security and Fraud Detection
3.     Personalization and Recommendation
4.     IOT
5.     Cloud Operations

Advantages

1.     Open source
2.     Peer to peer Architecture
3.      Elastic Scalability
4.     High Availability and Fault Tolerence
5.     High performance
6.     Column oriented
7.     Tunable Consistency
8.     Schema-Free

Limitations of Apache Cassandra:-

1.     A single column value may not be larger than 2 Giga Bytes.
2.     The maximum number of column per row is 2 billion.
3.     All data read should fit in memory due to thrift streaming support lack.
4.     The key must be less than 64k bytes.

Conclusion:-
This brings us to the end of this article on Apache Cassandra In this article you have learnt What is Cassandra Why it is so special , How to add, read and delete data in Cassandra data base. We have also come up with a curriculum that covers exactly what you would need to be expertise in Cassandra! You can have a look at the course details for Apache Cassandra


Comments