Book Image

Learning Cassandra for Administrators

By : Vijay Parthasarathy
Book Image

Learning Cassandra for Administrators

By: Vijay Parthasarathy

Overview of this book

<p>Apache Cassandra is a massively scalable open source NoSQL database. Cassandra is perfect for managing large amounts of structured, semi-structured, and unstructured data across multiple data centers and the cloud. Cassandra delivers linear scalability and performance across many commodity servers with no single point of failure.<br /><br />This book starts by explaining how to derive the solution, basic concepts, and CAP theorem. You will learn how to install and configure a Cassandra cluster as well as tune the cluster for performance. After reading the book, you should be able to understand why the system works in a particular way, and you will also be able to find patterns (and/or use cases) and anti-patterns which would potentially cause performance degradation. Furthermore, the book explains how to configure Hadoop, vnodes, multi-DC clusters, enabling trace, enabling various security features, and querying data from Cassandra.<br /><br />Starting with explaining about the trade-offs, we gradually learn about setting up and configuring high performance clusters. This book will help the administrators understand the system better by understanding various components in Cassandra’s architecture and hence be more productive in operating the cluster. This book talks about the use cases and problems, anti-patterns, and potential practical solutions as opposed to raw techniques. You will learn about kernel and JVM tuning parameters that can be adjusted to get the maximum use out of system resources.<br /><br /><br /></p>
Table of Contents (14 chapters)

Data modeling


Now that we know a bit more about Cassandra and its architecture, let's dive into data modeling. Cassandra supports both dynamic and static/fixed column names:

  • Fixed columns: Similar to the RDBMS table structure, Cassandra defines (explicitly created during the table creation), validates, and inserts columns ahead of time. Secondary indexes can also be created on them. There are cases where this model has advantages, such as where the data store is shared between multiple applications and the data needs to be validated before it is inserted.

    Note

    The column names still need to be of the same type. The Cassandra data storage structure is very different from traditional databases; when a column is not there, instead of storing a null value, Cassandra doesn't store the column at all.

    CREATE TABLE users (
    user_idint PRIMARY KEY,
    name varchar,
    address varchar,
    rank int,
    score int
     );
  • Dynamic columns: The power of Cassandra is the BigTable data structure where any row in the database...