Book Image

Apache Cassandra Essentials

By : Nitin Padalia
Book Image

Apache Cassandra Essentials

By: Nitin Padalia

Overview of this book

Apache Cassandra Essentials takes you step-by-step from from the basics of installation to advanced installation options and database design techniques. It gives you all the information you need to effectively design a well distributed and high performance database. You’ll get to know about the steps that are performed by a Cassandra node when you execute a read/write query, which is essential to properly maintain of a Cassandra cluster and to debug any issues. Next, you’ll discover how to integrate a Cassandra driver in your applications and perform read/write operations. Finally, you’ll learn about the various tools provided by Cassandra for serviceability aspects such as logging, metrics, backup, and recovery.
Table of Contents (14 chapters)
Apache Cassandra Essentials
About the Author
About the Reviewers

Allowing filtering

Cassandra, by default, only allows those queries which don't require any server-side filtering. Cassandra does this to avoid performance hits that might be caused due to these queries. Let's take the example of the employee table, which stores employee salary details department-wise:

CREATE TABLE employee ( emp_id text PRIMARY KEY, first_name text, last_name text, department text,  salary int )
CREATE INDEX emp_salary ON employee(salary)
CREATE INDEX emp_department ON employee(department)

Now, if you want to get the details of all the employees in the sales department with a salary of more than 100000, you might want to run a query as follows:

SELECT first_name, last_nameFROM employee WHERE department = 'sales' AND salary > 100000 //Won't be allowed by cassandra

But this query will not be allowed by Cassandra as, in this case, even if there are very few employees who match this criterion, Cassandra will have to filter each row of the sales department to check if it's greater...